a2a-cli
A command-line interface for the Agent-to-Agent (A2A) protocol v0.3.
Send messages, stream responses, inspect agent cards, and manage tasks — from your terminal, against any A2A-compatible server.
Install
pip install a2a-cli
Requirements: Python 3.10+
Quick start
# List all agents on a server
a2a list --agent http://localhost:8080/a2a
# Inspect an agent
a2a card --agent http://localhost:8080/a2a/my-agent
# Send a message
a2a send "What is the capital of France?" --agent http://localhost:8080/a2a/my-agent
# Stream the response live (SSE)
a2a stream "Summarize this for me" --agent http://localhost:8080/a2a/my-agent
# Check a task
a2a get <task-id> --agent http://localhost:8080/a2a/my-agent
# Cancel a running task
a2a cancel <task-id> --agent http://localhost:8080/a2a/my-agent
Set A2A_AGENT so you don't repeat --agent every time:
export A2A_AGENT=http://localhost:8080/a2a/my-agent
a2a send "hello"
a2a card
Commands
a2a list
List all agents exposed by an A2A server.
a2a list --agent http://localhost:8080/a2a
Exposed Agents
┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Name ┃ URL ┃
┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ greeter │ http://localhost:8080/a2a/greeter │
│ support_agent │ http://localhost:8080/a2a/support_agent │
│ weather_reporter │ http://localhost:8080/a2a/weather_reporter│
└─────────────────────┴──────────────────────────────────────────┘
a2a card
Fetch and display the agent card (/.well-known/agent-card.json).
a2a card --agent http://localhost:8080/a2a/greeter
╭──────────────────────── Agent Card ────────────────────────╮
│ greeter │
│ Version: 1 │
│ URL: http://localhost:8080/a2a/greeter │
│ Description: Agent workflow for greeter │
│ │
│ Skills: │
│ • greeter Agent workflow for greeter │
╰─────────────────────────────────────────────────────────────╯
Use --json for the raw agent card JSON:
a2a card --agent http://localhost:8080/a2a/greeter --json
a2a send
Send a message and display the result.
a2a send "hello world" --agent http://localhost:8080/a2a/my-agent
╭──────────────────────── A2A Task ──────────────────────────╮
│ Task ID: dcc14eac-364d-42e3-95f3-69f2c2b0f47c │
│ State: completed │
│ │
│ Output: │
│ Hello! You said: hello world │
╰─────────────────────────────────────────────────────────────╯
Options:
| Flag | Description |
|---|---|
--json |
Print raw JSON response |
--quiet, -q |
Print only the response text (great for scripting) |
--context-id |
Conversation context ID for multi-turn exchanges |
--task-id |
Continue an existing task |
# Scripting — just the output text
a2a send "hello" --agent http://localhost:8080/a2a/my-agent --quiet
a2a stream
Send a message and stream the response live via SSE.
a2a stream "Write a summary" --agent http://localhost:8080/a2a/my-agent
● working
● completed
Here is the summary...
Use --json to print raw SSE events:
a2a stream "hello" --agent http://localhost:8080/a2a/my-agent --json
a2a get
Fetch the current state of a task by ID.
a2a get dcc14eac-364d-42e3-95f3-69f2c2b0f47c --agent http://localhost:8080/a2a/my-agent
╭──────────────────────── A2A Task ──────────────────────────╮
│ Task ID: dcc14eac-364d-42e3-95f3-69f2c2b0f47c │
│ State: completed │
│ │
│ Output: │
│ Hello! You said: hello world │
╰─────────────────────────────────────────────────────────────╯
a2a cancel
Cancel a running task.
a2a cancel dcc14eac-364d-42e3-95f3-69f2c2b0f47c --agent http://localhost:8080/a2a/my-agent
Canceled task dcc14eac-364d-42e3-95f3-69f2c2b0f47c
Global options
| Flag | Description |
|---|---|
--agent, -a |
Agent URL. Falls back to A2A_AGENT env var |
--header, -H |
Extra request header, repeatable: "Authorization: Bearer <token>" |
Protocol
Implements A2A v0.3:
message/send— synchronous request/responsemessage/stream— streaming via SSEtasks/get— task status and outputtasks/cancel— cancel a running task- Agent card discovery at
/.well-known/agent-card.json
Tested with
- Conductor A2A server
License
Apache 2.0 — conductor-oss/a2a-cli
Metadata
Release files for conductor-a2a-cli 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| conductor_a2a_cli-0.1.1.tar.gz | 11.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| conductor_a2a_cli-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.9 kB
Release files / conductor_a2a_cli-0.1.1.tar.gz
| Download URL | conductor_a2a_cli-0.1.1.tar.gz |
|---|---|
| Size | 11.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
90eeb823b51c9d21cb867a86cad23eed531a3e67a8ff28009499781d0dd7c981
|
|
BLAKE2b-256 checksum How to use checksums |
d4d0e3780a1c19548dabc2844c0a8675b4cb9570aa0b85e8b71b3d996c690c0b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / conductor_a2a_cli-0.1.1-py3-none-any.whl
| Download URL | conductor_a2a_cli-0.1.1-py3-none-any.whl |
|---|---|
| Size | 7.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6e7c0a5e962d278011d73405e4418f60cdda496e064e3e267bd8381d74799dcc
|
|
BLAKE2b-256 checksum How to use checksums |
f57ee96874fe6578ec17b64fb93183f371079ec64474bc05442b6afc46830e2b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|