Skip to main content

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/response
  • message/stream — streaming via SSE
  • tasks/get — task status and output
  • tasks/cancel — cancel a running task
  • Agent card discovery at /.well-known/agent-card.json

Tested with


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)

Source distribution for conductor-a2a-cli 0.1.1
File Size Uploaded
conductor_a2a_cli-0.1.1.tar.gz 11.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for conductor-a2a-cli 0.1.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page