@gui-chat-plugin/jinglescript

GUI Chat Protocol plugin for JingleScript: the manageJingleScript tool, with a player view for rendered jingles (waveform, cues, beats, notes).
2,664 3
Install
npm install @gui-chat-plugin/jinglescript
Latest Version:0.8.0
Vue:3
License:MIT
Last Updated:Oct 19, 2026
Links: GitHub  ·  npm
Maintainer: snakajima

@gui-chat-plugin/jinglescript

A GUI Chat Protocol plugin for JingleScript. It offers the same single tool as the MCP server, manageJingleScript (actions getGuide, getSchema, listInstruments, getInstrument, checkScore, renderScore), and adds a player view: a successful renderScore returns the jingle as data, and the view plays it with its waveform, beat grid, named cues (click one to jump there) and a lane of notes per track; effects with a length (risers, whooshes) show as bars. When the score has lyrics, the view shows them karaoke-style: the line being played and the next, each syllable filling in as its note plays. The audio and the music as MIDI (the library's scoreToMidi) can be downloaded from the view; the data also carries the score that was rendered. Every other action answers the LLM in text and shows no card.

A score can also be passed as a file (path instead of score). The plugin reads it through the host's files.byPath capability — the one presentDocument uses — so the host decides what a path may reach and what a relative path is relative to. A host that does not provide files.byPath to manageJingleScript gets an error asking for the score inline.

  • "@gui-chat-plugin/jinglescript" (main entry, Node): TOOL_DEFINITION, pluginCore (execute renders on the host's server). The audio is embedded as a data URI — MP3 when ffmpeg is on the server, otherwise 16-bit WAV — so no file serving is needed.
  • "@gui-chat-plugin/jinglescript/vue" (browser): plugin with viewComponent and previewComponent. It does not load the library.

Adding it to MulmoTerminal

The library is a peer dependency (the host's server runs the tool), so a host installs both:

  1. yarn add jinglescript @gui-chat-plugin/jinglescript
  2. plugins/plugins.json: add "@gui-chat-plugin/jinglescript" to packages.
  3. src/plugins-registry.ts: import plugin from @gui-chat-plugin/jinglescript/vue and its style.css?inline, and add a PACKAGES entry (viewOf(...), no runtime wrapper needed).
  4. common/toolGroups.ts: put manageJingleScript in the media group.
  5. Rebuild the frontend (yarn build) and restart MulmoTerminal (the server loads plugins at boot).

Development

yarn install
yarn typecheck   # vue-tsc, against the library's source
yarn test        # vitest, against the library's source
yarn build       # dist/: index.js (Node), vue.js + style.css (browser)
yarn definition  # regenerate src/definition.json from the library's zod schema
yarn demo-data && yarn demo   # a page with the player for three examples

Related Packages

w-audioplayer-vue

An audio player by howler.

7,533 12
@iomariani/vue-player

Vue.js HTML5 Audio/Video Player

1,811 10
xns-audio-player-simple

A simple yet powerful music player for VueJs inspired by xns-audio-player

4,791 9
@moefe/vue-aplayer

A beautiful HTML5 music player for Vue.js

7,423 459
@condero/vue-audio-player

Vue 3 audio player with waveform, repeat, speed control and A/B looping

1,402 0

Version History

Version Released License
0.8.0 MIT
0.7.0 MIT
0.6.0 MIT
0.5.0 MIT
0.4.0 MIT
Pre-releases (1)
Version Released License
0.0.0-stage