livepilot 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/.claude/settings.local.json +10 -0
  2. package/.mcpregistry_github_token +1 -0
  3. package/.mcpregistry_registry_token +1 -0
  4. package/.playwright-mcp/console-2026-03-17T15-47-29-021Z.log +10 -0
  5. package/.playwright-mcp/console-2026-03-17T15-51-09-247Z.log +10 -0
  6. package/.playwright-mcp/console-2026-03-17T15-52-22-831Z.log +12 -0
  7. package/.playwright-mcp/console-2026-03-17T15-52-29-709Z.log +10 -0
  8. package/.playwright-mcp/console-2026-03-17T15-53-20-147Z.log +1 -0
  9. package/.playwright-mcp/glama-snapshot.md +2140 -0
  10. package/.playwright-mcp/page-2026-03-17T15-49-02-625Z.png +0 -0
  11. package/.playwright-mcp/page-2026-03-17T15-52-15-149Z.png +0 -0
  12. package/.playwright-mcp/page-2026-03-17T15-52-57-333Z.png +0 -0
  13. package/CHANGELOG.md +33 -0
  14. package/LICENSE +21 -0
  15. package/README.md +296 -0
  16. package/bin/livepilot.js +376 -0
  17. package/installer/install.js +95 -0
  18. package/installer/paths.js +79 -0
  19. package/mcp_server/__init__.py +2 -0
  20. package/mcp_server/__main__.py +5 -0
  21. package/mcp_server/connection.py +207 -0
  22. package/mcp_server/server.py +40 -0
  23. package/mcp_server/tools/__init__.py +1 -0
  24. package/mcp_server/tools/arrangement.py +399 -0
  25. package/mcp_server/tools/browser.py +78 -0
  26. package/mcp_server/tools/clips.py +187 -0
  27. package/mcp_server/tools/devices.py +238 -0
  28. package/mcp_server/tools/mixing.py +113 -0
  29. package/mcp_server/tools/notes.py +266 -0
  30. package/mcp_server/tools/scenes.py +63 -0
  31. package/mcp_server/tools/tracks.py +148 -0
  32. package/mcp_server/tools/transport.py +113 -0
  33. package/package.json +38 -0
  34. package/plugin/.mcp.json +8 -0
  35. package/plugin/agents/livepilot-producer/AGENT.md +61 -0
  36. package/plugin/commands/beat.md +18 -0
  37. package/plugin/commands/mix.md +15 -0
  38. package/plugin/commands/session.md +13 -0
  39. package/plugin/commands/sounddesign.md +16 -0
  40. package/plugin/plugin.json +18 -0
  41. package/plugin/skills/livepilot-core/SKILL.md +160 -0
  42. package/plugin/skills/livepilot-core/references/ableton-workflow-patterns.md +831 -0
  43. package/plugin/skills/livepilot-core/references/m4l-devices.md +352 -0
  44. package/plugin/skills/livepilot-core/references/midi-recipes.md +402 -0
  45. package/plugin/skills/livepilot-core/references/mixing-patterns.md +578 -0
  46. package/plugin/skills/livepilot-core/references/overview.md +191 -0
  47. package/plugin/skills/livepilot-core/references/sound-design.md +392 -0
  48. package/remote_script/LivePilot/__init__.py +42 -0
  49. package/remote_script/LivePilot/arrangement.py +678 -0
  50. package/remote_script/LivePilot/browser.py +325 -0
  51. package/remote_script/LivePilot/clips.py +172 -0
  52. package/remote_script/LivePilot/devices.py +466 -0
  53. package/remote_script/LivePilot/diagnostics.py +198 -0
  54. package/remote_script/LivePilot/mixing.py +194 -0
  55. package/remote_script/LivePilot/notes.py +339 -0
  56. package/remote_script/LivePilot/router.py +74 -0
  57. package/remote_script/LivePilot/scenes.py +75 -0
  58. package/remote_script/LivePilot/server.py +286 -0
  59. package/remote_script/LivePilot/tracks.py +229 -0
  60. package/remote_script/LivePilot/transport.py +147 -0
  61. package/remote_script/LivePilot/utils.py +112 -0
  62. package/requirements.txt +2 -0
  63. package/server.json +20 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,33 @@
1
+ # Changelog
2
+
3
+ ## 1.1.0 — 2026-03-17
4
+
5
+ ### New Tools (+7)
6
+ - **`back_to_arranger`** — switch playback from session clips back to arrangement timeline
7
+ - **`get_arrangement_notes`** — read MIDI notes from arrangement clips
8
+ - **`remove_arrangement_notes`** — remove notes in a region of an arrangement clip
9
+ - **`remove_arrangement_notes_by_id`** — remove specific notes by ID
10
+ - **`modify_arrangement_notes`** — modify notes by ID (pitch, time, velocity, probability)
11
+ - **`duplicate_arrangement_notes`** — copy notes by ID with optional time offset
12
+ - **`get_device_presets`** — list presets for any device (audio effects, instruments, MIDI effects)
13
+
14
+ ### Fixes
15
+ - Fixed arrangement tools test coverage (was missing 5 tools from expected set)
16
+ - Synchronized tool count across all documentation (was 80/81/84, now consistently 91)
17
+
18
+ ## 1.0.0 — 2026-03-17
19
+
20
+ Initial release.
21
+
22
+ ### Features
23
+ - **84 MCP tools** across 9 domains: transport, tracks, clips, notes, devices, scenes, mixing, browser, arrangement
24
+ - **Remote Script** for Ableton Live 12 with thread-safe command queue via `schedule_message`
25
+ - **MCP Server** (FastMCP) with input validation, auto-reconnect, and structured error messages
26
+ - **CLI** (`npx livepilot`) with `--install`, `--uninstall`, `--status`, `--doctor`, `--version`
27
+ - **Claude Code Plugin** with:
28
+ - `livepilot-core` skill — core discipline and workflow guides
29
+ - `livepilot-producer` agent — autonomous production from high-level descriptions
30
+ - 4 slash commands: `/session`, `/beat`, `/mix`, `/sounddesign`
31
+ - **Installer** with auto-detection of Ableton paths on macOS and Windows
32
+ - **Live 12 modern note API** support: note IDs, probability, velocity_deviation
33
+ - **JSON over TCP** protocol on port 9878 with structured error codes
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Pilot Studio
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,296 @@
1
+ ```
2
+ ██╗ ██╗██╗ ██╗███████╗██████╗ ██╗██╗ ██████╗ ████████╗
3
+ ██║ ██║██║ ██║██╔════╝██╔══██╗██║██║ ██╔═══██╗╚══██╔══╝
4
+ ██║ ██║██║ ██║█████╗ ██████╔╝██║██║ ██║ ██║ ██║
5
+ ██║ ██║╚██╗ ██╔╝██╔══╝ ██╔═══╝ ██║██║ ██║ ██║ ██║
6
+ ███████╗██║ ╚████╔╝ ███████╗██║ ██║███████╗╚██████╔╝ ██║
7
+ ╚══════╝╚═╝ ╚═══╝ ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═╝
8
+ ```
9
+
10
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
11
+ [![CI](https://github.com/dreamrec/LivePilot/actions/workflows/ci.yml/badge.svg)](https://github.com/dreamrec/LivePilot/actions/workflows/ci.yml)
12
+ [![GitHub stars](https://img.shields.io/github/stars/dreamrec/LivePilot)](https://github.com/dreamrec/LivePilot/stargazers)
13
+
14
+ **AI copilot for Ableton Live 12** — 91 MCP tools for real-time music production, sound design, and mixing.
15
+
16
+ Control your entire Ableton session through natural language. Create tracks, program MIDI, load instruments, tweak parameters, arrange songs, and mix — all without leaving the keyboard.
17
+
18
+ ---
19
+
20
+ ## What You Can Do
21
+
22
+ - **Produce** — Create tracks, load instruments, program drum patterns, bass lines, chord progressions, and melodies
23
+ - **Arrange** — Build full song structures in arrangement view with MIDI note editing, cue points, and timeline navigation
24
+ - **Design sounds** — Browse Ableton's library, load presets, tweak device parameters, chain effects
25
+ - **Mix** — Set levels, panning, sends, and routing. Run diagnostics to catch silent tracks and mute leftovers
26
+ - **Iterate fast** — Transpose, humanize, quantize, duplicate, and reshape patterns through conversation
27
+
28
+ ---
29
+
30
+ ## Quick Start
31
+
32
+ ### 1. Install the Remote Script
33
+
34
+ ```bash
35
+ npx -y github:dreamrec/LivePilot --install
36
+ ```
37
+
38
+ ### 2. Enable in Ableton
39
+
40
+ Restart Ableton Live, then go to **Preferences > Link, Tempo & MIDI > Control Surface** and select **LivePilot**.
41
+
42
+ ### 3. Add to your MCP client
43
+
44
+ <details open>
45
+ <summary><strong>Claude Code</strong></summary>
46
+
47
+ ```bash
48
+ claude mcp add LivePilot -- npx -y github:dreamrec/LivePilot
49
+ ```
50
+
51
+ Or add to `.mcp.json`:
52
+
53
+ ```json
54
+ {
55
+ "mcpServers": {
56
+ "LivePilot": {
57
+ "command": "npx",
58
+ "args": ["-y", "github:dreamrec/LivePilot"]
59
+ }
60
+ }
61
+ }
62
+ ```
63
+
64
+ **Optional:** Install the Claude Code plugin for skills, slash commands, and the producer agent:
65
+
66
+ ```bash
67
+ claude plugin add github:dreamrec/LivePilot/plugin
68
+ ```
69
+
70
+ </details>
71
+
72
+ <details>
73
+ <summary><strong>Claude Desktop</strong></summary>
74
+
75
+ Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
76
+
77
+ ```json
78
+ {
79
+ "mcpServers": {
80
+ "LivePilot": {
81
+ "command": "npx",
82
+ "args": ["-y", "github:dreamrec/LivePilot"]
83
+ }
84
+ }
85
+ }
86
+ ```
87
+
88
+ Restart Claude Desktop after saving.
89
+
90
+ </details>
91
+
92
+ <details>
93
+ <summary><strong>Cursor</strong></summary>
94
+
95
+ Open Cursor Settings > MCP Servers > Add Server, then use:
96
+
97
+ - **Name:** LivePilot
98
+ - **Command:** `npx -y github:dreamrec/LivePilot`
99
+
100
+ Or add to `.cursor/mcp.json`:
101
+
102
+ ```json
103
+ {
104
+ "mcpServers": {
105
+ "LivePilot": {
106
+ "command": "npx",
107
+ "args": ["-y", "github:dreamrec/LivePilot"]
108
+ }
109
+ }
110
+ }
111
+ ```
112
+
113
+ </details>
114
+
115
+ <details>
116
+ <summary><strong>VS Code (Copilot)</strong></summary>
117
+
118
+ Add to `.vscode/mcp.json`:
119
+
120
+ ```json
121
+ {
122
+ "servers": {
123
+ "LivePilot": {
124
+ "command": "npx",
125
+ "args": ["-y", "github:dreamrec/LivePilot"]
126
+ }
127
+ }
128
+ }
129
+ ```
130
+
131
+ </details>
132
+
133
+ <details>
134
+ <summary><strong>Windsurf</strong></summary>
135
+
136
+ Add to `~/.codeium/windsurf/mcp_config.json`:
137
+
138
+ ```json
139
+ {
140
+ "mcpServers": {
141
+ "LivePilot": {
142
+ "command": "npx",
143
+ "args": ["-y", "github:dreamrec/LivePilot"]
144
+ }
145
+ }
146
+ }
147
+ ```
148
+
149
+ </details>
150
+
151
+ ### 4. Verify connection
152
+
153
+ ```bash
154
+ npx -y github:dreamrec/LivePilot --status
155
+ ```
156
+
157
+ ---
158
+
159
+ ## 91 Tools Across 9 Domains
160
+
161
+ | Domain | Tools | What you can do |
162
+ |--------|:-----:|-----------------|
163
+ | **Transport** | 12 | Play/stop, tempo, time signature, loop, undo/redo, metronome, diagnostics |
164
+ | **Tracks** | 12 | Create MIDI/audio/return tracks, name, color, mute, solo, arm |
165
+ | **Clips** | 10 | Create, delete, duplicate, fire, stop, loop settings, launch mode |
166
+ | **Notes** | 8 | Add/get/remove/modify MIDI notes, transpose, quantize, duplicate |
167
+ | **Devices** | 12 | Load instruments & effects, tweak parameters, rack chains, presets |
168
+ | **Scenes** | 6 | Create, delete, duplicate, fire, rename |
169
+ | **Mixing** | 8 | Volume, pan, sends, routing, return tracks, master |
170
+ | **Browser** | 4 | Search Ableton's library, browse categories, load presets |
171
+ | **Arrangement** | 19 | Create clips, full MIDI note CRUD, cue points, recording, automation |
172
+
173
+ <details>
174
+ <summary><strong>Full tool list</strong></summary>
175
+
176
+ ### Transport (12)
177
+ `get_session_info` · `set_tempo` · `set_time_signature` · `start_playback` · `stop_playback` · `continue_playback` · `toggle_metronome` · `set_session_loop` · `undo` · `redo` · `get_recent_actions` · `get_session_diagnostics`
178
+
179
+ ### Tracks (12)
180
+ `get_track_info` · `create_midi_track` · `create_audio_track` · `create_return_track` · `delete_track` · `duplicate_track` · `set_track_name` · `set_track_color` · `set_track_mute` · `set_track_solo` · `set_track_arm` · `stop_track_clips`
181
+
182
+ ### Clips (10)
183
+ `get_clip_info` · `create_clip` · `delete_clip` · `duplicate_clip` · `fire_clip` · `stop_clip` · `set_clip_name` · `set_clip_color` · `set_clip_loop` · `set_clip_launch`
184
+
185
+ ### Notes (8)
186
+ `add_notes` · `get_notes` · `remove_notes` · `remove_notes_by_id` · `modify_notes` · `duplicate_notes` · `transpose_notes` · `quantize_clip`
187
+
188
+ ### Devices (12)
189
+ `get_device_info` · `get_device_parameters` · `set_device_parameter` · `batch_set_parameters` · `toggle_device` · `delete_device` · `load_device_by_uri` · `find_and_load_device` · `get_rack_chains` · `set_simpler_playback_mode` · `set_chain_volume` · `get_device_presets`
190
+
191
+ ### Scenes (6)
192
+ `get_scenes_info` · `create_scene` · `delete_scene` · `duplicate_scene` · `fire_scene` · `set_scene_name`
193
+
194
+ ### Mixing (8)
195
+ `set_track_volume` · `set_track_pan` · `set_track_send` · `get_return_tracks` · `get_master_track` · `set_master_volume` · `get_track_routing` · `set_track_routing`
196
+
197
+ ### Browser (4)
198
+ `get_browser_tree` · `get_browser_items` · `search_browser` · `load_browser_item`
199
+
200
+ ### Arrangement (19)
201
+ `get_arrangement_clips` · `create_arrangement_clip` · `add_arrangement_notes` · `get_arrangement_notes` · `remove_arrangement_notes` · `remove_arrangement_notes_by_id` · `modify_arrangement_notes` · `duplicate_arrangement_notes` · `transpose_arrangement_notes` · `set_arrangement_clip_name` · `set_arrangement_automation` · `back_to_arranger` · `jump_to_time` · `capture_midi` · `start_recording` · `stop_recording` · `get_cue_points` · `jump_to_cue` · `toggle_cue_point`
202
+
203
+ </details>
204
+
205
+ ---
206
+
207
+ ## Claude Code Plugin
208
+
209
+ The plugin adds production-focused skills, slash commands, and an autonomous producer agent.
210
+
211
+ | Command | Description |
212
+ |---------|-------------|
213
+ | `/session` | Full session overview with diagnostics |
214
+ | `/beat` | Guided beat creation — genre, tempo, instrumentation |
215
+ | `/mix` | Mixing assistant — levels, panning, sends |
216
+ | `/sounddesign` | Sound design workflow — instruments, effects, presets |
217
+
218
+ **Producer Agent** — An autonomous agent that builds tracks from high-level descriptions like *"Make me a 126 BPM rominimal track in D minor with hypnotic percussion"*.
219
+
220
+ ---
221
+
222
+ ## Architecture
223
+
224
+ ```
225
+ Claude / AI Client
226
+ │ MCP Protocol (stdio)
227
+
228
+ ┌─────────────────────┐
229
+ │ MCP Server │ Python (FastMCP)
230
+ │ mcp_server/ │ Input validation, auto-reconnect
231
+ └────────┬────────────┘
232
+ │ JSON over TCP (port 9878)
233
+
234
+ ┌─────────────────────┐
235
+ │ Remote Script │ Runs inside Ableton's Python
236
+ │ remote_script/ │ Thread-safe command queue
237
+ │ LivePilot/ │ ControlSurface base class
238
+ └─────────────────────┘
239
+ ```
240
+
241
+ Single-client TCP connection by design — Ableton's Live Object Model is not thread-safe.
242
+
243
+ ---
244
+
245
+ ## Compatibility
246
+
247
+ | | Live 12 (all editions) | Suite only |
248
+ |---|:---:|:---:|
249
+ | Transport, tracks, clips, scenes, mixing | Yes | — |
250
+ | MIDI notes (add, modify, remove, probability) | Yes | — |
251
+ | Device parameters, effects, browser | Yes | — |
252
+ | Arrangement (clips, notes, cue points) | Yes | — |
253
+ | Stock instruments (Drift, Meld, Wavetable) | — | Yes |
254
+ | Max for Live devices | — | Yes |
255
+ | Third-party VST/AU plugins | Yes | — |
256
+
257
+ **Requirements:** Ableton Live 12 · Python 3.10+ · Node.js 18+
258
+
259
+ ---
260
+
261
+ ## CLI
262
+
263
+ ```bash
264
+ npx livepilot # Start MCP server (stdio)
265
+ npx livepilot --install # Install Remote Script
266
+ npx livepilot --uninstall # Remove Remote Script
267
+ npx livepilot --status # Check Ableton connection
268
+ npx livepilot --doctor # Full diagnostic check
269
+ npx livepilot --version # Show version
270
+ ```
271
+
272
+ ---
273
+
274
+ ## Documentation
275
+
276
+ **[Read the full manual](docs/manual/index.md)** — Getting started, tool reference, production workflows, MIDI programming, sound design, mixing, and troubleshooting.
277
+
278
+ ---
279
+
280
+ ## Development
281
+
282
+ ```bash
283
+ git clone https://github.com/dreamrec/LivePilot.git
284
+ cd LivePilot
285
+ python3 -m venv .venv
286
+ .venv/bin/pip install -r requirements.txt
287
+ .venv/bin/pytest tests/ -v
288
+ ```
289
+
290
+ ## Contributing
291
+
292
+ Contributions welcome. Please [open an issue](https://github.com/dreamrec/LivePilot/issues) first to discuss what you'd like to change.
293
+
294
+ ## License
295
+
296
+ [MIT](LICENSE) — Pilot Studio