Ableton Extensions Python SDK

Shipping a standalone .ablx

One command produces one file that installs on Windows and macOS (Intel + Apple Silicon) alike — no per-OS build, no Python on the user's machine.

Build it

ableton-ext build my_ext.py
[build] wrote My-Tool-0.1.0.ablx (~6 MB) - one file, installs on Windows and macOS.
[build] drag it into Live -> Settings -> Extensions (no Developer Mode, no Python needed).

Give that single .ablx to anyone. They drag it into Live → Settings → Extensions and it runs immediately.

installed extension
Installed and running, Developer Mode off.

How it works

The .ablx carries a WebAssembly Python runtime (Pyodide). On activation, the extension runs your Python as WebAssembly inside Live — using Live's own bundled Node, with nothing extra to install. Because WebAssembly is platform-agnostic and nothing native ships, the same file works on every OS and CPU, and there is no Gatekeeper / SmartScreen / antivirus warning.

Requirement: your extension file must guard app.run() under if __name__ == "__main__": — the build runs the file as its entry point.

Bundled assets

Most dialogs need no HTML at all — use app.ui.prompt / confirm / choose. For a fully custom webview, put the markup in a .html file next to your script (load it with Path(__file__).parent); ableton-ext build bundles sibling .html / .css files automatically, so they work packaged too.

Options

FlagWhat
-o out.ablxOutput path.
--name / --author / --versionOverride metadata.

The two ways to run, recapped

Standalone .ablxDev loop
Howableton-ext build my_ext.pyableton-ext install-bridge + ableton-ext run
Needs Python?NoYes (yours, while developing)
ForShipping to usersEditing & testing fast
Ableton Extensions Python SDK · MIT · GitHub