Installation
On this page
For your first connection, follow Quickstart. This page covers installation choices, optional MCP setup, upgrades, and troubleshooting.
Requirements
- Bitwig Studio 6.1.1 for native Grid, note, device and arranger operations
- A local account able to write to the Bitwig Extensions directory
- Python 3.10 or newer for the read-only verification script; it needs no extra packages
uvonly for the optional Python MCP adapter- Java 21 and Maven only when building the extension from source
The runtime bridge binds to loopback only at 127.0.0.1:8765. It claims no MIDI ports and requires no external hardware.
0.2.0 is the extension/Python package version. Its private Grid, device, note and arranger bindings require exactly Bitwig Studio 6.1.1. Controller API 25 is the public minimum and compile-time dependency, not a promise of private compatibility with other Bitwig versions. Unknown private runtimes fail closed. See compatibility boundaries.
Install from a release bundle
For published versions, download the matching
bitwig-grid-bridge-VERSION.zip full bundle from
GitHub Releases.
It includes the extension, verification script and deliberate public fixtures.
If the required version is not available there, build from source.
Full bundle
Extract the ZIP and open a terminal in its top-level folder, alongside
BitwigGridBridge.bwextension and INSTALL.txt. On Linux:
mkdir -p "$HOME/Bitwig Studio/Extensions"
cp BitwigGridBridge.bwextension "$HOME/Bitwig Studio/Extensions/"
On Windows, copy the extension into the Bitwig Studio Extensions folder under the current user's Documents directory instead.
Restart Bitwig, open Settings → Controllers, add Bitwig Grid Bridge,
and enable it. Keep the extracted bundle: its examples/ folder supplies the
verification script and sample projects.
Continue with Verify the extension. You do not need to install Python packages or start MCP for this check.
The bundle also includes the optional adapter, locked environment, Python
distributions under python/, documentation, and source. Those are for later
use; see Install the optional MCP adapter.
Standalone extension
If you only need the extension, download BitwigGridBridge.bwextension from
the same release and copy it into your Extensions directory as above. Restart
Bitwig and enable it in Settings → Controllers.
The standalone asset does not include the verification script. Get the matching full bundle or source checkout before following the command below.
Build from source
You need Git, Java 21, and Maven. Clone the repository and build from its root:
git clone https://github.com/critx-jt/bitwig-grid-bridge.git
cd bitwig-grid-bridge
mvn -f extension/pom.xml package
On Linux, install the built extension:
mkdir -p "$HOME/Bitwig Studio/Extensions"
cp extension/target/BitwigGridBridge.jar \
"$HOME/Bitwig Studio/Extensions/BitwigGridBridge.bwextension"
With make available, the equivalent build-and-install command on Linux is:
make install-extension
Restart Bitwig, add and enable Bitwig Grid Bridge in Settings →
Controllers, then continue below from the checkout root. The checkout already
contains the verification script; uv sync is not required for it.
Verify the extension
Open a project and select a device. From the extracted full bundle folder or source checkout root — not the Extensions directory — run:
python examples/automation/grid_bridge_demo.py inspect
Use python3 if that is your Python 3 command. The script prints capabilities,
selected-device inspection, and exposed controls as three JSON responses. Each
successful response contains "ok": true. Confirm the extension/host/API match
your installation and the inspected device matches the selection in Bitwig.
Reload is asynchronous: copying the extension is not a readiness check. Use this read-only result before any mutation. For help interpreting it, see Quickstart or Troubleshooting.
For a supported selected Grid:
python examples/automation/grid_bridge_demo.py graph
If graph_available: false, the connection can still work for exposed controls,
but graph operations are unavailable for that selection. Select a supported
Grid or stay with exposed-control commands. A successful inspection is a
complete first check; there is no need to change your project.
Install the optional MCP adapter
Add MCP only when you want an agent or client to call the tools. For live work, verify the direct bridge first. Offline composition and artifact export can run without Bitwig.
Install the adapter and extension from the same release. With Python 3.10+ and
uv installed, run from the matching checkout or full bundle:
uv sync --frozen
Start the adapter for either offline composition or live work:
BITWIG_MCP_GRID_BRIDGE_ENABLED=true uv run bitwig-mcp
uv run python -m bitwig_mcp_server remains equivalent. The bitwig-mcp console command is included in built Python distributions.
Example MCP client configuration:
{
"mcpServers": {
"bitwig-grid-bridge": {
"type": "stdio",
"command": "uv",
"args": ["run", "--project", "/absolute/path/to/bitwig-grid-bridge", "bitwig-mcp"],
"cwd": "/absolute/path/to/bitwig-grid-bridge",
"env": {
"BITWIG_MCP_GRID_BRIDGE_ENABLED": "true",
"BITWIG_MCP_LOG_LEVEL": "WARNING"
},
"timeout": 120000
}
}
}
Use an absolute path. The default bridge-only adapter tolerates an unavailable Bitwig connection at startup; it does not fabricate live state or silently fall back to OSC. Device/Grid catalogs served by the extension still need Bitwig. Offline style catalogs and the installed Nitro archive are separate sources.
After this launch check, stop the terminal process with Ctrl+C and let your MCP client launch it using the configuration above. Continue with the Agent integration reference before following MCP tool sequences in producer workflows.
Optional read-only Nitro evidence
Install the pinned extra only when local DSP research is needed:
uv sync --frozen --extra nitro
The extra pins bitwig-nitro-tools
at a34c1d61c7e48b1531fb3fba5e4c06d9e1e0cf16. grid_nitro_status reports
readiness; search_grid_nitro can list the installed ZIP catalog without the
extra or keys. BITWIG_NITRO_IMAGE can select a local nitro-image.
inspect_grid_nitro requires the extra and already obtained, authorized local
keys: BITWIG_NITRO_KEYS points to upstream-format keys.json containing
nitro_image_key, or BITWIG_NITRO_IMAGE_KEY supplies its hex value. Do not put
keys in prompts, tracked files, or logs. This adapter never extracts keys,
installs an extraction controller, executes DSP, or modifies Bitwig. See
Nitro evidence for discovery order and limits.
Upgrade
- Stop the MCP adapter if you use it.
- Replace
BitwigGridBridge.bwextensionwith the new release asset. - Restart Bitwig, then run the read-only
inspectcheck from the matching bundle or checkout. - If you use MCP, update its checkout or bundle to the same release, run
uv sync --frozen, and reconnect the client so its tool catalog and schemas refresh from the new adapter. Version 0.2.0 exposes 90 tools. - Read capabilities again before any live change.
Copying the JAR/.bwextension is not a readiness signal: Java extension reload
is asynchronous. Wait for read-only capabilities from the expected extension,
exact Bitwig 6.1.1 and API 25 before mutation. A successful adapter startup is
not proof that the new native extension is active. Never probe readiness with
a write or retry an ambiguous mutation after timeout.
Do not carry graph revisions, native device/clip IDs, selection/project tokens, snapshot names, shaping/patch sessions, song revisions or import receipt authority across an upgrade. Keep exported files as artifacts, not as permission to replay an earlier import.
Troubleshooting
Extension does not appear
- Confirm the filename ends in
.bwextension. - Confirm it is in the current user's Bitwig Extensions directory.
- Restart Bitwig after copying it.
- Inspect Bitwig's controller-extension log for Java loading errors.
- Confirm the release targets Controller API 25 and the installed Bitwig version supports it.
Bridge unavailable at startup
- Confirm Bitwig is running and Bitwig Grid Bridge is enabled.
- Run the direct
inspectcommand before starting MCP. - Confirm no second Bitwig instance or stale process owns port
8765. - Keep host and port at the defaults unless the extension and adapter are changed together.
MCP client times out
Run the adapter manually from a terminal and inspect stderr. A healthy stdio process stays open, including in offline planning mode; stdout is reserved for MCP messages. A live tool's “bridge unavailable” error is not an MCP initialization failure. Fix the extension or port before live calls rather than repeatedly issuing mutations.
OSC controller is installed but MCP still fails
OSC is not the supported MCP transport. Install and enable Bitwig Grid Bridge for live tools. Legacy OSC compatibility is explicitly opt-in, never an automatic fallback; enabling it changes startup behavior and does not provide the native Grid or song contracts.