AG-UI is an event-based protocol that lets AI agent backends communicate with user-facing applications. It standardizes agent events and inputs while supporting transports such as server-sent events, WebSockets, and webhooks. The catalogue add-ons help developers build integrations and applications around the protocol.
Borrowing it
Nothing to install: this file belongs to ag-ui-protocol/ag-ui. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/ag-ui-protocol/ag-ui/main/.github/skills/agui-dotnet-cross-language-tests/SKILL.mdgit clone --depth 1 https://github.com/ag-ui-protocol/ag-uiWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/ag-ui-protocol/ag-ui/agui-dotnet-cross-language-tests)<a href="https://agentmods.dev/skills/ag-ui-protocol/ag-ui/agui-dotnet-cross-language-tests"><img src="https://agentmods.dev/badge/skills/ag-ui-protocol/ag-ui/agui-dotnet-cross-language-tests/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/ag-ui-protocol/ag-ui/agui-dotnet-cross-language-tests"><img src="https://agentmods.dev/badge/skills/ag-ui-protocol/ag-ui/agui-dotnet-cross-language-tests.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00146 | $0.02780 |
| Opus 5.5 | $0.00058 | $0.01112 |
| Sonnet 5.5 | $0.00029 | $0.00556 |
| Haiku 4.5 | $0.00015 | $0.00278 |
Grade A, and why
agui-dotnet-cross-language-tests scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 200 lines — stays where its author put it; the contents beside it link to each section on GitHub.
AG-UI .NET Cross-Language Interop Tests
How to add tests proving the .NET AG-UI SDK interoperates with the TypeScript
SDK on the wire. The harness lives under sdks/dotnet/tests/. Read
sdks/dotnet/docs/cross-language-testing.md (design plus the "Harness reference"
section) for full background.
Interop philosophy
- The TypeScript SDK is the reference (oracle). A round-trip through the TS
codec —
proto.decode(proto.encode(event))— is the canonical normalised form both SDKs must agree on. Assert .NET output against that, not against the raw fixture object. - Round-trip semantic equivalence is the real guarantee, in both directions (TS→.NET and .NET→TS). Byte-for-byte parity is a stronger claim asserted only where deterministic.
- Tests exercise our code via project references (
AGUI.Abstractions,AGUI.Server,AGUI.Protobuf), never the published NuGet packages.
Harness architecture
Two directions, two server processes (see the "Harness reference" section of
sdks/dotnet/docs/cross-language-testing.md):
| Direction | Driver | Target server | Runner |
|---|---|---|---|
| TS → .NET (Phase 1) | TS HttpAgent (@ag-ui/client) |
C# CrossLanguage.TestServer on :8091 |
Vitest |
| .NET → TS (Phase 2) | C# AGUIChatClient |
TS fake-agent server (server/main.ts) on :8092 |
xUnit |
Phase 1 mechanism: Vitest globalSetup
(CrossLanguage.Vitest/helpers/global-setup.ts) starts LLMock
(@copilotkit/aimock, deterministic LLM responses), then
helpers/dotnet-server.ts runs dotnet build and spawns the produced
CrossLanguage.TestServer.exe (not dotnet run — single PID for clean Windows
teardown) with OPENAI_BASE_URL pointed at LLMock. It waits for the HTTP
listener, then test files fetch the routes. Both server and LLMock stay alive
across the whole run; vitest.config.ts sets fileParallelism: false so
concurrent SDK builds don't contend for artifact locks.
Phase 2 mechanism: TsServerFixture (IAsyncLifetime, shared via
[Collection(nameof(TsServerCollection))]) shells out pnpm run server
(tsx server/main.ts) which emits canned AG-UI events via @ag-ui/encoder;
AGUIChatClient consumes them.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2mo ago First seen · 200 lines · 146 tokens per session scan A 1ee27c2e726b
agui-dotnet-cross-language-tests is a skill published in the GitHub repository ag-ui-protocol/ag-ui (16,881 stars, last pushed yesterday), licensed MIT. It adds 146 tokens to every session and 2,780 once invoked, about $0.0006 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
agent-production-validator
Agent skill for production-validator - invoke with $agent-production-validator.
agent-tester
Agent skill for tester - invoke with $agent-tester.
nexent-daily-test
A procedure for running Nexent daily, full-layer tests on a self-hosted Ubuntu machine. Nexent is tested across separate layers such as unit, service, AI runtime, and browser journeys, with results and evidence kept locally.
tfp-verification
Generate a deterministic report for disposable executor acceptance tests.
moai-ref-testing-pyramid
Test pyramid strategy, coverage targets, test patterns, and quality metrics reference. Agent-extending skill that amplifies manager-develop test-creation and quality-validation work with production-grade testing patterns. NOT for: production code implementation, architecture design, DevOps, security audits.
moai-e2e
Create and run E2E tests across web, mobile, and desktop with auto-detection and CLI-first toolchains.