Agent skill

A2a CLI

by a2aproject in a2aproject/a2a-cli

Delegate work to A2A (Agent2Agent) agents from the command line with the a2a CLI (github.com/a2aproject/a2a-cli).

Apache-2.0Auto-check: notesBackend & APIs

Install A2a CLI

skills CLI
$ npx skills add a2aproject/a2a-cli --skill a2a-cli -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install a2aproject/a2a-cli a2a-cli --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/a2aproject/a2a-cli.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/a2a-cli .claude/skills/a2a-cli && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
a2a-cli
GitHub stars
152
Token cost
~1.5k tokens
SKILL.md length
612 words
Files
2
Skills in repo
1
Repo updated
First seen
Licence
Apache-2.0

At a glance

Delegate work to A2A (Agent2Agent) agents from the command line with the a2a CLI (github.com/a2aproject/a2a-cli).

  • Works in 7 steps: Inspect the agent — confirm it is… → Send a message. send blocks until the… → Follow a long task live instead of… → …
  • You need to hand a task to a specialized
  • SKILL.md covers Core concepts, Setup, Task lifecycle and Key flags, plus 1 more section
  • Calls brew, go and winget

What it does

A2a CLI is an agent skill from a2aproject/a2a-cli. Delegate work to A2A (Agent2Agent) agents from the command line with the a2a CLI (github.com/a2aproject/a2a-cli). Use when you need to hand a task to a specialized or remote agent, fetch an agent's card, send a message to an agent at a URL, stream or poll a running task, or check, list, resume, or cancel an A2A task. Not for building or serving an A2A agent, or for calling non-A2A HTTP APIs.

Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `README.md`). Compatibility notes: Requires the a2a binary on PATH. Install it with Homebrew or WinGet, from a prebuilt release binary, or from source with a Go toolchain. The skill installs…

It sits in Backend & APIs, covering REST APIs. It works with Agent2Agent Protocol and GitHub. The repository describes itself as: The official command-line interface for interacting with A2A (Agent2Agent) compatible agents. The licence is Apache-2.0.

When your agent uses it

  • You need to hand a task to a specialized
  • Fetch an agents card
  • Send a message to an agent at a URL
  • Poll a running task

Example prompts

  • “/a2a-cli”

Requirements

  • Compatibility (from SKILL.md): Requires the `a2a` binary on PATH. Install it with Homebrew or WinGet, from a prebuilt release binary, or from source with a Go toolchain. The skill installs nothing itself.

Workflow steps

7 steps, taken from the first numbered list in SKILL.md.

  1. Inspect the agent — confirm it is reachable and see what it supports
  2. Send a message. send blocks until the task reaches a terminal or
  3. Follow a long task live instead of blocking, or re-attach to one later
  4. Check status and fetch results at any time
  5. Answer an interrupted task (it reached INPUT_REQUIRED / AUTH_REQUIRED)
  6. Continue the conversation as a new task in the same context
  7. List or cancel tasks

What it can do on your machine

Read from SKILL.md and the folder at commit eaf1678. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • brew
    • go
    • winget

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • a2a-protocol.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Requires the `a2a` binary on PATH. Install it with Homebrew or WinGet, from a prebuilt release binary, or from source with a Go toolchain. The skill installs nothing itself.

    From compatibility in the SKILL.md frontmatter.

Context cost

A2a CLI loads about 1.5k tokens when it runs. Until then it costs about 101 tokens; SKILL.md has 612 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~101
When it runs · the whole SKILL.md, loaded when a task matches
~1.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:142
    `.env` file (a local `.env`, or `~/.config/a2a-cli/.env`), or the persistent
  • NoteMentions a .env fileSKILL.md:144
    ocal file > user `config.yaml` > global `.env`. Inspect the effective values

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from a2aproject/a2a-cli at commit eaf1678, republished under its Apache-2.0 licence (© a2aproject). 612 words, ~1,525 tokens.

Download SKILL.mdSave it as .claude/skills/a2a-cli/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
a2a-cli
description
Delegate work to A2A (Agent2Agent) agents from the command line with the `a2a` CLI (github.com/a2aproject/a2a-cli). Use when you need to hand a task to a specialized or remote agent, fetch an agent's card, send a message to an agent at a URL, stream or poll a running task, or check, list, resume, or cancel an A2A task. Not for building or serving an A2A agent, or for calling non-A2A HTTP APIs.
compatibility
Requires the `a2a` binary on PATH. Install it with Homebrew or WinGet, from a prebuilt release binary, or from source with a Go toolchain. The skill installs nothing itself.
license
Apache-2.0
metadata.source
https://github.com/a2aproject/a2a-cli
metadata.version
2026.09.22

Driving A2A agents with the a2a CLI

a2a is a stateless client for the A2A protocol: give it an agent and a message, it negotiates the transport from the agent's card (JSON-RPC, REST, or gRPC), sends the message, and reports what the agent returned.

Core concepts

  • An interaction starts with a Message you send to an agent.
  • The agent replies with either a Message (a direct answer) or a Task (tracked, potentially long-running work).
  • A Task has a server-assigned taskId and a contextId, and moves through states. It can complete, fail, be cancelled, or become interrupted when it needs your input or authentication to continue.
  • Resume an interrupted task by sending a Message with its --task-id.
  • Group related work with --context-id: a Task created in reply joins that context. Many tasks can share one context, and a --task-id and --context-id passed together must agree.
  • The server keeps tasks (and the messages tied to them); a plain Message not tied to a task is not stored — so you hold the taskId/contextId to return to work later.

Setup

The skill drives the a2a binary and does not install it. Confirm it is on your PATH with a2a version; if that fails, install it by the method that fits your platform:

  • Homebrew (macOS / Linux):

    bash
    brew tap a2aproject/a2a-cli https://github.com/a2aproject/a2a-cli
    brew install a2a
  • WinGet (Windows): winget install a2aproject.a2acli

  • Prebuilt binary: download the archive for your platform from the releases page, extract it, and put the a2a binary on your PATH.

  • From source (Go toolchain; re-run to update):

    bash
    go install github.com/a2aproject/a2a-cli@latest
    # go install names the binary a2a-cli; rename it to a2a to match the docs
    mv "$(command -v a2a-cli)" "$(dirname "$(command -v a2a-cli)")/a2a"

Treat a2a help and a2a <command> --help as the source of truth for the current commands and flags. If a command is rejected as unknown or a flag no longer exists, your SKILL.md copy is likely stale — run a2a skill and update your local SKILL.md from its output.

Task lifecycle

Point at an agent with -a <host|url|path> (resolves its card and picks a transport) or -e <url> --transport <rest|jsonrpc|grpc> (connect directly).

  1. Inspect the agent — confirm it is reachable and see what it supports:

    bash
    a2a card get https://agent.example.com
  2. Send a message. send blocks until the task reaches a terminal or interrupted state. Add -o json for machine-readable output, and note the taskId and contextId in the response — you need them to continue:

    bash
    a2a send -a https://agent.example.com "Summarize this repo"
    a2a send -a https://agent.example.com -o json "Summarize this repo"
  3. Follow a long task live instead of blocking, or re-attach to one later:

    bash
    a2a send -a https://agent.example.com --stream "Run a long analysis"
    a2a task subscribe -a https://agent.example.com <task-id>
  4. Check status and fetch results at any time:

    bash
    a2a task get -a https://agent.example.com <task-id>
  5. Answer an interrupted task (it reached INPUT_REQUIRED / AUTH_REQUIRED) by replying on the same task:

    bash
    a2a send -a https://agent.example.com --task-id <task-id> "Yes, proceed"
  6. Continue the conversation as a new task in the same context:

    bash
    a2a send -a https://agent.example.com --context-id <context-id> "Follow-up question"
  7. List or cancel tasks:

    bash
    a2a task list -a https://agent.example.com
    a2a task cancel -a https://agent.example.com <task-id>
Show full SKILL.md (193 more words)Show less

Key flags

Run a2a <command> --help for the full, current set. The load-bearing ones:

FlagUse
-a, --agent-card <host|url|path>Resolve the agent's card (picks the transport).
-e, --endpoint <url> + --transport <rest|jsonrpc|grpc>Connect to one interface directly, skipping card resolution.
-o, --output jsonMachine-readable output; add --stream for a live event stream.
--asyncReturn immediately with the identifiers instead of blocking; poll later with task get.
--task-id <id> / --context-id <id>Continue a task / group a new task under a context.
--save-fileparts <dir>Save raw file parts from responses (artifacts and messages) as files under <dir>; the output still summarizes them by name/type/size.
--auth "<creds>" / --svc-param <k=v>Attach credentials or transport parameters (or set A2ACLI_* env vars). Never commit a secret.

Configuration

Every setting can come from a flag, an A2ACLI_* environment variable, a .env file (a local .env, or ~/.config/a2a-cli/.env), or the persistent user-level ~/.config/a2a-cli/config.yaml; precedence is flag > env var > local file > user config.yaml > global .env. Inspect the effective values and where each resolved from with a2a config show (secrets redacted).

Command plugins — a2a-<name> binaries on PATH that add top-level commands — are opt-in and disabled by default. Enable discovery with a2a plugin set-enabled true.

© a2aproject, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in skills/a2a-cli of a2aproject/a2a-cli.

  • SKILL.md
  • README.md

Open the folder on GitHubat commit eaf1678

Compare with similar skills

A2a CLI next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

A2a CLI compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
A2a CLI this skilla2aproject/a2a-cli152—~1.5kAutomated safety check: NotesApache-2.0
Kql ValidatorAzure/azqr794—~703Automated safety check: PassMIT
Ship Coolifykovrichard/catalyst470—~1.9kAutomated safety check: NotesNone
Readme Generator Probeizhi23/README-Generator-Pro113—~472Automated safety check: NotesNone
Latchkeyimbue-ai/latchkey130—~1.3kAutomated safety check: PassMIT
B24phpsdk Maintainerbitrix24/b24phpsdk102—~10kAutomated safety check: NotesMIT

Similar skills

  • Kql Validator

    Azure/azqr

    Official

    Validate KQL (Kusto Query Language) files used in Azure Quick Review (azqr) against their recommendation definitions.

    794 GitHub stars~703 tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Ship Coolify

    kovrichard/catalyst

    Verify a Coolify deploy end-to-end after a push — wait for GitHub CI, then the Coolify deployment, confirm the commit is live, and run a visual check.

    470 GitHub stars~1.9k tokensUpdated 7 days ago
    Backend & APIsAuto-check: notes
  • Readme Generator Pro

    beizhi23/README-Generator-Pro

    Generate, modify, and render professional README.md files and project introduction HTML pages using the bundled README Generator Pro FastAPI application.

    113 GitHub stars~472 tokensUpdated 3 mo ago
    Backend & APIsAuto-check: notes
  • Latchkey

    imbue-ai/latchkey

    Interact with third-party or self-hosted services (Slack, Google Workspace, Dropbox, GitHub, Linear, Coolify...) using their HTTP APIs on the user's behalf.

    130 GitHub stars~1.3k tokensUpdated 5 days ago
    Backend & APIsAuto-check passed
  • B24phpsdk Maintainer

    bitrix24/b24phpsdk

    A skill your agent uses whenever working with GitHub issues in the bitrix24/b24phpsdk repository: creating new issues, reading existing ones, planning implementation from an issue, referencing an…

    102 GitHub stars~10k tokensUpdated 7 days ago
    Backend & APIsAuto-check: notes
  • Latchkey

    imbue-ai/latchkey

    Interact with arbitrary third-party or self-hosted services (AWS, Slack, Google Drive, Dropbox, GitHub, GitLab, Linear, Coolify...) using their HTTP APIs.

    130 GitHub stars~1.1k tokensUpdated 5 days ago
    Backend & APIsAuto-check passed

Categories

Questions about A2a CLI

What does A2a CLI do?

Delegate work to A2A (Agent2Agent) agents from the command line with the a2a CLI (github.com/a2aproject/a2a-cli). A2a CLI is an agent skill from a2aproject/a2a-cli.com/a2aproject/a2a-cli).

When should I use A2a CLI?

A2a CLI fits situations like: you need to hand a task to a specialized; fetch an agents card; send a message to an agent at a URL; poll a running task.

How do I install A2a CLI in Claude Code?

Run `npx skills add a2aproject/a2a-cli --skill a2a-cli -a claude-code`. Or copy the skill folder (skills/a2a-cli in a2aproject/a2a-cli) into .claude/skills/a2a-cli in your project. Claude Code loads it when a task matches its description.

How do I install A2a CLI in Codex?

Run `npx skills add a2aproject/a2a-cli --skill a2a-cli -a codex`. Or copy the skill folder (skills/a2a-cli in a2aproject/a2a-cli) into .agents/skills/a2a-cli in your project. Codex loads it when a task matches its description.

Can I use A2a CLI in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add a2aproject/a2a-cli --skill a2a-cli -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/a2a-cli, .gemini/skills/a2a-cli, .github/skills/a2a-cli and .opencode/skills/a2a-cli in your project.

What does A2a CLI need to run?

Going by SKILL.md and its folder, A2a CLI needs the command-line tools its instructions call (brew, go and winget). Compatibility (from SKILL.md): Requires the `a2a` binary on PATH. Install it with Homebrew or WinGet, from a prebuilt release binary, or from source with a Go toolchain. The skill installs nothing itself..

Does A2a CLI access the network?

SKILL.md names 1 domain. As links in the text: a2a-protocol.org. This is read from the text; nothing was executed.

Is A2a CLI safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does A2a CLI use?

A2a CLI is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does A2a CLI use?

About 1.5k tokens (SKILL.md is roughly 6.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to A2a CLI?

Skills that share tags, products or a category with A2a CLI: Kql Validator (Azure/azqr, 794 stars), Ship Coolify (kovrichard/catalyst, 470 stars), Readme Generator Pro (beizhi23/README-Generator-Pro, 113 stars) and Latchkey (imbue-ai/latchkey, 130 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains A2a CLI?

a2aproject (a GitHub organization) maintains it in a2aproject/a2a-cli, which has 152 GitHub stars. The repository was last updated on October 1, 2026.

Source: a2aproject/a2a-cli on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.