Skip to content

Extending Producer Pal

Producer Pal is a stable core with open edges. The core does one thing: control Ableton Live, with the fewest tools and tokens it can manage.

Everything else is up to you: how the AI is instructed, what you drive it from, and whether there's an AI involved at all. You don't need to fork the repo or change the core to do any of it.

Script Live over the REST API

The REST API exposes every tool over plain HTTP on your own machine. There's no AI in this path unless you add one.

bash
# Read the Live Set overview
curl -X POST http://localhost:3350/api/tools/ppal-read-live-set \
  -H 'Content-Type: application/json' -d '{}'

# Set the tempo to 128
curl -X POST http://localhost:3350/api/tools/ppal-update-live-set \
  -H 'Content-Type: application/json' -d '{"tempo": 128}'

You can:

  • Build your own interface. A local web page can drive Live — the whole REST API, straight from browser JavaScript.
  • Use it without AI at all. Generative scripts, batch edits across many clips, project scaffolding, reproducible test Sets.
  • Put your own AI in front of it. The API doesn't care which model. Use an agent framework, a local model, a notebook, whatever fits.

The ppal-live-api tool goes lower, with direct access to the Live Object Model for reads and writes the specialized tools don't cover. It's off by default — see Live API.

Zero-dependency Node and Python sample scripts are included to get you started.

Drive it from a coding agent

Producer Pal ships a portable Agent Skill — the SKILL.md convention shared by Claude Code, Codex CLI, and Gemini CLI. Drop the folder into your agent's skills directory and it can control Live through the REST API, no MCP client needed.

A coding agent can write and run code against the API, iterate on a generative script while you listen, and change device settings mid-session: notation, small model mode, Direct Live API. MCP clients can only change those by changing settings on the device and starting a new conversation.

Two companion skills build on that connection. ableton-audio-generator synthesizes audio from scratch with plain Node.js DSP — drum kits, Simpler samples, wavetables, reverb impulse responses, drones — and places it in Live. ableton-analyze-audio goes the other way, in two halves that also work on their own: render the mix, a single track, or one Session clip to a file (macOS only — Live exposes no render API, so this drives the Export dialog with AppleScript), then optionally hand that file to Google's Gemini for feedback on how it actually sounds (any platform, needs a GEMINI_KEY; it's one small script, so pointing it at a different audio-capable API is a short edit).

Neither belongs in Producer Pal. Driving another app's UI and calling an external API need a real runtime the Max for Live device doesn't have. The device could technically do DSP, but synthesis is open-ended enough that an agent writing real code beats any DSL Producer Pal would have to teach.

Set up the Agent Skill →

Customize what the AI is told

Shape how the AI uses the tools with text, not code. It all lives in ~/.producer-pal/ as plain Markdown you can edit, back up, and share, and you can edit it in the context editor.

  • Skills — the instructions the AI gets when it connects. Override any fragment with your own text, or delete the parts you don't use so you stop paying for them every conversation. A fragment can also @include your own Markdown files, to add guidance the built-ins don't cover.
  • Global context — what you want in every Live Set: your genres, your habits, your rules.
  • Memory — facts the AI records about you as you work, loaded on demand so a growing memory stays cheap.
  • Custom instructions — the system prompt for the built-in Chat UI. (External clients bring their own.)

Who it's for: anyone who can write clear instructions. If you can describe a workflow in plain language, you can change how the AI works.

Choosing the right extension point

I want to…Use
Script Ableton Live without AIREST API
Build my own interface for LiveREST API
Work from Claude Code, Codex CLI, or Gemini CLIAgent Skill
Synthesize audio and land it in LiveCompanion skills
Render a mixdown or stem (macOS only), or analyze a mixCompanion skills
Teach the AI a production techniqueSkills
Tell the AI my preferences once, for goodGlobal context
Cut what the AI costs per conversationTrim the skills

Ideas under consideration

These aren't commitments, just what I'm thinking about after 2.1:

  • Custom skills as first-class. Today you extend the skills by overriding a fragment and @include-ing your own files. Registering a standalone skill — named, described, and loaded when it's relevant — is a natural next step.
  • Personas. Presets already bundle a provider, model, tool set, and notation. Carrying their own context and skills too would make them a full switch of the AI's setup for a focused task.
  • Workflows. Fixed tool-call sequences the AI runs but doesn't improvise. 2.1 answered half the question with subagents, which cover the delegation part; whether the fixed-sequence part is worth building — or is just a command-oriented skill — is still undecided.

Have an opinion on any of these? GitHub Discussions or Discord.

Stable core

The core repo won't change much after 2.0, and that's on purpose. Extensions don't break when the core doesn't move.

Starting with 2.0, breaking changes need at least a minor version bump (2.1, 3.0); patch releases stay backward-compatible. Core work continues on bug fixes, new Live API features as they land, and efficiency — cost matters whether you're on a local model, a subscription, or pay-as-you-go — but through small improvements, not rewrites.

Contributing back

If you find tweaks to the default skills or tool and parameter descriptions that make the AI behave better, send a pull request — improvements to the built-ins reach everyone. A few areas I'm especially interested in:

  • Skills and chat system instructions — changes to the built-in Producer Pal Skills or the Chat UI system instructions, especially ones backed by experiments that show better behavior.
  • Coding-agent skills — more Agent Skill examples for other workflows and agents. I'm happy to feature good ones on this site.
  • MIDI notation and transforms — experiments with other notation systems, and additions to the transforms syntax. Ask first so we can agree on the grammar direction.

Changes like these land best with evals that show they help — ideally on both large and small models, since a prompt tweak that helps a big model can hurt a small local one.

The toolset itself has stabilized, so changing a tool or adding one takes some convincing. Ask first. The contributing guide covers the strict code-quality checks — they're there to fight AI slop, not to gatekeep — and how to work with them.

Questions, or an extension to show off? GitHub Discussions or Discord.

Released under the GPL-3.0 License.