№ 0507Skill
muse-acp adapter for Zed
ACP adapter that bridges Agent Client Protocol clients such as Zed to Muse Code via the Muse Session Protocol and muse serve.
# muse-acp — ACP Adapter for Muse Code
Bridges [Agent Client Protocol (ACP)](https://agentclientprotocol.com) to [Muse Code](https://github.com/meta-models/muse-code-sdk) via its [Muse Session Protocol (MSP)](https://meta-models.github.io/muse-code-sdk).
Use Muse from any ACP-compatible client (e.g. Zed) without leaving your editor.
```
ACP client (Zed) ──stdio JSON-RPC──▶ muse-acp ──MSP / muse serve──▶ Muse engine
```
## How it works
| ACP (client ↔ adapter) | MSP (adapter ↔ muse) | Owner |
|---|---|---|
| `initialize` | `initialize` handshake + `muse serve` spawn | `msp/manager.ts` |
| `session/new {cwd}` | `session/start {workspaceRoot}` | `msp/manager.ts` |
| `session/prompt {prompt: ContentBlock[]}` | `turn/start {input: [{type:"text"}]}` → `TurnHandle` iterators | `bridge/contentMap.ts` + `msp/manager.ts` |
| `session/update` notifications | `item/delta`, `item/completed`, `turn/completed` | `bridge/streaming.ts` |
| `session/request_permission` | `ApprovalRouter` (`approval/requested` → `approval/decide`) | `msp/manager.ts` |
| `session/cancel` | `TurnHandle` abort | `msp/manager.ts` |
Content blocks (`text`, `image`, `resource`, `resource_link`, `audio`) are mapped in `src/bridge/contentMap.ts`. Streaming deltas and tool calls are fanned out to ACP `session/update` via `src/bridge/streaming.ts`.
## Install
```sh
git clone https://github.com/sanjay3290/muse-acp
cd muse-acp
npm install
npm run build
```
Requires Node 20+ and a `muse` binary on `PATH` (or set `MUSE_BIN`).
The adapter respects `PATH`, including local guard scripts.
```sh
# check
muse serve --help
which muse # e.g. ~/.local/bin/muse
```
## Usage
### As ACP agent (stdio)
Add to your ACP client's agent config (Zed example):
```json
{
"agents": {
"muse": {
"command": "node",
"args": ["/path/to/muse-acp/dist/src/cli.js"],
"env": { "MUSE_BIN": "/path/to/muse" }
}
}
}
```
Or with the installed binary:
```json
{
"agents": {
"muse": {
"command": "muse-acp"
}
}
}
```
CLI options:
```sh
muse-acp --help
muse-acp --muse-bin /custom/path/muse --log-level debug
muse-acp --model muse-spark-1.3
MUSE_BIN=/custom/muse muse-acp
MUSE_MODEL=muse-spark-1.3 muse-acp
MUSE_TURN_IDLE_TIMEOUT_MS=0 muse-acp
MUSE_ACP_LOG_LEVEL=debug muse-acp
```
### Choosing a model
Muse's server default is the `-contributor` row of its newest model (as of
1.0.


ChatForm
Tgmlabs