- Protocol
- A2A
- Type
- Tool
- Stars
- 177
- License
- Apache-2.0
- Last push
- Nov 6, 2026
- Source
- Official
About A2A CLI
A2A CLI is an open-source A2A tool by a2aproject, written mainly in Go. Command-line interface for talking to A2A-compatible agents. It has 177 GitHub stars and uses the Apache-2.0 license, and its code was last pushed on Nov 6, 2026.
New to A2A? Our A2A Protocol guide explains how it works and lists other projects built on it.
At a glance
- Protocol
- A2A
- Type
- Tool
- Language
- Go
- License
- Apache-2.0
- GitHub stars
- 177
- Last push
- Nov 6, 2026
Listed from public GitHub data, checked 2026-11-08. Not scanned by AgenticMart.
Questions about A2A CLI
What is A2A CLI?
Command-line interface for talking to A2A-compatible agents It is listed as a A2A tool, maintained in the a2aproject/a2a-cli repository on GitHub.
How do I install A2A CLI?
The project's README gives this command: brew install a2a. Read the README for setup steps and requirements before running it.
Is A2A CLI an official A2A project?
Yes. It is published by the organisation that runs A2A or by its official project.
What license does A2A CLI use?
It is published under the Apache-2.0 license. Check the license file in the repository before using it commercially.
Is A2A CLI still maintained?
Its code was last pushed on Nov 6, 2026, and it had 177 GitHub stars when we checked on 2026-11-08. Look at recent issues and releases in the repository for a fuller picture.
README
A2A CLI
<div align="center" width="800"> <img src="https://raw.githubusercontent.com/a2aproject/A2A/refs/heads/main/docs/assets/a2a_logo/color/SVG/a2a_color.svg" width="600" alt="Agent2Agent Protocol Logo"/> <h3> Discover, message, and manage A2A agents from your terminal. </h3> </div> <p align="center"> <a href="https://github.com/a2aproject/a2a-cli/releases/latest"><img src="https://img.shields.io/github/v/release/a2aproject/a2a-cli?sort=semver" alt="Latest release"></a> <a href="./LICENSE"><img src="https://img.shields.io/github/license/a2aproject/a2a-cli" alt="License: Apache-2.0"></a> </p>The A2A CLI (a2a) is the official command-line client for A2A (Agent2Agent) agents, maintained by the A2A Project Team.
Why the A2A CLI
A2A is a bidirectional protocol: any A2A agent can act as a client to another and hand off a task. But an agent without an A2A layer can't easily send messages or receive updates. The A2A CLI fills that gap.
With it, you — or any model, agent, or coding harness that can call tools — can discover A2A agent's capabilities and send it work.
Three ways to get started:
- Empower AI coding assistants — give your coding agent the
a2atool to offload work to remote A2A agents. - Interact instantly — fetch agent cards, send messages, and stream real-time updates from the terminal.
- Automate workflows — seamlessly integrate A2A agents with non A2A Agents and build pipelines by taking advanteage of cli's protocol-native JSON outputs and predictable exit codes.
Built on A2A Protocol v1.0.
Installation
Homebrew (macOS / Linux)
brew tap a2aproject/a2a-cli https://github.com/a2aproject/a2a-cli
brew install a2a
WinGet (Windows)
winget install a2aproject.a2acli
Install script (macOS / Linux)
curl -fsSL https://raw.githubusercontent.com/a2aproject/a2a-cli/main/install.sh | bash
This installs the latest release into /usr/local/bin. Set A2A_INSTALL_DIR to change the destination, or A2A_VERSION to pin a version:
curl -fsSL https://raw.githubusercontent.com/a2aproject/a2a-cli/main/install.sh | A2A_VERSION=0.3.1 bash
From Source (Linux / Windows / macOS)
go install github.com/a2aproject/a2a-cli@latest
# go install names the binary `a2a-cli`; rename it to `a2a`
mv "$(command -v a2a-cli)" "$(dirname "$(command -v a2a-cli)")/a2a"
Prebuilt binaries
Download an archive from the latest release, extract it, and put the a2a binary on your PATH.
Usage
# Discover an agent's card
a2a card get https://agent.example.com
# Send a message and wait for the result
a2a send -a https://agent.example.com "Hello, what can you do?"
# Stream events as they arrive
a2a send -a https://agent.example.com --stream "Summarize this document"
# Send asynchronously and poll until completion
a2a send -a https://agent.example.com --async "Analyze this dataset"
a2a task get -a https://agent.example.com <task-id> --wait --timeout 60s
# Find agents in an AI Catalog and talk to one by its identifier (experimental)
a2a catalog add corp https://acme.com
a2a catalog search finance
a2a send -a urn:air:acme.com:agent:finance "What were last quarter's expenses?"
See the full command reference for all commands, flags, configuration, and server mode.
Cookbook
Learn the CLI by example. The cookbook is a short, hands-on course — each lesson is a small folder you can run on its own, building from your first A2A server up to streaming, configuration, and the full message and task lifecycle:
- Build a quick A2A server — turn an ordinary script into an A2A server with
--exec, then send it a message. - Discover and talk to an agent — read an agent's card, save it, and send a text message.
- Configure the CLI — flags, environment variables, and
.envfiles, and how to tell which one won. - Messages and tasks — build multi-part messages, stream replies, and follow a task through its lifecycle.
Agent Skill
Give your AI coding agent the ability to drive a2a directly. The a2a-cli Agent Skill teaches harnesses like Claude Code, Cursor, and Codex to delegate work to A2A agents from the command line.
Install it into your agent with skills:
npx skills add https://github.com/a2aproject/a2a-cli --skill a2a-cli
The skill drives the a2a binary, so install the CLI first. The descriptor lives at skills/a2a-cli/SKILL.md.
Agent Plugin
Prefer a plugin-aware client? The same skill ships as an Agent Plugin in the a2aproject/agent-plugins marketplace, published from agent-plugin/ on every release. In Claude Code:
/plugin marketplace add a2aproject/agent-plugins
/plugin install a2a-cli@a2a-plugins
Like the skill, it drives the a2a binary — install the CLI first.
About the Project
Several community and SDK-provided A2A CLIs existed across languages, but they diverged in command names, flags, output shapes, and transport handling. This project reconciles them into one standardized CLI — built for long-term stability and cross-transport consistency. It builds on the CLI from the A2A Go SDK.
The Specification (SPEC.md) captured that reconciliation — command taxonomy, output contracts, polling/streaming rules, and exit codes — and served as the roadmap.
Custom Transport Plugins
The CLI speaks JSON-RPC, REST and gRPC out of the box. Additional transport
bindings can be added without recompiling by dropping an
a2a-transport-<name> binary on your PATH. The CLI launches the plugin as a
local proxy that speaks a standard A2A binding and forwards to the custom
protocol, so --transport <name> works uniformly for built-ins and plugins:
$ a2a transport list
$ a2a send --transport slimrpc --endpoint slim://agents.example/agent "hello"
Authoring a plugin in Go is a few lines with the
devkit/clitransport package — you provide an
a2aclient.Transport, it produces a CLI-compatible plugin. See the
transport plugin guide and the runnable
echo plugin example.
How to Contribute & Provide Feedback
We welcome review and input from engineers and the community:
- Read the Specification (
SPEC.md) for background. - Open an issue or pull request to share suggestions, questions, or edge cases.
You can also help by sharing how you use the tool. See the Contributing guide; conformance details live in the Compliance Checklist (COMPLIANCE.md).
License
The A2A CLI and Specification are open-source and licensed under the Apache License 2.0.
More A2A projects
All 20 →A2A
Specification and documentation for the Agent2Agent protocol
A2A Python SDK
Python SDK for building A2A clients and servers
A2A Samples
Sample agents and code showing the A2A protocol in use