Extensions SDK vs Max for Live: Which Ableton Tool for Which Job
Published Oct 23, 2026 · guide
Extensions SDK or Max for Live? A practical split for Ableton Live users: which tasks belong to project-data extensions and which need real-time devices.
Ableton's Extensions SDK and Max for Live both let you add your own tools to Live, but they work on different material. An extension reads and edits the structure of a Set: tracks, clips, MIDI notes, devices, parameters and tempo. Then it stops. Real-time audio and MIDI processing, native devices and control surfaces remain Max for Live territory.
That gives you a simple first question for any idea. Does it need to touch sound or MIDI while Live is playing? Then it's a Max for Live job. Does it change what is in the Set? Then an extension is probably the shorter route.
The core split: editing the Set vs. processing the signal
An extension is something you run on purpose. You right-click an item in your Set, such as a MIDI clip, audio clip, clip slot, track, scene or device. Compatible extensions appear in that context menu, and you click a name to run it. The extension does its work on the project data and finishes. There is no long-running background process.
That one-shot model matters more than anything else when you're choosing. An extension can't sit on a track listening to incoming notes, and it can't follow the playhead and react bar by bar. It's closer to a very capable macro than to a device. If you want the background on what extensions are in general, see our plain-English guide.
Jobs that belong to an extension
These are tasks where you'd otherwise click through Live by hand, often across many tracks or clips. The current marketplace examples line up neatly with them.
Batch edits across tracks
Adding the same effect to twelve tracks, or stripping a device from every track before a mixdown, is repetitive structural work. Repeat It does exactly this. It adds, removes and organizes Ableton audio effects across the selected tracks or every track in the Set in one pass. Note the distinction: the effects themselves process audio, but placing them is a Set edit.
Renaming and organizing
Housekeeping is a natural fit. Scene Name Committer renames each scene to match the clip name in the same row of a track you choose. You right-click an audio or MIDI track and pick Commit Scene Names From Track. A live performer with a well-named "vocals" or "drums" track gets readable scene names in a single action.
Writing MIDI into clips
Extensions can read and write MIDI notes. Each note carries pitch, start time, duration, velocity, mute state and probability, with times in beats. That makes generating or rewriting clips a clean extension task:
- Progressive lays out well-known chord progressions in a key you pick, such as I–V–vi–IV, ii–V–I, Pachelbel and 12-bar blues. It writes them as Session clips or an Arrangement row.
- the-fnk — Ableton MCP adds an "Ask Claude…" action to Session clip slots. You type an instruction in plain language, and Claude generates or edits MIDI there.
More examples are in the MIDI tools and generative categories.
Keeping repeated material in sync
PS Clip Jockey brings ghost clips to Live. You tag a master clip, edit it, then push the change to every linked clip in the arrangement, with up to eight groups per track. The "push" step is telling. Because extensions run once per invocation, you trigger the sync yourself instead of relying on a watcher that updates in the background.
Talking to files and the outside world
Extensions run on Node.js with the full Node APIs, including file system access and networking. Each extension also gets its own storage directory for config and credentials. Tasks that involve reading a file, writing an export or calling a web service suit extensions well. the-fnk calling out to Claude is one example. Browse integrations for more.
Jobs that stay in Max for Live
Ableton draws the line clearly. If your idea needs any of the following, start in Max for Live:
- Real-time audio processing. An effect that shapes sound as it passes through a track.
- Real-time MIDI processing. Transforming notes as they're played or as clips run, rather than rewriting the notes stored in a clip.
- Devices. Anything that should live in a device chain and be saved with the track as an instrument or effect.
- Control surfaces. Hardware controller integration.
- Continuous behavior. Anything that has to keep running and respond over time, because an extension stops after each run.
For how to build those, go to Ableton's own Max for Live documentation. The Extensions SDK docs only cover extensions.
The grey areas
Some ideas could go either way, depending on how you phrase them.
Generative music
"Generate a chord progression" is an extension task. Progressive writes clips once, and you then edit them like any other clip. "Generate a new variation every bar while the set plays" needs something that runs continuously, which points to Max for Live.
Audio
Extensions don't do real-time audio, but that doesn't mean they can't touch audio at all. Paulstretch For Live embeds libpaulstretch, a C++ rewrite of the original Paulstretch algorithm, and runs it from inside Live through its own dialog. It's a job you run, not a device processing live input. Check its page for exactly how it hands the stretched result back to your Set. Other examples are listed under audio tools.
Parameters
An extension can read and set device parameters at the moment you run it. Use one to reset a template, copy settings between tracks or randomize a starting point. Modulating a parameter smoothly over time during playback is real-time behavior, so that belongs in Max for Live.
Quick reference
| Task | Better fit | Why |
|---|---|---|
| Add or remove an effect on many tracks | Extension | Device placement is a Set edit |
| Rename scenes or tracks from clip names | Extension | Structural, one-shot |
| Write a chord progression or bassline into a clip | Extension | Edits stored MIDI notes |
| Sync edits across repeated clips on demand | Extension | Triggered push, no background process needed |
| Send clip data to a web service or file | Extension | Full Node.js networking and file access |
| Custom audio effect on a track | Max for Live | Real-time audio processing |
| Transform incoming MIDI as you play | Max for Live | Real-time MIDI processing |
| Hardware controller integration | Max for Live | Control surfaces stay there |
| Anything that reacts to playback over time | Max for Live | Extensions stop after each run |
For developers: what building an extension involves
The Extensions SDK is an open JavaScript/TypeScript toolkit. It includes a JavaScript API, a CLI, a project scaffolder, examples and a TypeDoc API reference. You need Node.js v24 LTS or later on macOS or Windows. The full reference is at ableton.github.io/extensions-sdk.
An extension is a package with a manifest.json containing name, author, entry, version and minimumApiVersion. The entry is a bundled file that exports activate(). Inside it, you:
- Call
initialize(). - Register a command with
commands.registerCommand. - Attach it to a context-menu scope with
ui.registerContextMenuAction(scope, title, commandId). Scopes include"MidiClip","ClipSlot"and"AudioTrack". - In the command, resolve the handle you receive with
context.getObjectFromHandle(handle, MidiClip), then work with the object. For example, readMidiClip.notesor the song's tempo atcontext.application.song.tempo.
For longer jobs there's withinProgressDialog. For custom interfaces, showModalDialog opens a modal web view. The extensions-cli scaffolds a project, loads it into Live's extension host while you develop, and runs package to produce the .ablx file you distribute. Check the docs for exact import paths, the scope list and current API version numbers.
Ableton also points out that because the SDK uses standard web technology, AI coding assistants handle it well. A producer who doesn't program can describe a tool and iterate on it. That's a real difference in who can build things, and the marketplace already shows hobbyist-scale tools appearing quickly.
Availability and next steps
Extensions currently need Live 12 Suite, beta 12.4.5 or later. They aren't available in Live Standard, Intro or Lite. To get the build, join the Ableton beta program. To install, open Settings → Extensions in Live and add the .ablx package. Some extensions need a restart, and our step-by-step install guide covers the details. Ableton's Extensions page has a showcase and FAQ, and the launch post explains the thinking behind the SDK, which went into free public beta on June 2, 2026.
A good first test: install one of the free extensions above, right-click the item it targets, and watch what it changes in your Set. Then browse the full extension list. If you build something, you can publish it here or share it in the extensions channel on Ableton's Discord.