a2a-adapter CLI
One command turns a local Claude Code, Codex or Pi agent into an A2A protocol server, and a Python SDK does the same for code.
- 105 ★ on the repository
- Last commit
- Apache-2.0
Broad access
Why this level
- The adapter exposes a local agent with access to project files as a network server, and binding to 0.0.0.0 without a token exposes it to everyone on the network.
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add cli/a2a-adapterDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- The adapter exposes a local agent with access to project files as a network server, and binding to 0.0.0.0 without a token exposes it to everyone on the network.
This is third-party code. Review the repository files before installing.
What it does
a2a-adapter wraps agent CLIs, local agents, workflow engines and Python frameworks behind the A2A (Agent-to-Agent) protocol server. The `/.well-known/agent-card.json` agent card, JSON-RPC, task lifecycle and streaming are handled by the official A2A SDK, so the adapter only needs to invoke the agent. The package has two modes. The CLI starts an installed agent with one command such as `a2a-adapter claude --port 9010`, supporting Claude Code, Codex, Pi, OpenClaw and DeepSeek Harness. The Python SDK takes your function or a framework, including LangChain, LangGraph, CrewAI, n8n and Ollama, and starts a server through `serve_agent(adapter, port=9000)`. By default the server listens on `127.0.0.1`, and remote connections need a token.
Who it is for. Developers of multi-agent systems who connect Claude Code, Codex or their own agents to each other over the A2A protocol.
Good fit when
- A local Claude Code must be exposed to other agents as an A2A server without a line of code.
- A Python function or a LangGraph graph is wrapped into A2A through `CallableAdapter` and `serve_agent`.
- The server must accept external connections, so `--host 0.0.0.0` is set with `--auth-token`.
- The server needs an agent card with a name, description and skills.
Not a fit when
- The agent is needed only inside one session: an A2A server adds needless networking.
- You want to replace the agents themselves: the adapter does not install them, they must work separately.
- Python is older than 3.11: the package requires 3.11 or newer.
Example request
Start Claude Code as an A2A server on port 9010 in this project and show the agent card address.Limitations
Python 3.11 or newer is required. The CLI is installed as an isolated tool with `uv tool install a2a-adapter` or through `pipx`, and system `pip` does not work on macOS and many Linux systems. The adapter does not install agents: Claude Code must be installed and signed in once beforehand. The agent works in the project directory with access to its files, and binding to `0.0.0.0` without `--auth-token` exposes it to everyone on the network. The `--push-notifications` and `--expose-error-details` flags are off by default.
How to disable. Stop the `a2a-adapter` process with Ctrl+C and remove the tool with `uv tool uninstall a2a-adapter` or `pipx uninstall a2a-adapter`.
FAQ
How do I install the CLI?
Run `uv tool install a2a-adapter` or `pipx install a2a-adapter`. Upgrade with `uv tool upgrade a2a-adapter`.
How do I install the SDK?
In the project virtual environment run `pip install a2a-adapter` and add an extra for the framework, for example `pip install "a2a-adapter[langchain]"`.
How do I pass options to the agent itself?
Add `--` and options after it, for example `a2a-adapter claude --port 9010 -- --model <model>`. Options before `--` configure the server.
How do I open the server to remote clients?
Set `--host 0.0.0.0` with `--auth-token` or the `$A2A_AUTH_TOKEN` variable: the token is required on every request except the agent card.
Where is the agent card?
At `/.well-known/agent-card.json` on the server port, generated automatically.
Discussion
No questions or reviews yet.
Related
CLI toolsCommand-line client for the A2A protocol: reads remote agent cards, sends messages and follows tasks from the terminal.
An MCP gateway imports servers and skills once and gives Claude Code, Codex and OpenCode short summaries instead of full schemas.
ACP adapter for Claude Agent SDK
claude-agent-acp
An Agent Client Protocol adapter that runs a Claude Agent SDK agent inside Zed and other ACP-compatible editors
A local dashboard for running many agents across machines: memory, code graph and agent-to-agent messaging
Alook gives local Claude Code, Codex, Cursor and OpenCode agents a handle and an inbox so a team can talk to them in shared rooms like to people
An open coding agent for the terminal, browser and desktop that works with models from OpenAI and Claude to Ollama
README in short
The package holds adapters for agent CLIs, frameworks and arbitrary functions, an A2A client, a task executor and the CLI. A `a2a-adapter` skill for building agents on the SDK sits beside it. Documentation covers architecture, a quickstart and an API reference.