Introduction
KodaCode is a terminal coding agent with runtime-owned workflow, replayable session state, and workspace-scoped default authority. The important design choice is that orchestration, permissions, tool execution, and prompt assembly live in code and durable events instead of hidden prompt behavior.
Start here
Section titled “Start here”If you are new to KodaCode, read in this order:
Then go deeper based on what you need:
- Agents if you want to understand
builder,engineer,reviewer, or custom agents - Project Memory & Instructions if you want the exact difference between repo instructions, global instructions, and explicit saved memory
- Sandbox & Permissions if you care about trust, approvals, and external access
- MCP Servers and Skills if you want to extend KodaCode with external tools or reusable workflows
- Sessions if you want resume, replay, and persistence behavior
- Budgets and Cost Tracking & Optimization if you care about spend guardrails and cost reduction
- Configuration if you want to set defaults for models, budgets, permissions, or search
What KodaCode optimizes for
Section titled “What KodaCode optimizes for”KodaCode is a better fit when you care about:
- tools and approvals being explicit instead of implied
- session replay and trace inspection after a turn finishes
- workspace-first filesystem authority
- model routing, budgets, and token cost being part of the product surface
It is less interested in hiding runtime decisions behind a polished illusion. If a tool ran, an approval blocked, or context was compacted, that should stay inspectable.
Built-in agents
Section titled “Built-in agents”KodaCode ships four built-in agents:
builder: the default direct-execution coding agentengineer: a structured execution agent with task tracking and delegationreviewer: a read-focused agent for acceptance checks and review passesplanner: a read-only agent for repository analysis, design exploration, and implementation planning
How a turn works
Section titled “How a turn works”- Your prompt is compiled from explicit runtime fragments.
- The selected model streams text and tool-call declarations.
- The runtime checks path, execution, and network boundaries before any tool runs.
- Tool lifecycle events, approvals, and final assistant text are persisted to the session log.
- The TUI renders from those same events, so replay and live state stay consistent.
Core ideas
Section titled “Core ideas”- Runtime authority: permissions, workflow, and tool execution stay in code, not agent improvisation
- Events first: the same turn state drives live rendering, resume, and later inspection
- Workspace-first authority: the current working directory is the default boundary for tool access
- Prompt visibility: compaction, workflow, and routing decisions are artifacts you can inspect
What you can do
Section titled “What you can do”- Choose one primary model for turns and a separate utility model for background work
- Assign a cheaper utility model for background tasks like title generation and compaction
- Set per-session and cross-session spending budgets with warning thresholds
- Use
response_style: defaultonly if you want to opt out of the default terse reply style - Let the runtime compact long session history automatically to keep context usable
- Search, read, patch, test, and inspect Git state with built-in tools
- Add stdio MCP servers for external systems while keeping startup trust explicit
- Mention skills with
$namewhen you want reusable workflow guidance for one turn - Resume workspace sessions from persisted SQLite-backed history
- Inspect per-turn cost, token savings, and cache activity from inside the TUI
- Extend the tool surface through MCP under the same permission model
Where to go next
Section titled “Where to go next”- Quick Start for the first interactive session
- Common Workflows for task-oriented usage paths
- Overview for the system-level design boundaries