A2C (Agent-to-Computer) is an open protocol that enables a remote AI agent (the Brain) to delegate tool execution to a local machine (the Body), receive the results, and continue reasoning — all over a persistent, bidirectional communication channel.
Think of it as the missing complement to MCP: while MCP lets an LLM host reach out to remote servers for context and tools, A2C lets a remote LLM reach back to the user's local machine to run commands, scripts, and OS-level operations.
Modern AI agents run in the cloud. But many of the most useful tools — shell commands, file system access, GUI automation, local processes — only make sense on the user's own machine. Bridging that gap today requires ad-hoc, non-interoperable solutions baked into each individual application.
A2C defines a standard protocol so that any Brain (any LLM agent) can talk to any Body (any local executor) using a common language.
┌---------------------------------┐ ┌----------------------------------┐
│ BRAIN │ │ BODY │
│ (Remote AI Agent / LLM Server) │ │ (Local Machine / TUI / Client) │
│ │ │ │
│ • Runs LLM inference │◄--------------►│ • Executes tools locally │
│ • Decides which tools to call │ Body connects │ • Presents output to the user │
│ • Streams text responses │ outbound ---► │ • Manages the session │
└---------------------------------┘ └----------------------------------┘
Bidirectional Channel — Body initiates outbound connection (no open ports on local machine)
(gRPC / HTTP+SSE / WebSocket / …)
Body --[HANDSHAKE]--------------------------► Brain
Body ◄--[HANDSHAKE_ACK]----------------------Brain
Body --[PROMPT "list my files"]-------------► Brain
Body ◄--[ACTION tool="shell" args=["ls"]]----Brain
Body --[TOOL_RESULT stdout="..."]-----------► Brain
Body ◄--[RESPONSE "You have 3 files: …"]-----Brain
| Section | Description |
|---|---|
| 01 — Overview | Motivation, problem statement, and relation to MCP |
| 02 — Roles | Brain and Body: responsibilities and capability model |
| 03 — Lifecycle | Handshake, Operation, and Shutdown phases |
| 04 — Messages | All message types, field schemas, and flow diagrams |
| 05 — Transports | Transport requirements and reference bindings |
| 06 — Security | Trust model, consent model, and user control |
| 07 — Relay | Relay/Broker pattern for connecting without opening ports |
| 08 — Daemon Mode | Background Body mode and operator-driven task flow |
Draft v0.2.0 — This specification is in early draft stage. All sections are open for discussion.
The Model Context Protocol (MCP) and A2C are complementary, not competing:
| MCP | A2C | |
|---|---|---|
| Direction | LLM Host → Remote Servers | Remote Brain → Local Body |
| Purpose | Fetch context, call cloud tools | Execute tools on the user's machine |
| Initiator | LLM Host | Remote AI Brain |
| Executor | Remote MCP Server | Local Body client |
A Brain could implement both: MCP to access cloud services, and A2C to delegate local execution.
| Language | Location | Status |
|---|---|---|
| Python (Brain + Body + TUI) | implementations/python/ | v0.2.0 |
See CONTRIBUTING.md. All feedback is welcome via GitHub Issues and Pull Requests.