Skip to content

feat: cli pluggable transport - #24

Merged
yarolegovich merged 8 commits into
mainfrom
yarolegovich/custom-transports
Sep 1, 2026
Merged

feat: cli pluggable transport#24
yarolegovich merged 8 commits into
mainfrom
yarolegovich/custom-transports

Conversation

@yarolegovich

Copy link
Copy Markdown
Member

The CLI speaks JSON-RPC, REST and gRPC out of the box. Additional transport bindings can be added without recompiling by dropping an a2a-transport-<name> binary on your PATH. The CLI launches the plugin as a local proxy that speaks a standard A2A binding and forwards to the custom protocol, so --transport <name> works uniformly for built-ins and plugins:

$ a2a transport list
$ a2a send --transport slimrpc --endpoint slim://agents.example/agent "hello"

Authoring a plugin in Go is a few lines with the devkit/clitransport package — you provide an a2aclient.Transport, it produces a CLI-compatible plugin. See the transport plugin guide and the runnable echo plugin example.

image

re #20

@yarolegovich
yarolegovich requested a review from Tehsmash August 30, 2026 20:46

@msardara msardara left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me ✅

I am unsure about how we should handle the cpb version (protocolVersion in the agent card). We essentially have 2 ways:

  • the plugin is able to handle all versions, so we also need to pass the version as well
  • we can have one plugin per version, so the transport could be --transport echo-v1, --transport echo-v2 etc.

Comment thread internal/transportplugin/launch.go
@yarolegovich
yarolegovich merged commit fc49c26 into main Sep 1, 2026
2 checks passed
@yarolegovich
yarolegovich deleted the yarolegovich/custom-transports branch September 1, 2026 18:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants