Chitta Bridge
MCP server for multi-model AI discussions — works with Claude Code and Codex CLI. Connect to any AI backend: cloud agentic CLIs and local GPU models.
Quick Start
uv pip install git+https://github.com/genomewalker/chitta-bridge.git
chitta-bridge-install # both Claude Code + Codex
chitta-bridge-install claude-code # Claude Code only
chitta-bridge-install codex # Codex CLI only
Skills (Codex): /review, /rescue, /room, /soul — plus all mcp__chitta_bridge__* tools.
Features
- Multiple backends: Codex CLI and local GPU models (Ollama/vLLM)
- Continuous sessions: Conversation history persists across messages
- Session warmup: background ping captures session ID — subsequent calls skip cold start
- Agentic execution: Full-auto mode with sandboxed file operations (Codex)
- Variant control: Set reasoning effort (minimal to max)
- File/image attachment: Share code files and images for context
- Discussion rooms: async multi-agent roundtables — any mix of backends respond in parallel, see the full thread, synthesize into one answer
Installation
With uv (recommended)
uv pip install git+https://github.com/genomewalker/chitta-bridge.git
With pip
pip install git+https://github.com/genomewalker/chitta-bridge.git
From source
git clone https://github.com/genomewalker/chitta-bridge.git
cd chitta-bridge
pip install -e .
Register
chitta-bridge-install # install for both Claude Code and Codex
chitta-bridge-install claude-code # Claude Code only (registers MCP server)
chitta-bridge-install codex # Codex CLI only (plugin + skills + MCP)
chitta-bridge-uninstall # uninstall from both
chitta-bridge-uninstall codex # uninstall from Codex only
Verify: claude mcp list (Claude Code) or check ~/.codex/plugins/ (Codex)
Shared With cc-soul
When cc-soul is installed on the same machine, chitta-bridge should be treated as a frontend adapter, not a separate memory stack:
cc-soul owns the shared backend: chittad, chitta, chitta-mcp, and ~/.claude/mind
chitta-bridge adds Codex- and MCP-facing tools on top of that backend
- updating
chitta-bridge changes frontend glue, not the shared daemon or memory store
For a dual-frontend setup, install the shared backend first, then add adapters:
cd cc-soul
./scripts/shared-stack.sh install all
Discussion Rooms
Async multi-agent roundtable with agent souls — participants get persistent identity, memory, tools, and structured challenge rounds.
Basic Room
room_create(
room_id="my-room",
topic="What's the best way to design a cache invalidation strategy?",
participants='[
{"name":"Codex","backend":"codex","session_id":"codex-1"},
{"name":"Llama","backend":"local","model":"qwen2.5:32b","base_url":"http://gpunode:11434/v1"}
]'
)
room_run(room_id="my-room", rounds=2)
room_synthesize(room_id="my-room")
Soul-Powered Room
Each participant can have a soul — a system prompt, memory namespace, tools, challenge bias, and response format:
room_create(
room_id="expert-panel",
topic="How should we authenticate ancient DNA from permafrost?",
participants='[
{"name":"Paleogenomicist","backend":"local","model":"qwen2.5:32b",
"base_url":"http://gpunode:11434/v1",
"soul":{
"system_prompt":"You are a senior paleogenomicist with 15+ years experience...",
"realm":"agent:paleogenomicist",
"tools":["recall","remember","web_search","smart_context"],
"max_tool_turns":2,
"challenge_bias":0.7,
"response_format":"### Key Points\\n### Tools & Thresholds\\n### Caveats"
}},
{"name":"Bioinformatician","backend":"local","model":"phi4:14b",
"base_url":"http://gpunode:11434/v1",
"soul":{
"system_prompt":"You are a computational biologist specializing in pipelines...",
"realm":"agent:bioinformatician",
"tools":["recall","remember","smart_context"],
"challenge_bias":0.4
}}
]'
)
# Challenge mode: between rounds, a moderator extracts claims and
# forces participants to disagree, provide evidence, and refine
room_run(room_id="expert-panel", rounds=2, challenge=true)
room_synthesize(room_id="expert-panel")
Soul Features
| Feature | Description |
|---|
system_prompt | Agent identity, expertise, personality |
realm | Chitta memory namespace — per-agent persistent memory |
tools | Available tools (see Agent Tools below) |
max_tool_turns | Max tool-use iterations per response (default 3) |
max_rounds | Max discussion rounds, 0 = unlimited |
challenge_bias | 0 = agreeable, 1 = devil's advocate |
response_format | Structured output template |