The Agent Client Protocol Arrives in Microsoft Terminal: What ACP Means for Codex CLI and the Multi-Agent IDE Ecosystem
The Agent Client Protocol Arrives in Microsoft Terminal: What ACP Means for Codex CLI and the Multi-Agent IDE Ecosystem
On 2 June 2026, Microsoft shipped Intelligent Terminal 0.1 — an experimental fork of Windows Terminal with a native agent pane that speaks the Agent Client Protocol (ACP)1. The agent pane auto-detects whichever ACP-compatible CLI is installed on the machine: GitHub Copilot CLI by default, but also Claude Code, Codex CLI, and Gemini CLI2. For Codex CLI developers, this is not merely another integration announcement. It marks the moment ACP crossed from niche open-source protocol to cross-vendor standard — adopted by JetBrains, Zed, Neovim, VS Code extensions, and now Microsoft’s own terminal3.
This article explains what ACP is, how it differs from MCP, how Codex CLI implements it, and the practical configuration decisions senior developers face when running multiple agents side-by-side.
ACP: The LSP Analogy, Applied to Agents
Before the Language Server Protocol (LSP), every editor needed bespoke integration code for every programming language. LSP solved this with a single JSON-RPC interface: any language server works in any compatible editor. ACP applies the same pattern to AI coding agents4.
The Agent Client Protocol standardises communication between code editors (or terminals) and coding agents — programs that use generative AI to autonomously modify code3. Created by Zed Industries and developed openly with JetBrains, ACP reached protocol version 1 with over 25 compatible agents and multiple client implementations by early 20265.
The core value proposition is straightforward: implement ACP once in your agent, and it works in Zed, JetBrains IDEs, Neovim, VS Code, Microsoft Intelligent Terminal, and any future client — without custom integration code for each surface.
How ACP Works
Transport and Message Format
ACP uses JSON-RPC 2.0 over stdio for local agents (the agent runs as a subprocess of the editor) and is developing HTTP/WebSocket transport for remote agents4. Text content uses Markdown by default, and where possible the protocol reuses MCP’s JSON representations, adding custom types only for agent-specific UI elements like diff display4.
Lifecycle and Message Flow
An ACP session follows a structured lifecycle6:
sequenceDiagram
participant Editor as Editor / Terminal
participant Agent as Codex CLI (ACP)
Editor->>Agent: session/initialize (protocol version, capabilities)
Agent-->>Editor: capabilities response
Editor->>Agent: session/new (context, MCP server endpoints)
loop Conversation
Editor->>Agent: session/prompt (user instruction)
Agent-->>Editor: session/update (streaming tokens)
Agent->>Editor: session/request_permission (file write / shell command)
Editor-->>Agent: permission response (approve / deny)
Agent-->>Editor: session/update (completion)
end
Editor->>Agent: session/cancel (optional)
Five core message types orchestrate the interaction6:
| Message | Direction | Purpose |
|---|---|---|
session/prompt |
Editor → Agent | Send user input |
session/update |
Agent → Editor | Stream response tokens |
session/cancel |
Editor → Agent | Halt mid-response |
session/request_permission |
Agent → Editor | Request approval for commands or file writes |
session/setModel |
Editor → Agent | Switch model mid-session |
The permission model is critical: agents cannot execute arbitrary commands. When Codex CLI needs to write a file or run a shell command, it sends a session/request_permission message — the editor surfaces the approval request in its UI, and the user decides6. This maps naturally to Codex CLI’s existing approval modes.
ACP vs MCP: Complementary, Not Competing
Senior developers working with Codex CLI already know MCP (Model Context Protocol) well — it connects agents to external tools and data sources7. ACP solves a different problem entirely:
| Dimension | ACP | MCP |
|---|---|---|
| Purpose | Agent ↔ editor communication | Agent ↔ tool/data access |
| Direction | Horizontal (editors to agents) | Vertical (agents to services) |
| Transport | JSON-RPC 2.0 over stdio | JSON-RPC 2.0 over stdio or streamable HTTP |
| Streaming | Real-time token streaming | Request-response |
| Session state | Built-in conversation history | Stateless per request |
| Created by | Zed Industries + JetBrains | Anthropic |
The two protocols compose naturally. During the session/new handshake, the editor passes available MCP server endpoints to the agent, so ACP and MCP wire up in a single initialisation step6. In practice, this means your Codex CLI session in Zed or Intelligent Terminal automatically inherits the MCP servers configured in the editor — no double configuration required.
graph LR
subgraph Editor Layer
IT[Intelligent Terminal]
Zed[Zed IDE]
JB[JetBrains IDE]
end
subgraph ACP
CodexCLI[Codex CLI]
ClaudeCode[Claude Code]
GeminiCLI[Gemini CLI]
end
subgraph MCP
GitHub[GitHub MCP]
Postgres[Postgres MCP]
Jira[Jira MCP]
end
IT -->|ACP| CodexCLI
Zed -->|ACP| CodexCLI
Zed -->|ACP| ClaudeCode
JB -->|ACP| GeminiCLI
CodexCLI -->|MCP| GitHub
CodexCLI -->|MCP| Postgres
ClaudeCode -->|MCP| Jira
Codex CLI’s ACP Implementation
Codex CLI’s ACP support is provided through a dedicated ACP server adapter (codex-acp) that bridges the OpenAI Codex runtime with ACP clients over stdio8. The implementation handles the full ACP lifecycle:
initializeandauthenticate— negotiate protocol version and handle OpenAI authenticationsession/newandsession/load— create or restore Codex sessions, inheritingconfig.tomlprofilessession/prompt— forward user instructions to the Codex agent loopsession/cancel— halt mid-executionsession/setModeandsession/setModel— switch approval modes and models mid-conversation8
Codex threads inherit your config.toml profiles, so you can use different reasoning effort levels per thread by switching models with the ACP set_session_model() method or the familiar /model slash command8.
Configuration in Zed
Zed 1.0, which shipped on 29 April 2026 with parallel agents as its headline AI feature, runs Codex CLI alongside Claude Agent, Gemini CLI, and any other ACP-compatible agent in the same window9:
{
"agent": {
"profiles": {
"codex": {
"provider": "acp",
"command": "codex",
"args": ["--acp"]
}
}
}
}
Each agent operates in its own thread, working concurrently on different parts of the codebase. The practical upshot: you can have Codex CLI running a goal-mode refactoring task in one pane whilst Claude Code reviews the changes in another9.
Configuration in Neovim
For Neovim users, the agentic.nvim plugin provides ACP client support6:
{
"carlos-algms/agentic.nvim",
config = function()
require("agentic").setup({
agents = {
["codex-cli"] = {
command = "codex",
args = {"--acp"}
}
}
})
end
}
Configuration in Intelligent Terminal
Microsoft Intelligent Terminal auto-detects installed ACP agents. If Codex CLI is on your PATH, it appears in the agent selector. To switch from the default GitHub Copilot CLI to Codex, open Settings → Agent → Agent and model selection1.
The agent pane (toggled with Ctrl+Shift+.) maintains persistent context on your shell output. When a command fails, Ctrl+Alt+. opens the agent with full error context — a workflow that maps directly to Codex CLI’s diagnostic capabilities1.
Multi-Agent Terminal Workflows
The most interesting consequence of ACP standardisation is multi-agent composition. With Intelligent Terminal’s session management panel (Ctrl+Shift+/), you can track active agents across tabs and switch between them1. Combined with Zed’s parallel agent threads, this enables workflows that were previously impossible:
The Review-Implement-Verify Pattern
- Codex CLI implements a feature in one thread (goal mode,
gpt-5.5,xhighreasoning effort) - Claude Code reviews the generated code in a parallel thread (optimised for critique)
- Gemini CLI runs the test suite and reports coverage gaps in a third thread
Each agent speaks ACP to its host editor, and each uses MCP to access the project’s GitHub, database, and CI systems. The agents do not communicate directly with each other — the developer orchestrates by reading outputs and directing follow-up prompts9.
Practical Considerations
Multi-agent workflows introduce real operational concerns:
- Token cost multiplication — running three agents concurrently on the same codebase triples API spend. Use Codex CLI’s
model_reasoning_effortprofiles to keep review passes cheap (lowormediumeffort) whilst reservingxhighfor implementation10. - File conflict risk — two agents editing the same file simultaneously creates merge conflicts. Scope each agent to a distinct directory or use git worktrees to isolate workstreams.
- Permission model alignment — ACP’s
session/request_permissionpasses approval decisions to the editor, but each agent may also have its own approval configuration. Codex CLI’sconfig.tomlapproval mode should match the trust level you expect from the ACP surface.
The Protocol Stack: ACP + MCP + A2A
ACP and MCP are increasingly joined by a third protocol: Google’s Agent-to-Agent (A2A) protocol for direct agent-to-agent communication7. Together, these three protocols form a layered stack:
graph TB
subgraph "Protocol Stack"
A2A["A2A — Agent ↔ Agent<br/>(direct delegation)"]
ACP_layer["ACP — Editor ↔ Agent<br/>(UI integration)"]
MCP_layer["MCP — Agent ↔ Tools<br/>(data and tool access)"]
end
A2A --> ACP_layer
ACP_layer --> MCP_layer
For Codex CLI developers, the practical takeaway is that MCP remains the protocol for connecting to external tools (databases, APIs, file systems), ACP is the protocol for embedding Codex CLI inside editors and terminals, and A2A may eventually enable Codex CLI to delegate tasks directly to other agents without human intermediation7.
What This Means for Your Workflow
If you are running Codex CLI exclusively from the terminal with codex or codex exec, ACP changes nothing about your daily workflow. The protocol matters when you want Codex CLI to function as a first-class citizen inside your editor:
- Install the ACP adapter —
codex-acpbridges Codex CLI’s runtime to any ACP client8. - Configure your editor — add the Codex agent profile to Zed, Neovim, JetBrains, or Intelligent Terminal settings.
- Align permission models — ensure your
config.tomlapproval and sandbox modes match the trust level appropriate for the ACP client surface. - Scope MCP servers — decide whether MCP servers should be configured in the editor (passed via ACP handshake) or in Codex CLI’s own
config.toml. Avoid duplicating server definitions across both.
The ACP ecosystem is moving quickly. The protocol reached v0.13.6 on 5 June 20263, JetBrains has published comprehensive ACP documentation for IntelliJ-family IDEs11, and VS Code extensions like vscode-acp now support Codex CLI alongside Claude, Copilot, Qwen, Gemini, and OpenCode12. Microsoft’s adoption in Intelligent Terminal confirms that ACP has graduated from experiment to infrastructure.
For senior developers already invested in Codex CLI’s MCP ecosystem, ACP is the natural complement — MCP gives your agent tools, and ACP gives your agent a home in every editor.
Citations
-
Microsoft Developer Blog, “Announcing Intelligent Terminal 0.1,” 2 June 2026. https://devblogs.microsoft.com/commandline/announcing-intelligent-terminal-version-0-1/ ↩ ↩2 ↩3 ↩4
-
TechTimes, “Microsoft Intelligent Terminal Ships at Build 2026: AI Agent Fork Leaves Mainline Terminal Alone,” 4 June 2026. https://www.techtimes.com/articles/317761/20260604/microsoft-intelligent-terminal-ships-build-2026-ai-agent-fork-leaves-mainline-terminal-alone.htm ↩
-
Agent Client Protocol GitHub repository, “agent-client-protocol,” accessed 10 June 2026. https://github.com/agentclientprotocol/agent-client-protocol ↩ ↩2 ↩3
-
Agent Client Protocol, “Introduction — Get Started,” accessed 10 June 2026. https://agentclientprotocol.com/get-started/introduction ↩ ↩2 ↩3
-
JetBrains, “Agent Client Protocol (ACP),” accessed 10 June 2026. https://www.jetbrains.com/acp/ ↩
-
Morph, “Agent Client Protocol (ACP) Explained: ACP vs MCP, Editor Support, Setup,” 2026. https://www.morphllm.com/agent-client-protocol ↩ ↩2 ↩3 ↩4 ↩5
-
Cisco Outshift, “MCP and ACP: Decoding the language of models and agents,” 2026. https://outshift.cisco.com/blog/ai-ml/mcp-acp-decoding-language-of-models-and-agents ↩ ↩2 ↩3
-
GitHub, “agentclientprotocol/codex-acp — ACP server implementation for Codex CLI,” accessed 10 June 2026. https://github.com/agentclientprotocol/codex-acp ↩ ↩2 ↩3 ↩4
-
Codex Knowledge Base, “Codex CLI in Zed 1.0: Parallel Agents, ACP Integration, and Multi-Agent IDE Workflows,” 5 May 2026. https://codex.danielvaughan.com/2026/05/05/codex-cli-in-zed-parallel-agents-acp-integration-ide-workflows/ ↩ ↩2 ↩3
-
OpenAI Developers, “Advanced Configuration — Codex,” accessed 10 June 2026. https://developers.openai.com/codex/config-advanced ↩
-
JetBrains, “Agent Client Protocol (ACP) — AI Assistant Documentation,” accessed 10 June 2026. https://www.jetbrains.com/help/ai-assistant/acp.html ↩
-
GitHub, “formulahendry/vscode-acp — Agent Client Protocol client for VS Code,” accessed 10 June 2026. https://github.com/formulahendry/vscode-acp ↩