Handler
Handler is an open-source A2A protocol client for software engineers building, testing, and operating agentic systems. It provides an interactive TUI, a scriptable CLI with structured output, and an MCP server that lets other agents integrate with A2A services directly. Handler also supports global and repo-scoped A2A server configuration with bearer, API key, HTTP Basic, mTLS, OAuth2 client credentials, and OpenID Connect auth.
Features
- Streams replies as they arrive, in the TUI and the CLI, and can stop a running task or answer an agent that pauses for input
- Sends text, files (inline or by URL), and structured data, and shows the file and data parts agents send back
- Lists, inspects, cancels, and resubscribes to tasks, and manages push notification configs with a bundled local webhook receiver
- Speaks JSON-RPC and HTTP+JSON out of the box, gRPC with the
grpcextra, and lets the agent card pick the transport - Requests A2A extensions and fetches the extended card an agent offers to authenticated clients
- Keeps credentials on the origin you configured, never on a host an agent card happens to name
Install
Install Handler from the PyPI package as a uv tool:
uv tool install a2a-handler
Or with pipx:
pipx install a2a-handler
Or with pip:
pip install a2a-handler
Quick Start
Open the interactive terminal UI:
handler tui
Inspect an A2A server's agent card:
handler card get --url http://localhost:8000
Send a message from the CLI:
handler message send --url URL --text "hello"
Stream the reply, with a file attached:
handler message stream --url URL --text "Review this" --file ./report.pdf
List the agent's tasks:
handler task list --url URL
Open the full documentation:
handler docs
Run Without Installing
Run Handler with uvx:
uvx --from a2a-handler handler
Run Handler with pipx:
pipx run a2a-handler
Documentation
Read the documentation at https://handler.alduncanson.com.
For coding agents
The docs ship as an agent skill, regenerated on every deploy. Install it into
Claude Code, Cursor, Windsurf, or any agent that reads the SKILL.md format:
npx skills add https://handler.alduncanson.com
Or fetch it by hand from https://handler.alduncanson.com/skill.md. For live lookups, agents can also use the hosted documentation MCP server at https://handler.alduncanson.com/mcp or the page index at https://handler.alduncanson.com/llms.txt. See the agent skill guide.
Metadata
Release files for a2a-handler 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| a2a_handler-0.3.0.tar.gz | 127.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| a2a_handler-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 272.1 kB
Release files / a2a_handler-0.3.0.tar.gz
| Download URL | a2a_handler-0.3.0.tar.gz |
|---|---|
| Size | 127.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
11dc3ec5b33c442f9e94ea343e4dbdb54470626474ed13701d4e0fbebe5b5044
|
|
BLAKE2b-256 checksum How to use checksums |
b7f5219d372a79cf34e1e5168add0048cfe78827f84086e5b38fa28282a208f1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / a2a_handler-0.3.0-py3-none-any.whl
| Download URL | a2a_handler-0.3.0-py3-none-any.whl |
|---|---|
| Size | 145.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8b2f45368c95dd674cf56d4ee0cc6a785947f7854a29d54eee6d20936a7d0403
|
|
BLAKE2b-256 checksum How to use checksums |
544e155c3c7720bc7598e498d9e81cf596dcaa292866a613ea09c2d9f3081138
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for a2a-handler 0.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.