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.
- 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 Handler from the PyPI package as a uv tool:
uv tool install a2a-handlerOr with pipx:
pipx install a2a-handlerOr with pip:
pip install a2a-handlerOpen the interactive terminal UI:
handler tuiInspect an A2A server's agent card:
handler card get --url http://localhost:8000Send 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.pdfList the agent's tasks:
handler task list --url URLOpen the full documentation:
handler docsRun Handler with uvx:
uvx --from a2a-handler handlerRun Handler with pipx:
pipx run a2a-handlerRead the documentation at https://handler.alduncanson.com.
