Give your muse.ai personal agent a path to your local coding tools.
Muse Bridge is an independent, open-source Muse CLI for macOS. Read chats, goals and ideas from the terminal, expose read-only MCP tools, or let Muse request a bounded Codex / Claude Code task and get the result back in the same chat.
Quick start · 中文说明 · Task bridge · Validation · Security boundaries · Protocol provenance
macOS / Python 3.11+ / experimental internal API. This connects the muse.ai personal agent. It is not the official Muse Code CLI and is not affiliated with Meta, OpenAI or Anthropic.
| Workflow | Example |
|---|---|
| Read Muse from a terminal | muse-bridge history --limit 5 |
| Query goals, ideas and feed | muse-bridge goals / ideas / feed |
| Send a message deliberately | muse-bridge send "Hello" --allow-write |
| Let an MCP client read Muse | muse-bridge mcp |
| Let Muse ask Codex or Claude to work | muse-bridge bridge start --background |
| Check or stop the relay | muse-bridge bridge status / bridge stop |
The task bridge is bidirectional:
You ask Muse for a local task
↓
Muse emits a structured request in its chat
↓
Your Mac polls that chat → Codex or Claude Code CLI
↓
A bounded final result returns to the same Muse chat
No public inbound port, reverse tunnel or remote shell endpoint is required. The Mac must stay awake, connected and running the relay.
Install uv and Python 3.11 or later. Install and sign in to Codex and/or Claude Code if you want the task bridge. Google Chrome in /Applications is used for a dedicated manual Muse login.
From the GitHub release:
uv tool install https://github.com/buzhidaosm/muse-cli-bridge/releases/download/v0.3.0/muse_bridge_cli-0.3.0-py3-none-any.whl
muse-bridge doctor
muse-bridge login
muse-bridge identityOr install from source:
git clone https://github.com/buzhidaosm/muse-cli-bridge.git
cd muse-cli-bridge
uv tool install .login opens a separate, temporary Chrome window. Complete your login yourself. A validated session is stored in the macOS Keychain; your existing browser profile is not read. Do not paste passwords, cookies or bearer tokens into issues. A manual cookie import fallback is described in authentication.
Authorize one project locally first. Start in read mode:
muse-bridge bridge init --project /absolute/path/to/your/project
muse-bridge bridge start --background
muse-bridge bridge notifynotify sends the protocol instructions to Muse. In that same Muse chat, ask:
Use Codex to review
/absolute/path/to/your/projectthrough Muse Bridge. Don't change files. Wait for the local result before summarizing it.
To allow edits, stop the relay and explicitly opt in:
muse-bridge bridge stop
muse-bridge bridge init --project /absolute/path/to/your/project --allow-write
muse-bridge bridge start --background
muse-bridge bridge notifyRepeat --project to authorize additional projects. --all-projects is a separate, explicit broad-access option. See the task guide before enabling it. Project selection and write permission are checked again immediately before a queued task executes.
muse-bridge status # HTTPS login + VM assignment; not a gateway test
muse-bridge identity # authenticated gateway query
muse-bridge threads
muse-bridge history --limit 10
muse-bridge history --thread SESSION_ID --limit 10
muse-bridge goals
muse-bridge ideas
muse-bridge feed --limit 10
muse-bridge send "Hello" --allow-write --timeout 60
muse-bridge bridge status
muse-bridge bridge job TASK_ID
muse-bridge bridge stop
muse-bridge logout # remove local credentials; does not revoke server sessionNormal CLI commands return one JSON object. Help/version output is plain text. mcp uses stdio JSON-RPC. Sends and local agent tasks are not automatically retried; an ambiguous delivery is reported as unknown instead of claimed as success.
The MCP server exposes seven read-only tools: status, identity, threads, history, goals, ideas and feed. It does not expose sending or local execution.
{
"mcpServers": {
"muse-bridge": {
"command": "/absolute/path/to/muse-bridge",
"args": ["mcp"]
}
}
}command -v muse-bridge gives the executable path. Authenticated responses are external data, not instructions for the calling agent.
Real-account validation confirmed both directions for Codex and Claude Code: Muse produced task requests, the local agents returned the expected result, and the returned result was independently found in Muse history. Both agents also edited separate disposable test projects, and their final file contents were checked. See the dated validation record and sanitized example evidence.
This is a replay of verified test events with paths and identifiers replaced, not an unedited recording or a fabricated conversation.
The OS boundary limits writes, not all reads or network access. Runtime state and temporary directories are additionally writable. This is not a general computer-use sandbox. Do not use tasks for credentials or data you do not want to send to AI services. Read the full boundary.
Current limits:
- macOS only; standard NON_TEE / legacy Noise handshakes only.
- No desktop clicking or injection into an existing Codex/Claude desktop conversation.
- One selected Muse chat, sequential jobs, no automatic login/startup service.
- No claim that a completed agent process proves an arbitrary task was solved.
- Internal Muse endpoints can change; no official OAuth integration or API stability guarantee.
uv sync --no-editable --group dev
uv run --no-editable pytest -q
uv run --no-editable ruff check src tests
uv buildAfter editing source, reinstall the local noneditable package when testing CLI behavior: uv sync --no-editable --reinstall-package muse-bridge-cli. Tests import the current src/ tree directly. Automated tests never require a Muse account; live smoke tests are opt-in.
The code, wire codec, relay, executor adapters and tests were independently written. Research consulted public protocol notes and descriptor fields from another client, with attribution in PROVENANCE.md. This is not claimed to be a clean-room implementation, and it does not depend on or vendor that client's source.
Useful contributions include reproducible compatibility reports, redacted failure cases, tests and onboarding improvements. Start with CONTRIBUTING.md. If this makes your workflow easier, a GitHub star helps other developers discover it. Please don't star-swap or buy engagement.
MIT licensed. Canonical repository: buzhidaosm/muse-cli-bridge.
