[Feat]: feat(transport): add stdio transport to run A2A protocol over process pipes

Open
#526 2 comments 0 reactions 1 assignee View on GitHub

@muscariello is already working on this.

Since Oct 31, 2025.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
python
Domain
backend, cli, tooling

Research direction

Look at the existing transport implementations (likely HTTP, gRPC) in the SDK's transport module. Understand the ClientTransport interface and the A2A protocol's JSON-RPC message format. The work involves creating a new transport class that manages a child process, reads/writes line-delimited JSON over stdin/stdout, and integrates with the existing request/response and event streaming logic. Testing will require spawning an agent process with a --stdio flag.

Written by the indexing model from the issue text.

Description

Is your feature request related to a problem? Please describe.

Support a2a protocol over stdio in the Python SDK.

Describe the solution you'd like

A stdio transport for A2A lets the Python client speak the existing A2A protocol directly over a spawned process’s stdin/stdout instead of HTTP or gRPC, enabling fully local, port‑less, hermetic agent execution. The SDK would launch an agent (or model/runtime) with a --stdio flag, exchange line‑delimited JSON-RPC messages, and multiplex streaming task events through a single reader loop that dispatches responses and updates by request ID. This approach reduces overhead and dependencies (no network stack), improves security by narrowing exposure to a private child process, and unlocks embedding scenarios (CI, plugins, air‑gapped systems) while preserving the current ClientTransport interface, interceptors, telemetry, and error semantics.

Describe alternatives you've considered

No response

Additional context

No response

Code of Conduct
  • I agree to follow this project's Code of Conduct
Dominant language
Python
Stars
2.2k
Forks
496
Avg merge
1d 23h
Merged PRs (30d)
16

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from a2aproject/a2a-python

All issues in a2aproject/a2a-python

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.