Documentation / start
Choose an interface and extend the agent
Keep the coding assistant runtime and choose a TUI, Web UI, ACP or MCP protocol boundary, Workflows, and evaluation according to the product you are building.
The coding assistant runtime does not depend on the CLI. Keep the Loop, Rig, Session, tools, storage, and sandbox composition, then choose the interfaces and orchestration features your product needs.
Choose an interface
| Interface | Use it when | Start here |
|---|---|---|
| CLI | A small command or service owns input and output directly | The tutorial application |
| TUI | You want a ready terminal experience with session lists, input, events, and restore | TUI Getting Started |
| Web UI | You want React, Vue, Svelte, Solid, or vanilla DOM to consume the same Session contract | Web UI Client SDK |
The Web UI client is framework-neutral. The optional Svelte adapter does not require applications to use Svelte.
Expose a protocol
Use the ACP module when an editor or another ACP host should create and drive agent sessions. Use the MCP module when the coding assistant publishes tools or adopts tools from another process.
Session runtime → ACP Serve → editor or external ACP client
Tool catalog → MCP Serve → external MCP client
External tools → MCP Client → Harness tool definitions
Protocols adapt an existing runtime boundary. They do not replace Harness session ownership, tool policy, storage, or sandboxing.
Add durable Workflows
Use Flow for typed graph execution and interruption. Use Workflows when the product needs durable definitions, history, recovery, resume, cancellation, and workflow-facing tools. A workflow checkpoint is separate from a Harness journal and workspace snapshot.
Evaluate the agent
Use Evals to run repeatable cases against the coding assistant and collect typed results. Start with exact evaluators for deterministic behavior, then add judge-based evaluation only when the rubric needs model interpretation. Pluto adds capability and qualification suites when you need to compare model or provider candidates.
# Keep evaluation in an ordinary Go test or dedicated evaluation command.
go test ./...
Runnable checkpoint
The evaluation checkpoint runs an exact suite, serializes its report, runs a Pluto capability pack, and evaluates a release profile. Related runnable checkpoints cover HTTP serving and the TUI adapter.
For deeper API details, continue through Inference, Harness, Tools, and Sandboxing.