v0.6.0 Built into the engine. It runs on your computer: no account, no API key, nothing sent anywhere.
Wavelength MCP
Give Claude, Cursor, VS Code or Codex a music engine. Your agent writes songs as data, plays them through the synthesizers on your computer, and reads back how they measure.
Set it up in a minute.
1Get the engine
One binary, no installer. This puts the macOS build in your home folder; Linux and Windows builds are on the latest release.
Clients want the binary's full path. Below, /path/to/wavelength stands for it: /Users/you/wavelength-macos-universal/wavelength after this.
curl -L https://github.com/austinginder/wavelength/releases/latest/download/wavelength-macos-universal.tar.gz | tar xz -C ~
~/wavelength-macos-universal/wavelength version2Add it to your client
Claude Code
The plugin brings the server and the /wavelength skill, and installs the engine on first use, so step 1 is optional:
/plugin marketplace add austinginder/wavelength
/plugin install wavelength@wavelengthOr add the server alone, for every project:
claude mcp add --scope user wavelength -- /path/to/wavelength mcpClaude Desktop
Download wavelength.mcpb and open it. It carries the engine for macOS, Windows and Linux and asks where to keep your songs, so there is nothing to edit. Or, in Settings, Developer, Edit Config, add it to claude_desktop_config.json and restart:
{"mcpServers": {
"wavelength": {
"command": "/path/to/wavelength",
"args": ["mcp"]
}
}}Cursor
Add it to ~/.cursor/mcp.json for every project, or .cursor/mcp.json for one:
{"mcpServers": {
"wavelength": {
"command": "/path/to/wavelength",
"args": ["mcp"]
}
}}VS Code
One command adds it to your profile for agent mode:
code --add-mcp '{"name": "wavelength", "command": "/path/to/wavelength", "args": ["mcp"]}'Codex
Add it to ~/.codex/config.toml. A full render can outlast the time Codex gives a tool by default, so this allows ten minutes:
[mcp_servers.wavelength]
command = "/path/to/wavelength"
args = ["mcp"]
tool_timeout_sec = 600Any other client
Windsurf, Gemini CLI, Zed and the rest run it the same way: a local stdio server whose command is the binary and whose argument is mcp. Most take this shape:
{"mcpServers": {
"wavelength": {
"command": "/path/to/wavelength",
"args": ["mcp"]
}
}}Then ask for a song: Write a 90-second synthwave track with a big chorus. Render it and tell me how it measures.
The agent starts with the guide, lists what's installed, and works from there.
It can't hear. So it reads.
Every render answers with the numbers an engineer would check: loudness for the mix, each section and each track, true peak, and warnings with their fixes. Then a picture of the whole song.
This is the reply to one render call on the engine's examples/synth-tour.json, played on built-in instruments.
ok 0:35.0 mix -14.0 LUFS LRA 8.6 true peak -1.0 dBTP rendered in 2.9 s
sections: Intro -20.8, Groove -13.4 (+7.4), Build -17.3 (-3.8), Drop -13.0 (+4.2)
tracks (stem LUFS before the fader): Drums -9.8, Keys -19.3, Bass -18.4, Acid -17.5, Pad -19.4, Arp -18.1, Lead -17.5, Bell -26.8, Glass -23.9, Riser -10.9, Zap -18.3
no warnings
files: mix out/mix.wav, report out/report.json, picture out/song.png
26 tools, from finding a sound to sharing the song.
The server's own list, read from version 0.6.0. Each one runs the engine on your computer.
Learn the engine
- Read the Wavelength guide
guide - The operating guide and references built into the binary, matching this version: how to write, mix and master.
Find sounds
- List instruments and effects
list_instruments - Every CLAP, VST3, VST2 and Audio Unit instrument and effect on this computer, plus the built-in ones.
- List a plugin's presets
list_presets - A plugin's presets by name, so the agent picks real sounds instead of guessing.
- List sample libraries
list_samples - Sample libraries the built-in sampler plays: multisamples, drum kits, SFZ, SoundFonts, GarageBand instruments.
- List Apple Loops
list_loops - The Apple Loops GarageBand and Logic installed, with key and tempo, and the notes inside them.
- List a plugin's parameters
plugin_params - A plugin's parameters with their ranges and display text, to set or automate.
- Save a sound as a preset file
save_preset - Keeps a sound the agent designed as a preset file, for the next song or a DAW project.
- See how presets sound
patch_card - How a preset sounds, as a picture: its real pitch, attack, tail, range and level. Several make a contact sheet.
Write and check
- List the songs
list_songs - The songs in the songs folder, newest first, so the agent can pick one up again.
- Read a song's job
read_job - A song as it stands, with the sounds you tuned by ear, your note edits, your riffs and your brief.
- Write a song's job
write_job - Saves the song the agent wrote, for clients that can't write files themselves. A job that doesn't parse is refused with the reason.
- Check a job's harmony
lint - Wrong notes, out-of-key chords and clashes between parts, caught before rendering.
- Picture of an arrangement
picture - The arrangement drawn before rendering: sections, bars and every track's notes.
- Song time of bars and markers
timeline - When each bar and marker lands in seconds, to find a moment or plan a length.
Render and mix
- Set every fader from its loudness
stage - Sets every fader from measured loudness, the way an engineer gain-stages a mix.
- Render a song
render - Plays the song through its instruments and effects. Answers with loudness per section and track, warnings with their fixes, and a picture.
- Measure audio
analyze - Measures audio: pitch, brightness, band balance, stereo width, onsets.
Keep songs
- Save a revision of a song
save - Saves a revision of the song, so any change can be undone.
- A song's revisions
history - Every revision of a song, with each render's loudness.
- Undo, redo or restore a song
undo - Undo, redo, or bring back any revision.
- What changed in a song
diff - What changed in the music between two revisions, by track and bar.
- A song's review comments
comments - The notes you left while listening in the review page, pinned to bars and tracks.
- Answer a comment
reply - Answers a comment with what changed, and resolves it.
- Stand-in sounds for a song
fallbacks - Built-in stand-ins for every plugin a song uses, level-matched, so it plays on any computer.
- Pack a song into one file
pack - The song as one .wavelength file to share, with the plugins it needs listed.
Bring music in
- Import MIDI, MusicXML, DAWproject, a Bitwig or a GarageBand project
import - Starts from MIDI, MusicXML, DAWproject, Bitwig or GarageBand projects.
Questions people ask first.
Do I need plugins?
No. The built-in synth, drums and effects play a whole song. wavelength kit install adds free synths (Surge XT, OB-Xf, Dexed), and every CLAP, VST3, VST2 and Audio Unit instrument you own works too.
Does it go online?
The server doesn't. It reads and writes files on your computer, and songs, renders and reports stay there. Your client's model sees what the tools return.
Where do songs go?
Each song is a folder in ~/Music/Wavelength, or wherever WAVELENGTH_SONGS points, unless the agent names one. Clients that can't write files, like Claude Desktop, write songs through the server.
Skill or MCP?
Both, in Claude Code: the plugin brings them together. Elsewhere the server is enough. Its guide tool hands the agent the same operating guide the skill follows.
What does it cost?
Nothing. Wavelength is open source under the MIT licence, for macOS, Linux and Windows.
Hear what agents made with it.
Every song in the library was written, arranged and mixed by Claude with Wavelength, with the prompt that started it and every instrument it used.
Listen to the songs Get the agent skill Read the agent guide