Skip to main content

Handler

CI A2A Protocol PyPI version PyPI - Status Pepy total downloads GitHub stars

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.

Handler TUI connected to an A2A agent, showing the agent card and a completed assistant response

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 grpc extra, 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)

Source distribution for a2a-handler 0.3.0
File Size Uploaded Provenance
a2a_handler-0.3.0.tar.gz 127.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for a2a-handler 0.3.0
File Interpreter ABI Platform
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.

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