Introduction
What you can build with the Ableton Extension SDK and how to get started
The Ableton Extension SDK lets you extend Ableton Live with JavaScript and TypeScript. Extensions run in Node.js alongside Live, giving you programmatic access to the Live Set, custom user interfaces, and the entire npm ecosystem.
What You Can Build
Section titled “What You Can Build”Manipulate the Live Set
Section titled “Manipulate the Live Set”Read and modify tracks, clips, devices, and more.
- Batch rename every clip in a project based on a pattern
- Create and delete scenes or create track templates with a single command
- Read and write clip warp modes, edit MIDI notes, or change device parameters across entire projects
Work with Audio and Files
Section titled “Work with Audio and Files”Import audio into the project, render stems, and read or write files on disk.
- Import audio files and drop them into arrangement
- Render stems from selected tracks in the arrangement
- Transform audio files using intensive offline processes
Build Custom Interfaces
Section titled “Build Custom Interfaces”Show modal dialogs using a WebView built with HTML, JS, and CSS.
- Data tables showing clip metadata or project statistics
- Multi-step forms for configuring complex batch operations
Integrate with NPM
Section titled “Integrate with NPM”Extensions are Node.js processes. You have access to npm packages and Node APIs.
- Call APIs to fetch data such as lyrics, samples, and MIDI files.
- Read and write files in your extension’s storage and temp directories
What Extensions Aren’t Designed For
Section titled “What Extensions Aren’t Designed For”Extensions are not designed to solve every problem. For building custom devices or realtime processing Max for Live is the tool to reach for. If you find you need any of these things:
- Real-time audio processing
- MIDI routing or real-time MIDI manipulation
- Drawing into Live’s native UI
- Background extensions (running without Live open or persistently)
- Control Surface integration
Then you may want to use another approach to solve your problem.
Next Steps
Section titled “Next Steps”- Quick Start — create and run your first extension