edit-soundfish
Edit a loop with an agent
Copy the exact current loop from the editor, run the checked CLI workflow, and open the verified URL it returns.
Any agent provider you use may receive this loop and the CLI output. Only a fully local, offline model and runner keep them on your device.
Copy the prompt to enable ChatGPT and Claude.
1. Copy the exact handoff
Open the loop, choose Edit with agent, then choose Copy prompt. The prompt contains the complete current #l1.… fragment exactly once. Do not shorten or reconstruct it.
Choose Copy prompt first. After copying succeeds, Open ChatGPT and Open Claudebecome available as native provider links. Their outbound URLs contain no prompt or loop fragment. Any agent provider may receive the loop and CLI output. Only a fully local, offline model and runner keep them on your device; check the provider's data policy before sharing sensitive material.
2. Install the checked skill
Download edit-soundfish.zip. It requires Bun 1.3.14. Inspect the archive before extraction and confirm it has one top-level edit-soundfish/ directory. Put that directory in the agent runner's skill directory, reload skills if needed, and run:
bun <skill-path>/scripts/soundfish.mjs --helpIf Bun is unavailable, install it before continuing. Do not treat an unrun skill as installed.
3. Name the track type
Soundfish has two track types. Notes tracks contain pitched events and one zero-based GM1 program. Drums tracks contain GM percussion pitches 35–81, omit gmProgram, and use one-step hits. Tell the agent which type to add or edit when the request could be ambiguous.
4. Verify the returned URL
The agent inspects and verifies the input, applies the operation with the checked CLI, preserves unrelated tracks and checked lineage, verifies the output, and returns one complete https://sound.fish/#… URL. Open it in Soundfish and listen before keeping it.
Copyable installation prompt
Use Soundfish for this MIDI-loop task.
Install the edit-soundfish skill from https://sound.fish/skills/edit-soundfish.zip. Inspect the archive before extracting it: it must contain exactly one top-level edit-soundfish/ directory. Extract that directory into your runner's configured skill directory, then run:
bun <skill-path>/scripts/soundfish.mjs --help
Invoke $edit-soundfish and follow its checked CLI workflow. Soundfish tracks have exactly two distinct types: notes tracks use one zero-based GM1 program, while drums tracks use GM percussion pitches and never have a gmProgram field. Preserve each track's type unless I explicitly request a replacement of another type.
Treat the complete sound.fish URL fragment as the canonical loop document. Do not upload the fragment or decoded loop to a hosted mutation service. If this prompt is pasted into a hosted chat, that chat provider receives the loop URL; do not send it to any additional service.
Determine whether I want to create a new loop or inspect or edit an existing loop. For an inspection or edit, ask for the complete current Soundfish URL if it is missing. For a new loop, do not require a base URL. Ask for any missing musical requirements, then return one verified Soundfish URL and a short description of the result.