Agents & harnesses
The Nori CLI is a harness, not an agent. It has no model and no coding engine of its own — it runs your chosen coding agent and gives it a terminal, durable sessions, approvals, and tool plumbing.
Host and agent
Section titled “Host and agent”- Nori (the host, the harness) — the TUI, session transcripts, approvals, MCP forwarding, and the loop that drives a turn.
- The agent — Claude Code, Codex, or any agent you register. It runs as a separate subprocess and talks to Nori over a protocol.
The key idea: Nori never reimplements an agent — it hosts one.
The out-of-process boundary
Section titled “The out-of-process boundary”Each agent keeps its own authentication, its own slash commands, and its own
tools. Running it as a subprocess means Nori doesn’t have to absorb any of
that — it forwards. Slash commands the agent advertises over the protocol
appear in the composer alongside Nori’s own, and the MCP servers from Nori’s
config.toml are handed to the agent when a session starts. Switching agents
— /agent in the TUI, or -a <slug> at launch — swaps the whole subprocess,
cleanly.
The protocol
Section titled “The protocol”The host-agent contract is the Agent Client Protocol (ACP). Anything that speaks ACP can be the agent — which is exactly why “any agent” is a real promise and not a marketing line.
Next steps
Section titled “Next steps”- Agent Client Protocol — what actually travels between host and agent
- Agents guide — the built-in agents, and how to register your own
- MCP & hooks — the tool plumbing Nori forwards to whichever agent is running
this page as markdown: /cli/concepts/agents-and-harnesses.md· index for agents: /llms.txt