📚 Documentation: list chanx as an AG-UI WebSocket transport
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 76/100
- Issue type
- Documentation
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- fastapi, python
- Domain
- documentation
Research direction
Read docs/integrations.mdx alongside spec/1.0/basic/transports, then compare the existing Infrastructure / Deployment entries with the proposed transport listing. Add chanx with the chanx-kit resource link, placement, framing, input delivery, termination and error signals, and the documented JSON-envelope deviation; done means the integration is accurately represented and its caveat is clear.
Written by the indexing model from the issue text.
Description
What this is
chanx is a typed WebSocket layer for Django Channels and FastAPI/Starlette. Its AG-UI kit serves AG-UI over a WebSocket instead of HTTP+SSE.
It is a transport rather than an agent framework, and provider-agnostic: anything that emits AG-UI events can sit behind it. There is a Pydantic AI adapter, and a runnable demo covering approvals, shared state and several browser tabs streaming one run. I maintain these and would keep the entry current.
To be precise about the two names: chanx is the installable library and the transport, and knows nothing about AG-UI on its own. The AG-UI binding is a chanx-kit kit — a small, self-contained component copied into your project, shadcn-style, rather than a second dependency. A listing would name chanx, with the AG-UI kit as the resource link.
Where I think it belongs
docs/integrations.mdx is organised around who emits AG-UI — Frontend Integrations, Agent Frameworks, Infrastructure / Deployment, and so on. This is the other axis: how the events travel.
The closest existing home is Infrastructure / Deployment, where Amazon Bedrock AgentCore sits (added in #1315), or a new Transports heading if you would rather keep that distinction visible. Happy to follow whichever you prefer.
Documenting the transport, per the custom-transport clause
spec/1.0/basic/transports asks a custom transport to document its framing, its input delivery, and its termination and error signals:
- Framing — each AG-UI event travels in a
payloadfield on a flat envelope that also carriestopicandseq. The event object itself is unmodified, and a client switches onpayload.typeexactly as it already does. - Input delivery —
RunAgentInputarrives as anag_ui_runmessage on the same socket, so input needs no separate endpoint. - Termination and error signals — AG-UI has no cancellation event, and a WebSocket has no equivalent of dropping an HTTP request, so an
ag_ui_cancelmessage stops the run in flight. A cancelled run terminates asRUN_ERROR, as do provider failures.
One deviation I would rather flag than have you find
The same section says a JSON transport SHOULD frame events exactly as the SSE binding does, rather than introduce an envelope. This transport does not, for two concrete reasons:
- One socket carries several conversations concurrently (and non-AG-UI features alongside them), so frames need addressing that SSE gets for free from one request per run.
seqis what lets several browser tabs follow a single run in order, including replaying an in-flight run to a tab that connects mid-stream — something SSE has no need for, since each run is its own request.
The event model, the event patterns and the processing rules are preserved unchanged. If you would rather not list a transport that deviates here, that is a fair answer and I would sooner hear it now than later.
- Dominant language
- TypeScript
- Stars
- 16k
- Forks
- 1.4k
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 143
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ag-ui-protocol/ag-ui
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
ag-ui-protocol/ag-ui#2789 ·
-
documentation
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
ag-ui-protocol/ag-ui#2738 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
ag-ui-protocol/ag-ui#2669 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
ag-ui-protocol/ag-ui#2666 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 85/100
ag-ui-protocol/ag-ui#2653 · 1 comment ·
All issues in ag-ui-protocol/ag-ui
Similar issues
-
calcite-components needs triage refactor
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Esri/calcite-design-system#15203 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 91/100
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficulty 1/5 Under an hour Newbie friendliness 95/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Automattic/studio#4908 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 90/100