Users already have Claude Code, Codex, Cursor, opencode, Kiro, and friends installed and logged in. Each one has its own CLI, protocol, and quirks, so an app built on top of them ends up with a driver per agent.
anyagent is that layer, written once. It finds the agents, speaks each one’s protocol (native or ACP), and gives you one typed API.
Three objects
Who owns what
Design rules
- Same types for every agent. Provider-specific data rides in
extensionsinstead of leaking into the API. - Capabilities are reported, not assumed. After
open, the session tells you what this agent can do on this connection. Gate features on that, not on the agent’s name. - A turn ends exactly once. Whether the wire said so or anyagent inferred
it, you get one
TurnEnded.
Where to go
Quickstart
Install, discover, open, prompt, stream, answer one permission.
Core API
Runtime, Session, SessionOptions, every EventKind, requests, errors.
Features
Each thing anyagent does, in a few sentences and one snippet.
Agents
The catalog, the capability matrix, per-agent quirks, custom ACP agents.
Building an app
How the pieces fit in a real chat app: threads, streaming, permissions, persistence.
Architecture
The codebase map and how an event travels from wire to your UI.