livepilot 1.9.24 → 1.10.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 (165) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/AGENTS.md +3 -3
  3. package/CHANGELOG.md +73 -0
  4. package/CONTRIBUTING.md +1 -1
  5. package/README.md +56 -19
  6. package/bin/livepilot.js +87 -0
  7. package/installer/codex.js +147 -0
  8. package/livepilot/.Codex-plugin/plugin.json +2 -2
  9. package/livepilot/.claude-plugin/plugin.json +2 -2
  10. package/livepilot/skills/livepilot-core/SKILL.md +21 -4
  11. package/livepilot/skills/livepilot-core/references/device-knowledge/00-index.md +34 -0
  12. package/livepilot/skills/livepilot-core/references/device-knowledge/automation-as-music.md +204 -0
  13. package/livepilot/skills/livepilot-core/references/device-knowledge/chains-genre.md +173 -0
  14. package/livepilot/skills/livepilot-core/references/device-knowledge/creative-thinking.md +211 -0
  15. package/livepilot/skills/livepilot-core/references/device-knowledge/effects-distortion.md +188 -0
  16. package/livepilot/skills/livepilot-core/references/device-knowledge/effects-space.md +162 -0
  17. package/livepilot/skills/livepilot-core/references/device-knowledge/effects-spectral.md +229 -0
  18. package/livepilot/skills/livepilot-core/references/device-knowledge/instruments-synths.md +243 -0
  19. package/livepilot/skills/livepilot-core/references/overview.md +13 -9
  20. package/livepilot/skills/livepilot-core/references/sample-manipulation.md +724 -0
  21. package/livepilot/skills/livepilot-core/references/sound-design-deep.md +140 -0
  22. package/livepilot/skills/livepilot-devices/SKILL.md +16 -2
  23. package/livepilot/skills/livepilot-evaluation/references/capability-modes.md +1 -1
  24. package/livepilot/skills/livepilot-release/SKILL.md +5 -5
  25. package/livepilot/skills/livepilot-sample-engine/SKILL.md +104 -0
  26. package/livepilot/skills/livepilot-sample-engine/references/sample-critics.md +87 -0
  27. package/livepilot/skills/livepilot-sample-engine/references/sample-philosophy.md +51 -0
  28. package/livepilot/skills/livepilot-sample-engine/references/sample-techniques.md +131 -0
  29. package/livepilot/skills/livepilot-sound-design-engine/SKILL.md +45 -0
  30. package/livepilot/skills/livepilot-wonder/SKILL.md +15 -0
  31. package/livepilot.mcpb +0 -0
  32. package/m4l_device/livepilot_bridge.js +1 -1
  33. package/manifest.json +2 -2
  34. package/mcp_server/__init__.py +1 -1
  35. package/mcp_server/atlas/__init__.py +357 -0
  36. package/mcp_server/atlas/device_atlas.json +44067 -0
  37. package/mcp_server/atlas/enrichments/__init__.py +111 -0
  38. package/mcp_server/atlas/enrichments/audio_effects/auto_filter.yaml +162 -0
  39. package/mcp_server/atlas/enrichments/audio_effects/beat_repeat.yaml +183 -0
  40. package/mcp_server/atlas/enrichments/audio_effects/channel_eq.yaml +126 -0
  41. package/mcp_server/atlas/enrichments/audio_effects/chorus_ensemble.yaml +149 -0
  42. package/mcp_server/atlas/enrichments/audio_effects/color_limiter.yaml +109 -0
  43. package/mcp_server/atlas/enrichments/audio_effects/compressor.yaml +159 -0
  44. package/mcp_server/atlas/enrichments/audio_effects/convolution_reverb.yaml +143 -0
  45. package/mcp_server/atlas/enrichments/audio_effects/convolution_reverb_pro.yaml +178 -0
  46. package/mcp_server/atlas/enrichments/audio_effects/delay.yaml +151 -0
  47. package/mcp_server/atlas/enrichments/audio_effects/drum_buss.yaml +142 -0
  48. package/mcp_server/atlas/enrichments/audio_effects/dynamic_tube.yaml +147 -0
  49. package/mcp_server/atlas/enrichments/audio_effects/echo.yaml +167 -0
  50. package/mcp_server/atlas/enrichments/audio_effects/eq_eight.yaml +148 -0
  51. package/mcp_server/atlas/enrichments/audio_effects/eq_three.yaml +121 -0
  52. package/mcp_server/atlas/enrichments/audio_effects/erosion.yaml +103 -0
  53. package/mcp_server/atlas/enrichments/audio_effects/filter_delay.yaml +173 -0
  54. package/mcp_server/atlas/enrichments/audio_effects/gate.yaml +130 -0
  55. package/mcp_server/atlas/enrichments/audio_effects/gated_delay.yaml +133 -0
  56. package/mcp_server/atlas/enrichments/audio_effects/glue_compressor.yaml +142 -0
  57. package/mcp_server/atlas/enrichments/audio_effects/grain_delay.yaml +141 -0
  58. package/mcp_server/atlas/enrichments/audio_effects/hybrid_reverb.yaml +160 -0
  59. package/mcp_server/atlas/enrichments/audio_effects/limiter.yaml +97 -0
  60. package/mcp_server/atlas/enrichments/audio_effects/multiband_dynamics.yaml +174 -0
  61. package/mcp_server/atlas/enrichments/audio_effects/overdrive.yaml +119 -0
  62. package/mcp_server/atlas/enrichments/audio_effects/pedal.yaml +145 -0
  63. package/mcp_server/atlas/enrichments/audio_effects/phaser_flanger.yaml +161 -0
  64. package/mcp_server/atlas/enrichments/audio_effects/redux.yaml +114 -0
  65. package/mcp_server/atlas/enrichments/audio_effects/reverb.yaml +190 -0
  66. package/mcp_server/atlas/enrichments/audio_effects/roar.yaml +159 -0
  67. package/mcp_server/atlas/enrichments/audio_effects/saturator.yaml +146 -0
  68. package/mcp_server/atlas/enrichments/audio_effects/shifter.yaml +154 -0
  69. package/mcp_server/atlas/enrichments/audio_effects/spectral_resonator.yaml +141 -0
  70. package/mcp_server/atlas/enrichments/audio_effects/spectral_time.yaml +164 -0
  71. package/mcp_server/atlas/enrichments/audio_effects/vector_delay.yaml +140 -0
  72. package/mcp_server/atlas/enrichments/audio_effects/vinyl_distortion.yaml +141 -0
  73. package/mcp_server/atlas/enrichments/instruments/analog.yaml +222 -0
  74. package/mcp_server/atlas/enrichments/instruments/bass.yaml +202 -0
  75. package/mcp_server/atlas/enrichments/instruments/collision.yaml +150 -0
  76. package/mcp_server/atlas/enrichments/instruments/drift.yaml +167 -0
  77. package/mcp_server/atlas/enrichments/instruments/electric.yaml +137 -0
  78. package/mcp_server/atlas/enrichments/instruments/emit.yaml +163 -0
  79. package/mcp_server/atlas/enrichments/instruments/meld.yaml +164 -0
  80. package/mcp_server/atlas/enrichments/instruments/operator.yaml +197 -0
  81. package/mcp_server/atlas/enrichments/instruments/poli.yaml +192 -0
  82. package/mcp_server/atlas/enrichments/instruments/sampler.yaml +218 -0
  83. package/mcp_server/atlas/enrichments/instruments/simpler.yaml +217 -0
  84. package/mcp_server/atlas/enrichments/instruments/tension.yaml +156 -0
  85. package/mcp_server/atlas/enrichments/instruments/tree_tone.yaml +162 -0
  86. package/mcp_server/atlas/enrichments/instruments/vector_fm.yaml +165 -0
  87. package/mcp_server/atlas/enrichments/instruments/vector_grain.yaml +166 -0
  88. package/mcp_server/atlas/enrichments/instruments/wavetable.yaml +162 -0
  89. package/mcp_server/atlas/enrichments/midi_effects/arpeggiator.yaml +156 -0
  90. package/mcp_server/atlas/enrichments/midi_effects/bouncy_notes.yaml +93 -0
  91. package/mcp_server/atlas/enrichments/midi_effects/chord.yaml +147 -0
  92. package/mcp_server/atlas/enrichments/midi_effects/melodic_steps.yaml +97 -0
  93. package/mcp_server/atlas/enrichments/midi_effects/note_echo.yaml +108 -0
  94. package/mcp_server/atlas/enrichments/midi_effects/note_length.yaml +97 -0
  95. package/mcp_server/atlas/enrichments/midi_effects/pitch.yaml +76 -0
  96. package/mcp_server/atlas/enrichments/midi_effects/random.yaml +117 -0
  97. package/mcp_server/atlas/enrichments/midi_effects/rhythmic_steps.yaml +103 -0
  98. package/mcp_server/atlas/enrichments/midi_effects/scale.yaml +83 -0
  99. package/mcp_server/atlas/enrichments/midi_effects/step_arp.yaml +112 -0
  100. package/mcp_server/atlas/enrichments/midi_effects/velocity.yaml +119 -0
  101. package/mcp_server/atlas/enrichments/utility/amp.yaml +159 -0
  102. package/mcp_server/atlas/enrichments/utility/cabinet.yaml +109 -0
  103. package/mcp_server/atlas/enrichments/utility/corpus.yaml +150 -0
  104. package/mcp_server/atlas/enrichments/utility/resonators.yaml +131 -0
  105. package/mcp_server/atlas/enrichments/utility/spectrum.yaml +63 -0
  106. package/mcp_server/atlas/enrichments/utility/tuner.yaml +51 -0
  107. package/mcp_server/atlas/enrichments/utility/utility.yaml +136 -0
  108. package/mcp_server/atlas/enrichments/utility/vocoder.yaml +160 -0
  109. package/mcp_server/atlas/scanner.py +236 -0
  110. package/mcp_server/atlas/tools.py +224 -0
  111. package/mcp_server/composer/__init__.py +1 -0
  112. package/mcp_server/composer/engine.py +452 -0
  113. package/mcp_server/composer/layer_planner.py +427 -0
  114. package/mcp_server/composer/prompt_parser.py +329 -0
  115. package/mcp_server/composer/tools.py +201 -0
  116. package/mcp_server/connection.py +53 -8
  117. package/mcp_server/corpus/__init__.py +377 -0
  118. package/mcp_server/device_forge/__init__.py +1 -0
  119. package/mcp_server/device_forge/builder.py +377 -0
  120. package/mcp_server/device_forge/models.py +142 -0
  121. package/mcp_server/device_forge/templates.py +483 -0
  122. package/mcp_server/device_forge/tools.py +162 -0
  123. package/mcp_server/m4l_bridge.py +1 -0
  124. package/mcp_server/preview_studio/tools.py +4 -4
  125. package/mcp_server/runtime/capability_probe.py +21 -2
  126. package/mcp_server/runtime/execution_router.py +4 -0
  127. package/mcp_server/runtime/live_version.py +102 -0
  128. package/mcp_server/runtime/remote_commands.py +9 -4
  129. package/mcp_server/runtime/tools.py +18 -4
  130. package/mcp_server/sample_engine/__init__.py +1 -0
  131. package/mcp_server/sample_engine/analyzer.py +216 -0
  132. package/mcp_server/sample_engine/critics.py +390 -0
  133. package/mcp_server/sample_engine/models.py +193 -0
  134. package/mcp_server/sample_engine/moves.py +127 -0
  135. package/mcp_server/sample_engine/planner.py +186 -0
  136. package/mcp_server/sample_engine/sources.py +540 -0
  137. package/mcp_server/sample_engine/techniques.py +908 -0
  138. package/mcp_server/sample_engine/tools.py +442 -0
  139. package/mcp_server/semantic_moves/__init__.py +3 -0
  140. package/mcp_server/semantic_moves/device_creation_moves.py +237 -0
  141. package/mcp_server/semantic_moves/sample_compilers.py +372 -0
  142. package/mcp_server/server.py +51 -0
  143. package/mcp_server/sound_design/critics.py +89 -1
  144. package/mcp_server/splice_client/__init__.py +1 -0
  145. package/mcp_server/splice_client/client.py +347 -0
  146. package/mcp_server/splice_client/models.py +96 -0
  147. package/mcp_server/splice_client/protos/__init__.py +1 -0
  148. package/mcp_server/splice_client/protos/app_pb2.py +319 -0
  149. package/mcp_server/splice_client/protos/app_pb2.pyi +1153 -0
  150. package/mcp_server/splice_client/protos/app_pb2_grpc.py +1946 -0
  151. package/mcp_server/tools/arrangement.py +69 -0
  152. package/mcp_server/tools/automation.py +15 -2
  153. package/mcp_server/tools/devices.py +117 -6
  154. package/mcp_server/tools/notes.py +37 -4
  155. package/mcp_server/wonder_mode/diagnosis.py +5 -0
  156. package/mcp_server/wonder_mode/engine.py +85 -1
  157. package/package.json +12 -2
  158. package/remote_script/LivePilot/__init__.py +8 -1
  159. package/remote_script/LivePilot/arrangement.py +114 -0
  160. package/remote_script/LivePilot/browser.py +56 -1
  161. package/remote_script/LivePilot/devices.py +236 -6
  162. package/remote_script/LivePilot/mixing.py +8 -3
  163. package/remote_script/LivePilot/server.py +5 -1
  164. package/remote_script/LivePilot/transport.py +3 -0
  165. package/remote_script/LivePilot/version_detect.py +78 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
3
3
  "name": "dreamrec-LivePilot",
4
- "description": "Agentic MCP production system for Ableton Live 12 — 293 tools, 39 domains",
4
+ "description": "Agentic MCP production system for Ableton Live 12 — 316 tools, 43 domains",
5
5
  "owner": {
6
6
  "name": "dreamrec",
7
7
  "email": "dreamrec@users.noreply.github.com"
@@ -9,8 +9,8 @@
9
9
  "plugins": [
10
10
  {
11
11
  "name": "livepilot",
12
- "description": "Agentic production system for Ableton Live 12 — 293 tools, 39 domains, device atlas, spectral perception, technique memory, neo-Riemannian harmony, Euclidean rhythm, species counterpoint, MIDI I/O",
13
- "version": "1.9.24",
12
+ "description": "Agentic production system for Ableton Live 12 — 316 tools, 43 domains, device atlas, spectral perception, technique memory, sample intelligence, auto-composition, neo-Riemannian harmony, Euclidean rhythm, species counterpoint, MIDI I/O",
13
+ "version": "1.10.0",
14
14
  "author": {
15
15
  "name": "Pilot Studio"
16
16
  },
package/AGENTS.md CHANGED
@@ -1,4 +1,4 @@
1
- # LivePilot v1.9.24 — Ableton Live 12
1
+ # LivePilot v1.10.0 — Ableton Live 12
2
2
 
3
3
  ## Project
4
4
  - **Repo:** This directory (LivePilot)
@@ -22,7 +22,7 @@
22
22
  ## Key Rules
23
23
  - ALL Live Object Model (LOM) calls must execute on Ableton's main thread via schedule_message queue
24
24
  - Live 12 minimum — use modern note API (add_new_notes, get_notes_extended, apply_note_modifications)
25
- - 293 tools across 39 domains: transport, tracks, clips, notes, devices, scenes, mixing, browser, arrangement, memory, analyzer, automation, theory, generative, harmony, midi_io, perception, agent_os, composition, motif, research, planner, project_brain, runtime, evaluation, mix_engine, sound_design, transition_engine, reference_engine, translation_engine, performance_engine
25
+ - 316 tools across 43 domains: transport, tracks, clips, notes, devices, scenes, mixing, browser, arrangement, memory, analyzer, automation, theory, generative, harmony, midi_io, perception, agent_os, composition, motif, research, planner, project_brain, runtime, evaluation, mix_engine, sound_design, transition_engine, reference_engine, translation_engine, performance_engine, song_brain, preview_studio, hook_hunter, stuckness_detector, wonder_mode, session_continuity, creative_constraints, device_forge, sample_engine, atlas, composer
26
26
  - JSON over TCP, newline-delimited, port 9878
27
27
  - Structured errors with codes: INDEX_ERROR, NOT_FOUND, INVALID_PARAM, STATE_ERROR, TIMEOUT, INTERNAL
28
28
 
@@ -43,4 +43,4 @@ When modifying .amxd attributes that Max editor won't persist (e.g., `openinpres
43
43
  4. Structure: 24-byte `ampf` header + `ptch` chunk + `mx@c` header + JSON patcher + frozen deps
44
44
 
45
45
  ## Tool Count
46
- Currently 293 tools. If adding/removing tools, update: README.md, package.json description, livepilot/.Codex-plugin/plugin.json, livepilot/.claude-plugin/plugin.json, server.json, livepilot/skills/livepilot-core/SKILL.md, livepilot/skills/livepilot-core/references/overview.md, AGENTS.md, CLAUDE.md, CHANGELOG.md, tests/test_tools_contract.py, docs/manual/index.md, docs/manual/tool-reference.md
46
+ Currently 316 tools. If adding/removing tools, update: README.md, package.json description, livepilot/.Codex-plugin/plugin.json, livepilot/.claude-plugin/plugin.json, server.json, livepilot/skills/livepilot-core/SKILL.md, livepilot/skills/livepilot-core/references/overview.md, AGENTS.md, CLAUDE.md, CHANGELOG.md, tests/test_tools_contract.py, docs/manual/index.md, docs/manual/tool-reference.md
package/CHANGELOG.md CHANGED
@@ -1,5 +1,78 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.10.0 — The Intelligence Release (April 13 2026)
4
+
5
+ 316 tools across 43 domains. Device Atlas v2, Sample Intelligence, Auto-Composition, Splice Integration, Device Forge, Live 12.3 API, Corpus Intelligence.
6
+
7
+ ### Device Atlas v2 — 1305 Devices, 81 Enriched (+6 tools)
8
+ - **`atlas_search`** — fuzzy search across all devices by name, sonic character, use case, or genre
9
+ - **`atlas_device_info`** — full knowledge entry for any device — parameters, recipes, gotchas
10
+ - **`atlas_suggest`** — intent-driven recommendation: "warm bass for techno" → Drift + recipe
11
+ - **`atlas_chain_suggest`** — full device chain for a track role: instrument + effects with rationale
12
+ - **`atlas_compare`** — side-by-side comparison of two devices for a given role
13
+ - **`scan_full_library`** — deep browser scan to build/refresh the atlas
14
+ - 32 instruments (16 enriched), 70 audio effects (35 enriched), 23 MIDI effects (12 enriched), 497 M4L devices, 683 drum kits
15
+ - 71 YAML enrichment files with parameter guides, recipes, and production knowledge
16
+
17
+ ### Composer Engine — Prompt to Multi-Layer Session (+3 tools)
18
+ - **`compose`** — full multi-layer composition from text prompt ("dark minimal techno 128bpm with industrial textures")
19
+ - **`augment_with_samples`** — add sample-based layers to existing session
20
+ - **`get_composition_plan`** — dry run preview without executing
21
+ - NLP parser extracts genre, mood, tempo, key, energy from free text
22
+ - Layer planner with role templates (drums/bass/lead/pad/texture/vocal)
23
+ - 7 genre defaults: techno, house, hip hop, ambient, drum and bass, trap, lo-fi
24
+ - Credit safety system for Splice integration
25
+
26
+ ### Sample Engine — AI Sample Intelligence (+6 tools)
27
+ - **`analyze_sample`**, **`evaluate_sample_fit`**, **`search_samples`**, **`suggest_sample_technique`**, **`plan_sample_workflow`**, **`get_sample_opportunities`**
28
+ - SpliceSource — reads Splice's local sounds.db (read-only) for key, BPM, genre, tags, pack info, popularity
29
+ - BrowserSource + FilesystemSource — Ableton browser and local directory scanning
30
+ - 6-critic fitness battery: key fit, tempo fit, frequency fit, role fit, vibe fit, intent fit
31
+ - 29-technique library: rhythmic (Dilla, Burial, Premier), textural (Paulstretch, granular), melodic (Bon Iver), resampling (Amon Tobin)
32
+ - Dual philosophy: Surgeon (precision integration) vs Alchemist (creative transformation)
33
+ - 6 sample-domain semantic moves for Wonder Mode: chop_rhythm, texture_layer, vocal_ghost, break_layer, resample_destroy, one_shot_accent
34
+ - Sample-aware stuckness diagnosis: no_organic_texture, stale_drums, vocal_processing_monotony, dense_but_static
35
+
36
+ ### Splice gRPC Client
37
+ - Live connection to Splice desktop API for downloading new samples
38
+ - Port auto-detected from port.conf, TLS with self-signed certs
39
+ - Credit safety floor (never drain below 5 credits)
40
+ - Graceful degradation when Splice is not running
41
+
42
+ ### Device Forge — Programmatic M4L Generation (+3 tools)
43
+ - **`generate_m4l_effect`**, **`list_genexpr_templates`**, **`install_m4l_device`**
44
+ - .amxd binary builder from pure Python (reverse-engineered binary format)
45
+ - gen~ DSP template library: 15 building blocks (Lorenz, Karplus-Strong, wavefolder, FDN reverb, bitcrusher, etc.)
46
+ - 7 device_creation semantic moves for Wonder Mode
47
+ - Safety: auto `clip(out, -1, 1)` on all generated gen~ code
48
+ - Auto-installs to Ableton User Library
49
+
50
+ ### Live 12.3 API Integration (+4 tools)
51
+ - **`create_native_arrangement_clip`** — arrangement clips with automation envelope (12.1.10+)
52
+ - **`insert_device`** — insert native device by name, 10x faster than browser (12.3+)
53
+ - **`insert_rack_chain`** — add chains to Instrument/Audio/Drum Racks (12.3+)
54
+ - **`set_drum_chain_note`** — assign MIDI notes to Drum Rack chains (12.3+)
55
+ - Version detection at startup with feature flags via `get_session_info`
56
+ - Three capability tiers: Core (12.0+), Enhanced Arrangement (12.1.10+), Full Intelligence (12.3+)
57
+ - Display values on device parameters (12.2+) — human-readable like "26.0 Hz"
58
+ - `find_and_load_device` auto-routes to `insert_device` on 12.3+ (10x speedup)
59
+
60
+ ### Corpus Intelligence Layer
61
+ - Parses device-knowledge markdown into queryable Python structures at runtime
62
+ - EmotionalRecipe, GenreChain, PhysicalModelRecipe, AutomationGesture data types
63
+ - Consumed by Wonder Mode, Sound Design critics, and Composer Engine
64
+
65
+ ### Wonder Mode Enhancements
66
+ - Corpus intelligence integration — emotional/genre/material hints in variants
67
+ - Sample-domain diagnosis patterns
68
+ - 13 new semantic moves (6 sample + 7 device creation)
69
+
70
+ ### New Domains
71
+ - **atlas** — device knowledge database (6 tools)
72
+ - **composer** — auto-composition engine (3 tools)
73
+ - **sample_engine** — sample intelligence (6 tools)
74
+ - **device_forge** — M4L device generation (3 tools)
75
+
3
76
  ## 1.9.24 — Stability & Intelligence Upgrade (April 2026)
4
77
 
5
78
  ### Truth and Boundaries (Wave 1)
package/CONTRIBUTING.md CHANGED
@@ -98,7 +98,7 @@ Prefix with `fix:`, `feat:`, `docs:`, `refactor:`, `test:`, or `chore:`.
98
98
 
99
99
  ## Tool Count Discipline
100
100
 
101
- Currently **293 tools**. If you add or remove a `@mcp.tool()` decorator, update all of these files:
101
+ Currently **316 tools**. If you add or remove a `@mcp.tool()` decorator, update all of these files:
102
102
 
103
103
  - `README.md`
104
104
  - `CLAUDE.md`
package/README.md CHANGED
@@ -13,11 +13,12 @@
13
13
  <a href="https://www.npmjs.com/package/livepilot"><img src="https://img.shields.io/npm/dm/livepilot?style=flat-square" alt="npm downloads"></a>
14
14
  <a href="https://github.com/dreamrec/LivePilot/blob/main/LICENSE"><img src="https://img.shields.io/github/license/dreamrec/LivePilot?style=flat-square" alt="License"></a>
15
15
  <a href="https://github.com/dreamrec/LivePilot/releases"><img src="https://img.shields.io/github/v/release/dreamrec/LivePilot?style=flat-square&label=release" alt="Latest Release"></a>
16
+ <a href="https://www.patreon.com/c/dreamrec"><img src="https://img.shields.io/badge/Patreon-Support%20LivePilot-ff424d?style=flat-square&logo=patreon&logoColor=white" alt="Patreon"></a>
16
17
  </p>
17
18
 
18
19
  <p align="center">
19
20
  An agentic production system for Ableton Live 12.<br>
20
- 293 tools. Device atlas. Spectral perception. Technique memory.
21
+ 316 tools. Device atlas. Spectral perception. Technique memory.
21
22
  </p>
22
23
 
23
24
  <br>
@@ -37,10 +38,10 @@
37
38
  │ KNOWLEDGE PERCEPTION MEMORY │
38
39
  │ ─────────── ────────── ────── │
39
40
  │ │
40
- 280+ devices 8-band FFT recall by │
41
- 139 drum kits RMS / peak mood, genre, │
42
- 350+ impulse pitch tracking texture │
43
- responses key detection │
41
+ 1305 devices 8-band FFT recall by │
42
+ 81 enriched RMS / peak mood, genre, │
43
+ 683 drum kits pitch tracking texture │
44
+ Splice catalog key detection │
44
45
  │ │
45
46
  │ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
46
47
  │ │ Device │─────▶│ M4L │─────▶│ Technique │ │
@@ -49,8 +50,8 @@
49
50
  │ └───────────────────┼───────────────────┘ │
50
51
  │ ▼ │
51
52
  │ ┌─────────────────┐ │
52
- │ │ 293 MCP Tools │ │
53
- │ │ 39 domains │ │
53
+ │ │ 316 MCP Tools │ │
54
+ │ │ 43 domains │ │
54
55
  │ └────────┬────────┘ │
55
56
  │ │ │
56
57
  │ Remote Script ──┤── TCP 9878 │
@@ -71,7 +72,7 @@ via a Max for Live device.
71
72
  The **memory** gives it history — a searchable library of production decisions
72
73
  that persists across sessions.
73
74
 
74
- All three feed into 293 deterministic tools that execute on Ableton's main thread.
75
+ All three feed into 316 deterministic tools that execute on Ableton's main thread.
75
76
 
76
77
  <br>
77
78
 
@@ -81,7 +82,7 @@ All three feed into 293 deterministic tools that execute on Ableton's main threa
81
82
 
82
83
  Most MCP servers are tool collections — they execute commands. LivePilot is an **agentic production system** — it understands what a song is becoming, diagnoses when a session is stuck, generates real creative options, learns from your decisions, and tracks its own impact.
83
84
 
84
- This is the V2 intelligence layer: 12 engines that sit on top of the 293 tools and give the AI musical judgment, not just musical execution.
85
+ This is the V2 intelligence layer: 12 engines that sit on top of the 316 tools and give the AI musical judgment, not just musical execution.
85
86
 
86
87
  ### SongBrain — What the Song Is
87
88
 
@@ -97,7 +98,7 @@ Every time you accept or reject a suggestion, the graph updates. Over time, it p
97
98
 
98
99
  ### Semantic Moves — Musical Actions, Not Parameters
99
100
 
100
- A semantic move is a high-level musical intent — "add contrast," "tighten the low end," "build tension toward the chorus" — that compiles into a specific sequence of tool calls. The system has 20 moves across 4 families (mix, arrangement, transition, sound design), each with an executable plan.
101
+ A semantic move is a high-level musical intent — "add contrast," "tighten the low end," "build tension toward the chorus" — that compiles into a specific sequence of tool calls. The system has 26+ moves across 6 families (mix, arrangement, transition, sound design, sample, device creation), each with an executable plan.
101
102
 
102
103
  Moves carry risk levels, target dimensions, and protection thresholds. "Add a filter sweep build" targets energy and tension while protecting clarity. The AI doesn't just know what to do — it knows what it's risking.
103
104
 
@@ -150,7 +151,7 @@ This closes the gap between "the AI did something" and "the AI did something tha
150
151
 
151
152
  ## Tools
152
153
 
153
- 293 tools across 39 domains. Highlights below — [full catalog here](docs/manual/tool-catalog.md).
154
+ 316 tools across 43 domains. Highlights below — [full catalog here](docs/manual/tool-catalog.md).
154
155
 
155
156
  <br>
156
157
 
@@ -162,11 +163,11 @@ This closes the gap between "the AI did something" and "the AI did something tha
162
163
  | Tracks | 17 | create MIDI/audio/return, delete, duplicate, arm, mute, solo, color, freeze, flatten |
163
164
  | Clips | 11 | create, delete, duplicate, fire, stop, loop, launch mode, warp mode, quantize |
164
165
  | Notes | 8 | add/get/remove/modify MIDI notes, transpose, duplicate, per-note probability |
165
- | Devices | 15 | load by name or URI, get/set parameters, batch edit, racks, chains, presets, plugin deep control |
166
+ | Devices | 19 | load by name or URI, insert native (12.3+), get/set parameters, batch edit, racks, chains, drum chain note assignment, presets, plugin deep control |
166
167
  | Scenes | 12 | create, delete, duplicate, fire, name, color, tempo, scene matrix |
167
168
  | Browser | 4 | search library, browse tree, load items, filter by category |
168
169
  | Mixing | 11 | volume, pan, sends, routing, meters, return tracks, master, full mix snapshot |
169
- | Arrangement | 19 | timeline clips, arrangement notes, arrangement automation, recording, cue points |
170
+ | Arrangement | 21 | timeline clips, native arrangement clips (12.1.10+), arrangement notes, arrangement automation, recording, cue points |
170
171
 
171
172
  <br>
172
173
 
@@ -176,7 +177,7 @@ The M4L Analyzer sits on the master track. UDP 9880 carries spectral data
176
177
  from Max to the server. OSC 9881 sends commands back.
177
178
 
178
179
  > [!TIP]
179
- > All 207 core tools work without the analyzer — it adds 30 more and closes the feedback loop.
180
+ > All 289 core tools work without the analyzer — it adds 27 bridge tools and closes the feedback loop.
180
181
 
181
182
  ```
182
183
  SPECTRAL ─────── 8-band frequency decomposition (sub → air)
@@ -393,7 +394,7 @@ read_audio_metadata Format, duration, sample rate, tags
393
394
 
394
395
  <br>
395
396
 
396
- ### Agentic Intelligence — 83 tools
397
+ ### Agentic Intelligence — 106 tools
397
398
 
398
399
  The V2 intelligence layer. These tools don't just execute commands — they analyze, diagnose, plan, evaluate, and learn.
399
400
 
@@ -403,20 +404,24 @@ The V2 intelligence layer. These tools don't just execute commands — they anal
403
404
  | Composition | 9 | section analysis, motif detection, emotional arc, form planning, section transforms |
404
405
  | Evaluation | 1 | before/after evaluation with structured scoring |
405
406
  | Mix Engine | 6 | critic-driven mix analysis, issue detection, move planning, masking reports |
406
- | Sound Design | 5 | patch analysis, modulation planning, timbre scoring |
407
+ | Sound Design | 4 | patch analysis, modulation planning, timbre scoring |
407
408
  | Transition Engine | 5 | transition classification, scoring, archetype-based planning |
408
409
  | Reference Engine | 5 | reference profiling, principle distillation, gap analysis, move mapping |
409
410
  | Translation Engine | 3 | cross-domain translation, issue detection |
410
- | Performance Engine | 5 | safety-constrained suggestions, safe move lists, scene handoff planning |
411
- | Song Brain | 4 | identity inference, sacred element detection, drift monitoring, section purposes |
411
+ | Performance Engine | 3 | safety-constrained suggestions, safe move lists, scene handoff planning |
412
+ | Song Brain | 3 | identity inference, sacred element detection, drift monitoring |
412
413
  | Hook Hunter | 9 | hook detection, salience scoring, development strategies, neglect detection, phrase impact |
413
414
  | Stuckness Detector | 3 | momentum analysis, rescue classification, structured rescue workflows |
414
415
  | Wonder Mode | 3 | diagnosis-driven variant generation, taste-aware ranking, session discard |
415
416
  | Session Continuity | 7 | creative threads, turn resolution, taste vs identity ranking, session story |
416
417
  | Creative Constraints | 5 | constraint activation, reference-inspired variants, constrained generation |
417
418
  | Preview Studio | 5 | variant creation, preview rendering, comparison, commit, discard |
419
+ | **Device Atlas** | **6** | **search 1305 devices, suggest by intent, chain building, device comparison, library scan** |
420
+ | **Sample Engine** | **6** | **multi-source sample search (Splice/Browser/filesystem), fitness critics, technique library** |
421
+ | **Device Forge** | **3** | **generate M4L devices from gen~ templates, install to browser** |
422
+ | **Composer** | **3** | **prompt → multi-layer composition, sample augmentation, plan preview** |
418
423
 
419
- > **[View all 293 tools →](docs/manual/tool-catalog.md)**
424
+ > **[View all 316 tools →](docs/manual/tool-catalog.md)**
420
425
 
421
426
  <br>
422
427
 
@@ -466,6 +471,11 @@ claude mcp add LivePilot -- npx livepilot
466
471
  claude plugin add github:dreamrec/LivePilot/plugin
467
472
  ```
468
473
 
474
+ **Codex App:**
475
+ ```bash
476
+ npx livepilot --install-codex-plugin
477
+ ```
478
+
469
479
  **Claude Desktop (macOS)** — `~/Library/Application Support/Claude/claude_desktop_config.json`:
470
480
  ```json
471
481
  {
@@ -535,6 +545,17 @@ npx livepilot --status
535
545
 
536
546
  ## Plugin
537
547
 
548
+ **Codex App**
549
+
550
+ ```bash
551
+ npx livepilot --install-codex-plugin
552
+ ```
553
+
554
+ Installs the bundled plugin into `~/plugins/livepilot` and registers it in
555
+ `~/.agents/plugins/marketplace.json`.
556
+
557
+ **Claude Code**
558
+
538
559
  ```bash
539
560
  claude plugin add github:dreamrec/LivePilot/plugin
540
561
  ```
@@ -565,6 +586,8 @@ Check memory before creative decisions. Verify every mutation.
565
586
  npx livepilot # Start MCP server (stdio)
566
587
  npx livepilot --install # Install Remote Script
567
588
  npx livepilot --uninstall # Remove Remote Script
589
+ npx livepilot --install-codex-plugin # Install bundled Codex plugin
590
+ npx livepilot --uninstall-codex-plugin # Remove bundled Codex plugin
568
591
  npx livepilot --status # Check Ableton connection
569
592
  npx livepilot --doctor # Full diagnostic check
570
593
  npx livepilot --version # Show version
@@ -612,6 +635,20 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for architecture details, code guidelines
612
635
 
613
636
  ---
614
637
 
638
+ ## Support
639
+
640
+ LivePilot is free and open source. Building it takes hundreds of hours, an Ableton Suite license, and a Claude subscription. If LivePilot saves you time in your sessions, consider supporting development:
641
+
642
+ <p align="center">
643
+ <a href="https://www.patreon.com/c/dreamrec"><strong>Support on Patreon</strong></a> · <a href="https://github.com/sponsors/dreamrec">GitHub Sponsors</a>
644
+ </p>
645
+
646
+ Supporters get early access to new features, premium skills, curated technique libraries, and direct support.
647
+
648
+ <br>
649
+
650
+ ---
651
+
615
652
  <p align="center">
616
653
  <a href="LICENSE">MIT</a> — Pilot Studio
617
654
  <br><br>
package/bin/livepilot.js CHANGED
@@ -211,6 +211,45 @@ function checkStatus() {
211
211
  });
212
212
  }
213
213
 
214
+ function probeAnalyzer(venvPy) {
215
+ const probeCode = `
216
+ import asyncio
217
+ import json
218
+ import sys
219
+ from types import SimpleNamespace
220
+
221
+ sys.path.insert(0, ${JSON.stringify(ROOT)})
222
+
223
+ from mcp_server.server import lifespan, _master_has_livepilot_analyzer
224
+ from mcp_server.runtime.capability_probe import probe_capabilities
225
+
226
+ async def main():
227
+ async with lifespan(None) as ctx:
228
+ loaded = _master_has_livepilot_analyzer(ctx["ableton"])
229
+ report = probe_capabilities(
230
+ ableton=ctx["ableton"],
231
+ ctx=SimpleNamespace(lifespan_context=ctx),
232
+ )
233
+ print(json.dumps({
234
+ "loaded_on_master": loaded,
235
+ "m4l_bridge": report["m4l_bridge"],
236
+ "tier": report["tier"]["active"],
237
+ }))
238
+
239
+ asyncio.run(main())
240
+ `;
241
+
242
+ const out = execFileSync(venvPy, ["-c", probeCode], {
243
+ cwd: ROOT,
244
+ encoding: "utf-8",
245
+ timeout: 15000,
246
+ stdio: ["pipe", "pipe", "pipe"],
247
+ }).trim();
248
+
249
+ const lines = out.split(/\r?\n/).filter(Boolean);
250
+ return JSON.parse(lines[lines.length - 1]);
251
+ }
252
+
214
253
  // ---------------------------------------------------------------------------
215
254
  // Doctor — comprehensive diagnostic
216
255
  // ---------------------------------------------------------------------------
@@ -312,6 +351,37 @@ async function doctor() {
312
351
  ok = false;
313
352
  }
314
353
 
354
+ // 9. Analyzer / bridge capability
355
+ if (connected && fs.existsSync(venvPy)) {
356
+ const HOST = process.env.LIVE_MCP_HOST || "127.0.0.1";
357
+ const PORT = parseInt(process.env.LIVE_MCP_PORT || "9878", 10);
358
+ const otherClient = findOtherLiveClient(HOST, PORT);
359
+
360
+ if (otherClient) {
361
+ console.log(" Analyzer: skipped (another LivePilot client is connected: %s)", otherClient);
362
+ } else {
363
+ try {
364
+ const analyzer = probeAnalyzer(venvPy);
365
+ if (analyzer.loaded_on_master) {
366
+ console.log(
367
+ " Analyzer: %s",
368
+ analyzer.m4l_bridge.status === "ok"
369
+ ? "loaded on master and bridge is active"
370
+ : `loaded on master but bridge unavailable (${analyzer.m4l_bridge.detail})`,
371
+ );
372
+ if (analyzer.m4l_bridge.status !== "ok") {
373
+ ok = false;
374
+ }
375
+ } else {
376
+ console.log(" Analyzer: not detected on master track (optional)");
377
+ }
378
+ } catch (err) {
379
+ console.log(" Analyzer: could not probe (%s)", err.message || String(err));
380
+ ok = false;
381
+ }
382
+ }
383
+ }
384
+
315
385
  // Summary
316
386
  console.log("");
317
387
  console.log("─".repeat(50));
@@ -580,6 +650,7 @@ async function setup() {
580
650
  console.log(" 3. Set Control Surface to 'LivePilot'");
581
651
  console.log(" 4. Start making music with AI!");
582
652
  console.log("");
653
+ console.log(" Codex App: npx livepilot --install-codex-plugin");
583
654
  console.log(" Claude Code: claude mcp add LivePilot -- npx livepilot");
584
655
  console.log(" Claude Desktop: Already configured if using Desktop Extension");
585
656
  } else {
@@ -613,6 +684,8 @@ async function main() {
613
684
  console.log(" --setup Full setup wizard (install + configure + test)");
614
685
  console.log(" --install Install Remote Script into Ableton Live");
615
686
  console.log(" --uninstall Remove Remote Script from Ableton Live");
687
+ console.log(" --install-codex-plugin Install the bundled Codex plugin locally");
688
+ console.log(" --uninstall-codex-plugin Remove the locally installed Codex plugin");
616
689
  console.log(" --status Check if Ableton Live is reachable");
617
690
  console.log(" --doctor Run diagnostics (Python, deps, connection)");
618
691
  console.log(" --version Show version");
@@ -639,6 +712,20 @@ async function main() {
639
712
  return;
640
713
  }
641
714
 
715
+ // --install-codex-plugin
716
+ if (flag === "--install-codex-plugin") {
717
+ const { installCodexPlugin } = require(path.join(ROOT, "installer", "codex.js"));
718
+ installCodexPlugin();
719
+ return;
720
+ }
721
+
722
+ // --uninstall-codex-plugin
723
+ if (flag === "--uninstall-codex-plugin") {
724
+ const { uninstallCodexPlugin } = require(path.join(ROOT, "installer", "codex.js"));
725
+ uninstallCodexPlugin();
726
+ return;
727
+ }
728
+
642
729
  // --status
643
730
  if (flag === "--status") {
644
731
  const reachable = await checkStatus();
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+
3
+ const fs = require("fs");
4
+ const os = require("os");
5
+ const path = require("path");
6
+
7
+ const ROOT = path.resolve(__dirname, "..");
8
+ const SOURCE_DIR = path.join(ROOT, "livepilot");
9
+ const SOURCE_MANIFEST = path.join(SOURCE_DIR, ".Codex-plugin", "plugin.json");
10
+ const DEFAULT_PLUGIN_DIR = path.join(os.homedir(), "plugins", "livepilot");
11
+ const DEFAULT_MARKETPLACE_PATH = path.join(os.homedir(), ".agents", "plugins", "marketplace.json");
12
+
13
+ const SKIP = new Set(["__pycache__", ".DS_Store"]);
14
+
15
+ function copyDirSync(src, dest) {
16
+ fs.mkdirSync(dest, { recursive: true });
17
+ const entries = fs.readdirSync(src, { withFileTypes: true });
18
+ for (const entry of entries) {
19
+ if (SKIP.has(entry.name)) continue;
20
+ const srcPath = path.join(src, entry.name);
21
+ const destPath = path.join(dest, entry.name);
22
+ if (entry.isDirectory()) {
23
+ copyDirSync(srcPath, destPath);
24
+ } else {
25
+ fs.copyFileSync(srcPath, destPath);
26
+ }
27
+ }
28
+ }
29
+
30
+ function targetPluginDir() {
31
+ return process.env.LIVEPILOT_CODEX_PLUGIN_PATH || DEFAULT_PLUGIN_DIR;
32
+ }
33
+
34
+ function marketplacePath() {
35
+ return process.env.LIVEPILOT_CODEX_MARKETPLACE_PATH || DEFAULT_MARKETPLACE_PATH;
36
+ }
37
+
38
+ function loadManifest() {
39
+ if (!fs.existsSync(SOURCE_MANIFEST)) {
40
+ throw new Error(`Codex plugin manifest not found at ${SOURCE_MANIFEST}`);
41
+ }
42
+ return JSON.parse(fs.readFileSync(SOURCE_MANIFEST, "utf-8"));
43
+ }
44
+
45
+ function ensureMarketplace(pluginName) {
46
+ const file = marketplacePath();
47
+ let marketplace = {
48
+ name: "local-plugins",
49
+ interface: { displayName: "Local Plugins" },
50
+ plugins: [],
51
+ };
52
+
53
+ if (fs.existsSync(file)) {
54
+ const raw = JSON.parse(fs.readFileSync(file, "utf-8"));
55
+ marketplace = {
56
+ name: raw.name || marketplace.name,
57
+ interface: raw.interface || marketplace.interface,
58
+ plugins: Array.isArray(raw.plugins) ? raw.plugins : [],
59
+ };
60
+ }
61
+
62
+ const entry = {
63
+ name: pluginName,
64
+ source: {
65
+ source: "local",
66
+ path: `./plugins/${pluginName}`,
67
+ },
68
+ policy: {
69
+ installation: "AVAILABLE",
70
+ authentication: "ON_INSTALL",
71
+ },
72
+ category: "Integration",
73
+ };
74
+
75
+ const idx = marketplace.plugins.findIndex((plugin) => plugin && plugin.name === pluginName);
76
+ if (idx >= 0) {
77
+ marketplace.plugins[idx] = entry;
78
+ } else {
79
+ marketplace.plugins.push(entry);
80
+ }
81
+
82
+ fs.mkdirSync(path.dirname(file), { recursive: true });
83
+ fs.writeFileSync(file, JSON.stringify(marketplace, null, 2) + "\n");
84
+ return file;
85
+ }
86
+
87
+ function removeMarketplaceEntry(pluginName) {
88
+ const file = marketplacePath();
89
+ if (!fs.existsSync(file)) {
90
+ return null;
91
+ }
92
+
93
+ const raw = JSON.parse(fs.readFileSync(file, "utf-8"));
94
+ const marketplace = {
95
+ name: raw.name || "local-plugins",
96
+ interface: raw.interface || { displayName: "Local Plugins" },
97
+ plugins: Array.isArray(raw.plugins) ? raw.plugins.filter((plugin) => plugin && plugin.name !== pluginName) : [],
98
+ };
99
+ fs.writeFileSync(file, JSON.stringify(marketplace, null, 2) + "\n");
100
+ return file;
101
+ }
102
+
103
+ function installCodexPlugin() {
104
+ const manifest = loadManifest();
105
+ const pluginName = manifest.name || "livepilot";
106
+ const destDir = targetPluginDir();
107
+ const marketFile = ensureMarketplace(pluginName);
108
+
109
+ console.log("Installing LivePilot Codex plugin...");
110
+ console.log(" Source: %s", SOURCE_DIR);
111
+ console.log(" Target: %s", destDir);
112
+ console.log(" Marketplace: %s", marketFile);
113
+ console.log("");
114
+
115
+ fs.mkdirSync(path.dirname(destDir), { recursive: true });
116
+ fs.rmSync(destDir, { recursive: true, force: true });
117
+ copyDirSync(SOURCE_DIR, destDir);
118
+
119
+ console.log("Done! Next steps:");
120
+ console.log(" 1. Open or refresh Codex");
121
+ console.log(" 2. Check that LivePilot appears in Local Plugins");
122
+ console.log(" 3. Start a new thread or reload tools if Codex was already open");
123
+ }
124
+
125
+ function uninstallCodexPlugin() {
126
+ const manifest = loadManifest();
127
+ const pluginName = manifest.name || "livepilot";
128
+ const destDir = targetPluginDir();
129
+ const marketFile = removeMarketplaceEntry(pluginName);
130
+
131
+ if (fs.existsSync(destDir)) {
132
+ console.log("Removing Codex plugin: %s", destDir);
133
+ fs.rmSync(destDir, { recursive: true, force: true });
134
+ } else {
135
+ console.log("Codex plugin not found at %s", destDir);
136
+ }
137
+
138
+ if (marketFile) {
139
+ console.log("Updated marketplace: %s", marketFile);
140
+ }
141
+ console.log("Restart or refresh Codex to remove the plugin from the UI.");
142
+ }
143
+
144
+ module.exports = {
145
+ installCodexPlugin,
146
+ uninstallCodexPlugin,
147
+ };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "livepilot",
3
- "version": "1.9.24",
4
- "description": "Agentic production system for Ableton Live 12 — 293 tools, 39 domains, device atlas, spectral perception, technique memory, neo-Riemannian harmony, Euclidean rhythm, species counterpoint, MIDI I/O",
3
+ "version": "1.10.0",
4
+ "description": "Agentic production system for Ableton Live 12 — 316 tools, 43 domains, device atlas, sample intelligence, auto-composition, spectral perception, technique memory, neo-Riemannian harmony, Euclidean rhythm, species counterpoint, MIDI I/O",
5
5
  "author": {
6
6
  "name": "Pilot Studio"
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "livepilot",
3
- "version": "1.9.24",
4
- "description": "Agentic production system for Ableton Live 12 — 293 tools, 39 domains, device atlas, spectral perception, technique memory, neo-Riemannian harmony, Euclidean rhythm, species counterpoint, MIDI I/O",
3
+ "version": "1.10.0",
4
+ "description": "Agentic production system for Ableton Live 12 — 316 tools, 43 domains, device atlas, sample intelligence, auto-composition, spectral perception, technique memory, neo-Riemannian harmony, Euclidean rhythm, species counterpoint, MIDI I/O",
5
5
  "author": {
6
6
  "name": "Pilot Studio"
7
7
  }