The Agent Host Protocol (AHP) is Microsoft’s MIT-licensed wire protocol for a standalone sessions server that gives any number of clients one synchronized view of AI agent sessions, built on immutable state, pure reducers, and write-ahead reconciliation.
AHP claims the one lane the protocol stack left empty, the session itself: MCP covers agent-to-tool, ACP covers editor-to-agent, A2A covers agent-to-agent, and AHP turns a live agent session into a shared resource any client can attach to, with the reference host shipping inside VS Code.
What it is #
A protocol specification plus client SDKs in six languages: Rust (ahp on crates.io), TypeScript (@microsoft/agent-host-protocol on npm), Kotlin (Maven Central), Go, Swift (SwiftPM), and .NET (NuGet), each released independently on its own SemVer track.
The core abstraction is the channel, a URI-identified subscribable resource (ahp-root://, ahp-session:/<uuid>, ahp-chat:/<uuid>, plus terminal and changeset channels) that holds either an immutable state tree or a stateless pub/sub topic.
Clients apply actions optimistically, then reconcile when the host’s echo returns stamped with a monotonic sequence number; the docs place AHP in the lineage of LSP and DAP.
It is agent-agnostic by design, describing client-facing session state without binding clients to a runtime, and an MCP channel exists with MCP relay and LSP relay planned.
MIT licensed, TypeScript, under the microsoft GitHub org, created 2026-03-12.
Status #
Active and shipping: 400 stars as of 2026-10-13 and 85 open issues and pull requests as of 2026-11-13, with the release train moving for the first time since 1.0: v1.1.0 (dated 2026-11-12, tagged 2026-11-13) shipped the spec plus the Go, Swift, TypeScript, and Rust packages at 1.1.0, carrying the host-path semantics (#476), the account-selection hint (#583), MCP-served skills (SEP-2640), and experimental subscription-negotiated flow control that the November passes had recorded as unreleased, and the default branch already carries PROTOCOL_VERSION 1.2.0 with the docs switcher pairing a 1.2.0 draft against 1.0.0 stable.
Adoption shows in the package counts: the ahp crate records 386,999 lifetime downloads and the npm package 704,999 (2026-10-14 to 2026-11-13), both as of 2026-11-13; the npm trailing-month total has oscillated in a roughly 557k-to-700k band since early October 2026 after its September climb.
A member of the VS Code team stated publicly in June 2026 that the team is rebuilding its agent infrastructure on AHP, and the reference host lives at src/vs/platform/agentHost/node in the microsoft/vscode repository.
1.0 shipped on 2026-10-02: the spec, every client, and the SDK packages tagged v1.0.0 the same day, closing the pre-1.0 caveat this note carried since creation.
Strengths #
- Distribution no rival spec has: the reference host ships inside VS Code, the editor a large fraction of working engineers already run.
- A six-language SDK surface published to six package registries, which is more than most protocol projects ever reach.
- A clean core model (immutable state, pure reducers, one totally ordered envelope stream) that ordinary clients can implement.
- The docs carry a doctrine page on AHP and ACP, so the boundary with the closest neighbor protocol is stated by the project itself rather than left to inference.
Cautions #
- Microsoft-controlled: the spec lives in the
microsoftorg with repo-first governance and no foundation, so neutrality is unproven. - 1.0 landed on 2026-10-02 and 1.1.0 followed six weeks later, so the wire format’s stability record is measured in weeks; conformance work between the TypeScript and .NET clients was literally in flight in August 2026.
- The crates.io download figure includes CI rebuilds, so read it as an upper bound (the same skepticism this corpus applies to vendor benchmarks).
- It is a fifth protocol to track, and the sprawl criticism recorded against ACP applies here too.
Pricing #
Free and open under MIT, nothing to buy. The costs are implementing or operating a host, plus tracking spec churn around the fresh 1.0.
Compared to #
- ACP: both sit in editor-to-agent territory, but ACP drives one agent from one client over stdio while AHP hosts many clients on one synchronized session through a server; choose ACP for harness portability inside your editor, AHP when several surfaces must share a live session.
- MCP: agent-to-tool and complementary by design; AHP’s docs treat MCP as a channel to relay, not a competitor.
- A2A: cross-organization delegation between opaque agents; AHP is single-organization client-to-host and about live shared state rather than task delegation.
Bottom line #
Recommended for tool builders who want a client attached to VS Code agent sessions today, with 1.0’s days-old stability record priced in; not for cross-org delegation or tool integration, where A2A and MCP remain the answers. The disagreeable part: I think AHP will matter more to daily coding work than A2A ever will, because whoever owns the host owns the session, and most engineers already run theirs (VS Code).
Changes #
- 2026-08-30 - Created in the Protocols category, profiling Microsoft’s sessions-server spec with six-language SDKs.
- 2026-09-05 - Moved the npm reference to an explicit window URL because the last-month endpoint serves stale data.
- 2026-09-18 - Refreshed stars, forks, open issues, and download figures (crate 230,121 lifetime, npm 83,129 for 2026-08-18 to 2026-09-17).
- 2026-09-20 - Refreshed stars, forks, open issues, and download figures (crate 233,754 lifetime, npm 103,060 for 2026-08-20 to 2026-09-19) and recorded the mid-September npm download spike; spec v0.9.0 remains the latest release.
- 2026-09-24 - Refreshed stars, open issues, and download figures (crate 246,064 lifetime, npm 123,531 for 2026-08-24 to 2026-09-23); spec v0.9.0 remains the latest release.
- 2026-09-27 - Refreshed stars, open issues, and download figures (crate 252,521 lifetime, npm 157,131 for 2026-08-28 to 2026-09-27); spec v0.9.0 remains the latest release.
- 2026-09-29 - Refreshed stars, open issues, and download figures (crate 257,714 lifetime, npm 175,239 for 2026-08-29 to 2026-09-28); spec v0.9.0 remains the latest release.
- 2026-10-03 - The spec, clients, and SDK packages reached v1.0.0 on 2026-10-02, closing the pre-1.0 caveat; refreshed repository and download figures (crate 268,768 lifetime, npm 412,350 for 2026-09-03 to 2026-10-02, 384 stars, 64 open issues) and added the releases reference.
- 2026-10-07 - Added the microsoft/agent-host-protocol star history chart to the Status section.
- 2026-10-11 - Refreshed stars, open issues, and download figures (crate 285,720 lifetime, npm 635,747 for 2026-09-11 to 2026-10-10); spec v1.0.0 remains the latest release.
- 2026-10-17 - Re-verification: the release train re-checked unchanged (v1.0.0 remains the latest spec, client, and SDK tag set), open issues and the push date refreshed (70 open issues, pushed 2026-10-17), and download figures refreshed (crate 300,525 lifetime, npm 645,342 for 2026-09-17 to 2026-10-16).
- 2026-10-20 - Re-verification: the release train re-checked unchanged (v1.0.0 remains the latest spec, client, and SDK tag set), open issues and the push date refreshed (71 open issues, pushed 2026-10-19), and download figures refreshed (crate 307,370 lifetime, npm 667,686 for 2026-09-19 to 2026-10-18).
- 2026-10-22 - Re-verification: the release train re-checked unchanged (v1.0.0 remains the latest spec, client, and SDK tag set), open issues and the push date refreshed (73 open issues, pushed 2026-10-21), and download figures refreshed (crate 315,086 lifetime, npm 624,680 for 2026-09-22 to 2026-10-21).
- 2026-10-24 - Re-verification: the release train re-checked unchanged (v1.0.0 remains the latest spec, client, and SDK tag set), open issues and the push date refreshed (73 open issues, pushed 2026-10-23), and download figures refreshed (crate 322,294 lifetime, npm 617,300 for 2026-09-24 to 2026-10-23).
- 2026-10-27 - Re-verification: the release train re-checked unchanged (v1.0.0 remains the latest spec, client, and SDK tag set), open issues and pull requests and the push date refreshed (71 combined, pushed 2026-10-26), and download figures refreshed (crate 331,127 lifetime, npm 633,242 for 2026-09-27 to 2026-10-26); the docs work in the wave redesigned the docs homepage as an interactive protocol walkthrough and added a clients list.
- 2026-10-31 - Re-verification: the release train re-checked unchanged (v1.0.0 remains the latest spec, client, and SDK tag set), open issues and pull requests and the push date refreshed (73 combined, pushed 2026-10-30), and download figures refreshed (crate 345,702 lifetime, npm 590,346 for 2026-10-01 to 2026-10-30); the climbing-steeply reading of the npm total was corrected, since the trailing-month window has oscillated in a 590k-to-670k band since early October.
- 2026-11-03 - Re-verification: the release train re-checked unchanged (v1.0.0 remains the latest spec, client, and SDK tag set, the go client’s v1.0.0 published the same 2026-10-02 day), open issues and pull requests and the push date refreshed (76 combined, pushed 2026-11-03 on dependabot bumps), and download figures refreshed (crate 351,694 lifetime, npm 593,872 for 2026-10-02 to 2026-11-02).
- 2026-11-04 - Re-verification: the release train re-checked unchanged (v1.0.0 remains the latest spec, client, and SDK tag set), open issues and pull requests and the push date refreshed (72 combined, pushed 2026-11-04), and download figures refreshed (crate 355,363 lifetime, npm 556,970 for 2026-10-03 to 2026-11-03, the band figure widened to roughly 557k-to-670k); the main branch merged optional byte-range reads for resourceRead on 2026-11-04 (optional position and length on the read request, size on the result, UTF-8 sequence boundaries respected, no capability negotiation), with the schemas and client models regenerated, a spec addition that remains unreleased past v1.0.0.
- 2026-11-06 - Re-verification: the release train re-checked unchanged (v1.0.0 remains the latest spec, client, and SDK tag set), open issues and pull requests and the push date refreshed (82 combined, pushed 2026-11-06 on a Rust client cancellation fix), and download figures refreshed (crate 364,831 lifetime, npm 551,713 for 2026-10-05 to 2026-11-05); the main branch merged two more unreleased spec additions on 2026-11-04, MCP-server-served skills in the customization model (the MCP skills extension, SEP-2640) and non-user input through existing chat actions, both with schemas and client models regenerated.
- 2026-11-12 - Rotation re-verification: every cited URL re-fetched live with no dead sources, the release train re-checked unchanged (v1.0.0 remains the latest spec, client, and SDK tag set), open issues and pull requests and the push date refreshed (88 combined, pushed 2026-11-12 on host path semantics exposed at initialization, #476), the docs site confirmed now serving a 1.1.0 draft in its version switcher with new elicitation, customizations, and MCP-servers guide sections, and download figures refreshed (crate 383,327 lifetime, npm 697,806 for 2026-10-13 to 2026-11-12, the band figure widened to roughly 557k-to-700k).
- 2026-11-13 - The release train moved for the first time past 1.0: v1.1.0 (dated 2026-11-12) shipped on 2026-11-13 as spec/v1.1.0 plus the Go module, Swift package, npm package, and Rust crate all at 1.1.0, carrying everything the November passes had recorded as unreleased (host path semantics #476, the account-selection hint #583, MCP-served skills SEP-2640, experimental subscription-negotiated flow control #492, an EmptyState snapshot variant, unknown-member preservation on automation patch objects, and an optional authenticate.target scoping MCP-server tokens); the default branch bumped PROTOCOL_VERSION to 1.2.0 for ongoing development, the docs switcher now pairs a 1.2.0 draft with 1.0.0 stable, a protocol naming dictionary joined the docs (#597), and figures refreshed (85 open issues and pull requests, crate 386,999 lifetime downloads, npm 704,999 for 2026-10-14 to 2026-11-13).
See also #
- Protocols Feature Matrix - the category comparison this note joins, now with its own AHP column
- MCP - the agent-to-tool layer AHP relays as a channel
- ACP - the closest lane neighbor, and the subject of AHP’s own doctrine page
- A2A - the cross-org layer, and the Ask HN thread where the VS Code team announced the AHP bet
- VS Code + Copilot - the surface whose built-in agent host is the protocol’s reference implementation
References #
https://github.com/microsoft/agent-host-protocol - repository, six-language SDK table, VS Code reference host pointer, MIT license
https://microsoft.github.io/agent-host-protocol/ - docs home: problem framing, host broadcast model, optimistic-apply reconciliation
https://microsoft.github.io/agent-host-protocol/guide/what-is-ahp - channel abstraction, URI schemes, agent-agnostic stance, planned MCP and LSP relay
https://microsoft.github.io/agent-host-protocol/specification/overview - RFC 2119 conventions and the x- extension rule
https://registry.npmjs.org/@microsoft%2Fagent-host-protocol - TypeScript client, latest 1.1.0 as of 2026-11-13
https://api.npmjs.org/downloads/point/2026-10-14:2026-11-13/@microsoft/agent-host-protocol - TypeScript client, 704,999 downloads 2026-10-14 to 2026-11-13, fetched 2026-11-13
https://crates.io/api/v1/crates/ahp - Rust client, 386,999 downloads, latest version 1.1.0, and repository pointer as of 2026-11-13
https://github.com/microsoft/agent-host-protocol/releases - the v1.0.0 spec, client, and SDK tags of 2026-10-02
https://github.com/microsoft/agent-host-protocol/releases/tag/v1.1.0 - the v1.1.0 release notes (dated 2026-11-12, published 2026-11-13), grounded through the API fetch, listing the shipped 1.1.0 additions, changes, fixes, and the security addition (fetched 2026-11-13)
https://hn.algolia.com/api/v1/items/48582679 - the Ask HN A2A thread containing the VS Code team’s AHP announcement comment (2026-06-18)
https://github.com/microsoft/vscode/tree/main/src/vs/platform/agentHost/node - the reference host implementation inside the VS Code tree