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:

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:

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

TaskBetter fitWhy
Add or remove an effect on many tracksExtensionDevice placement is a Set edit
Rename scenes or tracks from clip namesExtensionStructural, one-shot
Write a chord progression or bassline into a clipExtensionEdits stored MIDI notes
Sync edits across repeated clips on demandExtensionTriggered push, no background process needed
Send clip data to a web service or fileExtensionFull Node.js networking and file access
Custom audio effect on a trackMax for LiveReal-time audio processing
Transform incoming MIDI as you playMax for LiveReal-time MIDI processing
Hardware controller integrationMax for LiveControl surfaces stay there
Anything that reacts to playback over timeMax for LiveExtensions 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:

  1. Call initialize().
  2. Register a command with commands.registerCommand.
  3. Attach it to a context-menu scope with ui.registerContextMenuAction(scope, title, commandId). Scopes include "MidiClip", "ClipSlot" and "AudioTrack".
  4. In the command, resolve the handle you receive with context.getObjectFromHandle(handle, MidiClip), then work with the object. For example, read MidiClip.notes or the song's tempo at context.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.

Browse all extensions → · Submit yours →