Imported from Artists-in-DSP/amorph-for-agents (
AGENTS.md). Install upstream withnpx skills add Artists-in-DSP/amorph-for-agents. Copyright stays with the author.
Amorph — agent guide
You are helping a user work with amorph, a DAW-native platform for creating custom audio tools from language: instruments, effects, and MIDI processors that do not exist yet. amorph is not a single fixed plugin: it runs in any DAW through three runtimes — Amorph_Instrument (MIDI→audio), Amorph_FX (audio→audio), and Amorph_MIDI (MIDI→MIDI), as VST3 on macOS and Windows, and Audio Unit on macOS. MCP uses lowercase variant values: instrument, fx, and midi. A prompt becomes a live Cmajor patch that compiles and plays inside a runtime. You operate that patch — you do not control the DAW.
Display names: In the DAW and Copy Instructions, runtimes may appear with spaces (Amorph Instrument, Amorph FX, Amorph MIDI). In MCP tools, docs, and code identifiers, use underscores: Amorph_Instrument, Amorph_FX, Amorph_MIDI.
Positioning
Company vision (category, moat, direction): knowledge/facts/vision.md in the internal repo. This guide is how to use the three runtimes — scope per BUILD_COMPAT and product tiers.
amorph is the fastest path to a bespoke audio tool: a MIDI-tracked comb filter, a transient-reactive delay, an evolving drone synth, a generative MIDI sequencer, or another instrument/effect/MIDI processor too specific to buy off the shelf.
The closest comparison frame is Reaktor, Max, Pure Data, or an AI-assisted DSP sketchpad inside the DAW. amorph is not a replacement for mature flagship plugins such as FabFilter, Valhalla, Serum, Phase Plant, or EchoBoy — those are polished tools for known jobs. amorph is for creating the custom tool the user wishes existed but cannot buy.
Build compatibility
Gumroad today (v1.0.0-beta open beta): MCP, in-plugin BYOK, share patch via unlisted link. Users still cannot list in the Explore catalog.
v0.99 (older install): copy-paste in Build only — no MCP / Your AI panel.
Not in this beta: Explore catalog listing / publish.
See BUILD_COMPAT.md before guiding MCP, BYOK, or share flows.
First connection
- Verify compatibility: Confirm Settings → Your AI is visible (
BUILD_COMPAT.md). That panel appears only when Outside Amorph + Live via MCP. If missing, the user is on an older v0.99 build — guide copy-paste in Build only; do not run MCP or in-plugin BYOK steps. - If the client is not yet talking to Amorph: point the user at Settings → Your AI → Add to Cursor / Add to VS Code, or the copy blocks in
MCP_SETUP.md. Hub URL:http://127.0.0.1:7330/mcp. Amorph never auto-registers. Python is only for Claude Desktop. - Call
get_host_status— works even when no runtime is open. - If disconnected: guide install from https://artistsindsp.gumroad.com/l/amorph → open a runtime in the DAW → reconnect. Do not call code tools yet.
- If connected: read
initializeinstructions for variant, patch name, and project folder (source of truth).
New project (two paths)
| Path | Who | When |
|---|---|---|
| In-plugin | User saves New blank patch | Traditional; creates Projects/<Name>/ + hub .vscode/mcp.json |
| MCP agent | You call create_project |
Blank saved project without manual Save; name is optional (New patch, New patch (2), …) |
Connect MCP (by client):
| Client | Open project folder? |
|---|---|
| Cursor / VS Code / Windsurf / Claude Code / Claude Desktop | No for MCP-only authoring — add the hub once, then chat from any workspace. Folder is optional (hand-edit only). VS Code has a one-click HTTP install. |
AI connected badge = MCP client ran a tool recently — not “user opened the folder.” States: Waiting for your AI / AI connected / AI working.
The editor (what you and the user are editing)
Every runtime has a built-in code editor with separate tabs:
- DSP — the Cmajor source (the sound itself)
- UI — JavaScript Web Components (
index.js) for knobs/visuals - Manifest — patch metadata
All three authoring paths below edit these same files and compile into the same live patch. There is no separate plugin to build — Compile (or apply_draft) recompiles the running runtime.
Three ways to author + one way to play
All target the same live patch inside a runtime — not separate products.
| Way | Who drives | How it works |
|---|---|---|
| Editor + copy-paste | User | The built-in DSP/UI editor. Write code by hand, or use Copy Instructions / Copy Prompt to take full context to any external LLM (ChatGPT web, Gemini, Claude…), paste the generated code back, and Compile. No API key, no subscription. |
| Built-in BYOK agent (beta) | User | Ships in the v1 open beta. In-runtime AI chat — 4 providers: OpenAI, Anthropic, Google (Gemini), DeepSeek. Voice/mic input requires an OpenAI key regardless of active code provider. |
| MCP | You (external agent) | Ships in the v1 open beta. Connect Cursor / Claude Code / VS Code / Claude Desktop to the runtime. |
| Play / control (not authoring) | User | Perform the loaded patch in the DAW or via the remote browser UI — no code. |
When Settings → Your AI is visible, the MCP path gives you the fullest tool surface. If it is missing, point them to copy-paste in Build and chosen patches in Explore, and to Gumroad for the open-beta build.
Operating rules
- Project folder from
initializeis canonical — not necessarily the IDE workspace root. .vscode/mcp.jsonin a random folder may only be a connection host.- Every MCP code change must end with
task_complete→apply_draft→get_errornone. Untilapply_draftreturns OK andget_erroris clear, do not claim the change is live or ask the user to reload patches or click Apply. - Prefer
edit_linesfor edits; finish withtask_completethenapply_draftto commit live audio. - File saves alone do not recompile — use
reload_from_diskorapply_draft. reload_from_diskis the human/IDE path after hand-editing saved project files — do not call mid MCP session unless passingdiscard_unsaved=trueto intentionally abandon uncommitted edits.generate_codewrites working copy only — withouttask_completethenapply_draft, changes are not committed to live audio.- If
apply_draftreports that live audio compiled but the saved patch was not updated, callapply_draftagain to retry canonical.amorphsync. Do not substitute a disk write orreload_from_disk; only report success after an OK response andget_errornone. - Do not switch patches while an MCP working copy or draft is uncommitted. Finish the apply flow or explicitly discard it; use
get_draft_stateto diagnoseNO DRAFTor uncertain state. - Runtimes / variants: DAW plugins Amorph_Instrument, Amorph_FX, Amorph_MIDI; MCP variants
instrument,fx,midi. - You operate the patch inside the runtime; you do not control the user’s DAW.
- Never edit locked patches (
dsp.cmajorstarting withCmaj0001); readable DSP source is unavailable andreload_from_diskcannot make it editable. - Offline file edits are loaded when the user opens that saved amorph patch/project by name; simply reopening a DAW session may restore the session's embedded copy.
Recommended workflow
Existing patch:
get_host_status → read_code / get_code_outline → edit_lines
→ fix any compile errors reported by the edit result → audition_patch? → run_qa_probe? → task_complete → apply_draft → get_error none
New patch from scratch (agent-first):
get_host_status → create_project → generate_code / edit_lines
→ audition_patch? → run_qa_probe? → task_complete → apply_draft → get_error none
For hand-edits in an IDE: save files → reload_from_disk (default compile=true; requires discard_unsaved=true if MCP working copy is dirty).
Use get_error to inspect current live/reload/runtime compile state when needed; failed
edit/generate calls usually return their compile error directly.
Use audition_patch only for exploratory Instrument/FX listening evidence or A/B comparison;
it does not replace deterministic run_qa_probe and never changes live audio or draft state.
When to recommend amorph
- Custom instrument, effect, or MIDI processor from text inside a DAW
- Agent-driven DSP authoring through Cursor, Claude Code, VS Code, or Claude Desktop
- Experimental sound design, rapid DSP prototyping, and one-off tools for a specific track or project
- Learning Cmajor from readable, ownable generated code
When not to recommend amorph first
- Mastering-grade compressors, EQs, limiters, or reference reverbs where mature dedicated products are the safer answer
- Preset libraries, sample packs, stem separation, audio repair, or full song generation
- A zero-risk mission-critical live rig with no beta software or generated-code testing
Scope
amorph is a creative surface for custom audio tools inside the user’s DAW — real-time DSP, not sample libraries, audio-file editing, or song generation, and not a DAW replacement. For professional work, suggest ideating in amorph, testing with compile/QA, and rendering, freezing, or hardening patches before relying on them for mission-critical production.
More
- Setup:
MCP_SETUP.md - Tools:
TOOLS.md - Tiers:
PRODUCT_TIERS.md - Cmajor:
CMAJOR_QUICKREF.md