# kcode-codex-runtime-v2
`kcode-codex-runtime-v2` runs standard multi-step Codex turns through the
app-server JSON-RPC protocol. A caller supplies dynamic function schemas,
receives function calls as events, returns their results, and receives the
terminal assistant message without inventing a text tool protocol.
The runtime uses ChatGPT login from the configured Codex executable. It removes
API-key environment variables, accepts an optional sanitized model catalog,
requests read-only/never-approve operation, disables automatic compaction, and
disables Codex web search, MCP servers, and optional built-in agent features.
Application tools remain owned and executed by the caller.
Every JSONL record written by the runtime is emitted verbatim as
`AgentEvent::ProviderInput`. Consumers can therefore persist the exact
client-to-Codex transport input they control. Codex or the upstream model may
add instructions or metadata internally; this crate cannot expose bytes it
never receives.
See `Documentation.md` for the API and `Specification.md` for normative
behavior.