╔══════════════════════════════════════════════════════════════╗
║ ║
║ _ ___ ___ ___ _ _ ║
║ /_\ / __| _ \ | _ )_ __(_)__| |__ _ ___ ║
║ / _ \ (__| _/ | _ \ '_|| / _` / _` |/ -_) ║
║ /_/ \_\___|_| |___/|_| |_\__,_\__, \___| ║
║ |___/ ║
║ https://github.com/xiwan/acp-bridge ║
║ ║
╠══════════════════════════════════════════════════════════════╣
║ ║
║ IM Agents 🦞 OpenClaw 🐎 Hermes ║
║ CLI Agents 🤖 Claude Code 🤖 Kiro 🤖 Codex ║
║ 🤖 OpenCode 🤖 Qwen 🤖 Trae ... ║
║ Lite Agents 🏭 Harness Agents ║
║ ║
╚══════════════════════════════════════════════════════════════╝
Multi-Agent Mesh · Connect · Orchestrate · Scale
A multi-agent orchestration platform that exposes local CLI agents (Kiro, Claude Code, Codex, Qwen, OpenCode, Hermes, etc.) as HTTP services via ACP, with pipeline orchestration and IM-driven async workflows.
You have powerful CLI agents on a dev machine. You want the rest of your team — or your bots — to use them too.
| Scenario | How ACP Bridge Helps |
|---|---|
| Team AI gateway | One EC2 runs Kiro + Claude + Codex; everyone calls them via HTTP — no local install needed |
| IM-driven development | Send a Discord/Feishu message → agent executes → result pushed back to chat |
| Async code tasks | Submit a refactor or review job, go grab coffee, get notified when it's done |
| Multi-agent orchestration | Chain agents in sequence, race them in parallel, or let them debate in conversation mode |
| Composable pipelines | Chain conversation → parallel across shared workspace; pause/inject for human-in-the-loop control |
| Prompt-as-a-service | Define reusable prompt templates; non-technical users pick a template and fill in variables |
| Agent marketplace | Same harness-factory binary + different profiles = code reviewer, DevOps helper, translator — all behind one API |
curl -fsSL https://raw.githubusercontent.com/xiwan/acp-bridge/main/install.sh | bashcd acp-bridge
uv sync
uv run main.py
# No config.yaml needed — auto-detects installed agent CLIscurl -s -X POST http://localhost:18010/runs \
-H "Authorization: Bearer $ACP_BRIDGE_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"agent_name": "kiro",
"input": [{"parts": [{"content": "Say hello", "content_type": "text/plain"}]}]
}'📖 Docker, systemd, config file setup → Getting Started
Two control scripts in the project root:
| Script | Scope | Use Case |
|---|---|---|
./bridge-ctl.sh |
acp-bridge (+ optional litellm) | Day-to-day dev: quick restart after code changes |
./stack-ctl.sh |
Full stack: mantle-proxy → litellm → acp-bridge | Ops: ordered start/stop of all services |
# Daily development
./bridge-ctl.sh restart # restart bridge only
./bridge-ctl.sh status # check bridge status
./bridge-ctl.sh orphans # detect manual Bridge processes outside systemd
./bridge-ctl.sh logs 50 # tail bridge logs
# Full stack management (respects dependency order)
./stack-ctl.sh start # start all: mantle-proxy → litellm → acp-bridge
./stack-ctl.sh stop # stop all (reverse order)
./stack-ctl.sh restart # full restart
./stack-ctl.sh status # all services at a glance
./stack-ctl.sh health # check all endpoints| Project | Description |
|---|---|
| mantle-proxy | SigV4 signing proxy for Bedrock Mantle — enables OpenAI/Anthropic SDK access to Mantle models with AWS credential chain auth. Hosts the LiteLLM config and callback used by the full stack. |
| harness-factory | Lightweight Rust/Go ACP agent binary with profile-driven tool activation. Bridge forks it like any other ACP agent. |
Clients → acp-bridge (:18010)
↓ LLM calls
litellm (:4000) ← config & callback in mantle-proxy/
↓
mantle-proxy (:4010) ← SigV4 signs & forwards
↓
bedrock-mantle.{region}.api.aws
├── /openai/v1/responses (GPT-5.5)
├── /openai/v1/chat/completions (Kimi, GLM, Qwen, DeepSeek…)
└── /anthropic/v1/messages (Claude + workspace cost tracking)
| Document | Description |
|---|---|
| Getting Started | Installation, Docker, prerequisites, systemd, Web UI |
| Tutorial | End-to-end: Discord → Agent → Discord in 5 minutes |
| Configuration | config.yaml reference, Codex + LiteLLM proxy setup |
| Agents | Supported agents, compatibility matrix, install commands |
| API Reference | All HTTP endpoints with examples |
| A2A Mesh | Decentralized mesh: discovery (L0) → remote invocation (L1) → routing (L2) → cross-Bridge pipelines (L3) |
| Pipelines | Multi-agent orchestration: sequence, parallel, race, conversation |
| Async Jobs | Background tasks, webhook callback, IM push |
| Webhooks | Webhook formats, auth (token vs HMAC), payload examples |
| Client Usage | acp-client.sh CLI client |
| Tools Proxy | OpenClaw tools integration |
| Security | Auth model, deployment shapes, prompt injection |
| Process Pool | Connection lifecycle, LRU eviction, OOM protection |
| Testing | Agent compliance tests, integration test suite |
| Troubleshooting | Common issues and fixes |
| Agent Spec | ACP JSON-RPC protocol for writing new agents |
| MCP Server | Use Bridge agents from any MCP client (Claude Desktop, Kiro, Cursor) |
| # | Title | Date | Link |
|---|---|---|---|
| 1 | acpbridge:让龙虾和爱马仕沟通 | 2026-04-20 | BV1QsowBAEg3 |
| 2 | 让openclaw指挥多agent干活 | 2026-04-01 | BV1gD9EBzEQQ |
| 3 | openclaw: acp-brige支持容器了 | 2026-03-19 | BV1t8wyztEuM |
| 4 | 实现了openclaw用ACP来调用claude code | 2026-03-09 | BV1kbPDzgE8R |
See CHANGELOG.md for full version history. Current: v0.33.0
See CONTRIBUTING.md for guidelines. Issues and PRs welcome.
Apache License 2.0. See LICENSE.