Skip to main content

Command-line interface for the Agent-to-Agent (A2A) protocol

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

conductor_a2a_cli-0.1.1.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

conductor_a2a_cli-0.1.1-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file conductor_a2a_cli-0.1.1.tar.gz.

File metadata

  • Download URL: conductor_a2a_cli-0.1.1.tar.gz
  • Upload date:
  • Size: 11.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for conductor_a2a_cli-0.1.1.tar.gz
Algorithm Hash digest
SHA256 90eeb823b51c9d21cb867a86cad23eed531a3e67a8ff28009499781d0dd7c981
MD5 0129fbeba55b4e3cff87a6b256c3da41
BLAKE2b-256 d4d0e3780a1c19548dabc2844c0a8675b4cb9570aa0b85e8b71b3d996c690c0b

See more details on using hashes here.

File details

Details for the file conductor_a2a_cli-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for conductor_a2a_cli-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6e7c0a5e962d278011d73405e4418f60cdda496e064e3e267bd8381d74799dcc
MD5 59de319e2c547ff4390ea8bd2bdfef13
BLAKE2b-256 f57ee96874fe6578ec17b64fb93183f371079ec64474bc05442b6afc46830e2b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page