my-extension
v0.0.1templateCopy these into a new extension when scaffolding by hand. The recommended path is still the official creator — it fills in .env, vendors the SDK/CLI tarballs, and avoids version-mismatch mistakes:
README · rendered from GitHubView source
Extension project templates
Copy these into a new extension when scaffolding by hand. The recommended path
is still the official creator — it fills in .env, vendors the SDK/CLI
tarballs, and avoids version-mismatch mistakes:
mkdir my-extension && cd my-extension
npx file:/path/to/sdk/ableton-create-extension-<version>.tgz
Use these templates when the creator isn't available, when adding files to an existing project, or as a reference for what each file should contain.
| File | Purpose |
|---|---|
manifest.json | Metadata Live + the CLI read: name, author, version, entry (the bundle), minimumApiVersion. |
package.json | Scripts (start/build/build:dev/package) and deps. Fix the SDK/CLI tarball paths and versions to match your SDK download. |
build.ts | esbuild bundler → single dist/extension.js. Includes the .html text loader so webview imports work. |
tsconfig.json | Strict TS config matching the SDK examples. |
src/extension.ts | Starter entry point: activate → initialize, one command + context-menu action. |
src/html.d.ts | Lets TS accept import html from "./x.html" (needed for webviews). |
src/interface.html | Live-themed modal webview boilerplate (form + OK/Cancel + host messaging). Omit if you have no UI. |
.env.example | Copy to .env; set EXTENSION_HOST_PATH to your Live install so npm start can connect. |
.gitignore | Ignores node_modules/ and dist/. |
After copying
npm install- Enable Preferences → Extensions → Developer Mode in the Live Beta.
- Set
EXTENSION_HOST_PATHin.env(or pass--live <path>tonpm start). npm start
Notes
- The host does not resolve
node_modulesat runtime — everything must be bundled into the one file named bymanifest.json'sentry. npm run packagebuilds for production then emits a.ablxusers install by dropping it on Live's Extensions settings page.- No UI? Delete
src/interface.htmlandsrc/html.d.ts(the.htmlloader inbuild.tsis then just unused, which is harmless). - Storage/temp dirs in dev: Live provides and creates
environment.storageDirectory/tempDirectory, butextensions-cli rundoes not. Thestartscript passes--storage-directory .dev/storage --temp-directory .dev/temp(gitignored) sonpm starthas them; your code must stillfs.mkdir(dir, { recursive: true })before writing, and guard theundefinedcase. This is harmless in production, where Live supplies the dirs.
Rate this extension
One rating per account; you can change it any time.
No ratings yet — be the first
Comments
No comments yet.