Turn Claude, Codex & Copilot into A2A agents
Your coding agents are powerful but isolated. Drop in a JSON config, get a spec-compliant A2A server, and let them discover each other, delegate tasks, and collaborate autonomously.
A2A v1.0 native · v0.3 clients backward compatible · Config-driven
npm install -g a2a-claude
export ANTHROPIC_API_KEY=sk-ant-...
a2a-claude --config ./config.json
# Any A2A client can now discover and run it:
curl http://localhost:3000/.well-known/agent-card.jsonFull walkthrough in the quick start guide.
Supported agents
All five share one core runtime and speak native A2A v1.0.
| Agent | Package | Version | Notable Features |
|---|---|---|---|
| a2a-claude | v0.4pre-1.0 | Built on Claude Agent SDK. Permission modes, background tasks, rate-limit handling. | |
| a2a-codex | v1.7 | Repository sandboxing and approval policy. | |
| a2a-copilot | v1.8 | Bring your own model: Ollama, OpenAI, Anthropic, Azure, vLLM. | |
| a2a-opencode | v1.7 | Multi-provider out of the box. | |
| a2a-antigravity | v0.2pre-1.0 | Gemini-backed, through a managed Python bridge. |
Why this exists
Bridging the gap between isolated code assistants and autonomous teamwork.
You cannot cleanly hand a task from one coding agent to another, track long-running multi-turn work, or compose them into a team without building brittle custom glue code for each backend.
It places each agent behind the same open Agent2Agent specification. They publish agent cards, receive tasks, stream real-time progress, and retain session context.
A2A is for agent-to-agent calls; MCP is for agent-to-tool calls. They work together seamlessly. Read how A2A works →
How it works
Three simple steps to connect and run your agents.
- 1
Install the wrapper you need
One lightweight npm package per agent, all built on the same core runtime.
- 2
Write a JSON config
Define name, skills, port, and agent backend options. Sensible defaults handle the rest.
- 3
Call it from any A2A client
Agent cards are discovered, streaming tasks execute, and sessions persist across calls.
Any A2A client
Orchestrator
your planner, LangGraph, a script
a2a-claude
A2A server
Claude
a2a-codex
A2A server
OpenAI Codex
a2a-copilot
A2A server
GitHub Copilot
A software engineering crew
A planner takes a feature request, delegates to Claude to write the implementation, then hands the result to Codex to write tests and fix failures.
crew $ node planner.mjs --mock "Add a slugify(text) helper"
A replay of the real --mock run: stand-in agents, no model calls, no files changed. Clone the repo to run it yourself.
Observable →
Tool calls, reasoning, file changes and usage are emitted as events you can route to A2A artifacts, HTTP or your own telemetry sink.
Secure by default →
These agents can edit files and run commands. Bind, sandbox, and gate them before exposing an external port.
AI-ready docs →
Every documentation page is available as pure Markdown, ships with llms.txt, and connects to an MCP docs server.
FAQ
All FAQs →What is a2a-wrapper?
a2a-wrapper is a set of Node.js packages that expose Claude, OpenAI Codex, GitHub Copilot, OpenCode and Google Antigravity as standalone agents over the open A2A (Agent2Agent) protocol. You write a JSON config file and get a spec-compliant A2A server that any A2A client can discover and call.
How is A2A different from MCP?
MCP standardizes how an AI application connects to external tools, data and workflows. A2A standardizes how independent agents communicate and collaborate as peers. The A2A project describes the two as complementary: MCP gives each agent depth, and A2A gives a system of agents reach.
How do I run Claude, Codex and GitHub Copilot together?
Put each behind an A2A server with its a2a-wrapper package, then have an orchestrator send tasks to them. For example, Claude implements a feature and Codex writes the tests, coordinated by a small planner script. Because they all speak A2A, any A2A-capable orchestrator works, and you can swap agents without changing the orchestration.
How do I install a wrapper?
Install the package globally with npm, for example "npm install -g a2a-copilot", then start it with "a2a-copilot --config ./config.json". You can also run it without installing through npx. The five packages are a2a-copilot, a2a-claude, a2a-codex, a2a-opencode and a2a-antigravity.
Which A2A protocol versions are supported?
A2A v1.0 natively, with backward compatibility for v0.3.x clients. The A2A specification lists 1.0.0 as the latest released version, with 0.3.0 among the earlier ones. The server negotiates per request, so old and new clients both work with no configuration.
Is it safe to expose an agent on a network?
Not by default. The A2A endpoint has no built-in authentication, the default bind address is 0.0.0.0, and the agents can edit files and run commands. The A2A project says a server must authenticate every request and use HTTPS in production, so bind to 127.0.0.1 for local use, run in a container with a scratch workspace, and put an authenticating, TLS-terminating proxy in front of anything shared.
Can agents call each other?
Yes, in two ways. An external orchestrator can call several agents, as the crew example does. Or a wrapper agent can declare sub-agents so its own model calls other A2A agents as tools.
Does it work with LangGraph, Google ADK, CrewAI or Microsoft Agent Framework?
It complements them. Use the framework for orchestration, state and memory, and call the wrappers as A2A execution nodes. Any orchestrator that can make HTTP calls, or that has an A2A client, can drive a wrapper.
Ready to turn your coding agents into A2A agents?
Install a wrapper in seconds, run the quickstart tutorial, and let your agents discover each other.