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
CLI

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.
All reasons and checks

hybroai/a2a-adapter

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add cli/a2a-adapter

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Broad 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.

CLI tools

Command-line client for the A2A protocol: reads remote agent cards, sends messages and follows tasks from the terminal.

CLIExtended access184Repository stars

An MCP gateway imports servers and skills once and gives Claude Code, Codex and OpenCode short summaries instead of full schemas.

MCP serverBroad access91Repository stars
Needs a VPN

An Agent Client Protocol adapter that runs a Claude Agent SDK agent inside Zed and other ACP-compatible editors

CLIBroad access2.8KRepository stars

A local dashboard for running many agents across machines: memory, code graph and agent-to-agent messaging

CLIBroad access852Repository stars

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

CLIBroad access1.5KRepository stars

An open coding agent for the terminal, browser and desktop that works with models from OpenAI and Claude to Ollama

CLIBroad access364Repository stars

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.

README badge

Report a problem