Feature · Coding-agent CLIs
Speak the Agent Client Protocol to a coding-agent CLI the user has already authenticated.
A client (an editor, a terminal UI, an orchestrator) gets structured state from the agent instead of guessing it from bytes on a pseudo-terminal: session state, streaming output, tool calls with status, token usage and cost.
Capabilities
01
It drives the agent CLI already on the machine, so the user’s existing subscription login is the authentication. In subscription mode the package never reads, holds or sends a credential.
02
An app that bills per token can hand the drivers an API key instead. Credentials are app or tenant configuration, never something an ACP client sends.
03
Codex can raise permission requests for the client to answer, and Claude can for the tools you name. Only an explicit allow runs the tool; a deny, a cancel or a missing handler blocks it.
04
initialize, session/new, session/load, session/prompt and session/cancel work over a pipe. Several sessions run at once, each with its own agent process.
serve({
input: process.stdin,
output: process.stdout,
driverFactory: (options, events) => new ClaudeDriver(options, events),
driverCapabilities: CLAUDE_DRIVER_CAPABILITIES,
});05
Each CLI runs under a small supervisor that owns its whole process tree, never through a shell, so ending a session ends every process it started.
06
The TypeScript package has zero runtime dependencies. The PHP core has no third-party runtime dependencies and does not require Laravel.
How it fits
TypeScript is the reference implementation; PHP is a port that runs as an ACP agent command or embeds in an application. The PHP port supports Windows; other platforms are refused before a provider starts.
ACP sits outside the provider interface: instead of calling a provider API with a key, it runs the agent CLI the user is signed in to and translates.
Install
particle-academy/prism-acp PHP
@particle-academy/prism-acp TypeScript
Related features
Model Context Protocol
MCP
Discover and call MCP server tools with explicit trust policies, definition pinning and bounded results.
Durable agent sessions
Agent harness
Durable sessions, threads, modes, approvals and subagents with their own budgets, for agents that outlive a request.
Language ports
Three languages, one contract
Core and the companion families in PHP, TypeScript and Python, held together by one shared conformance corpus.