Skip to main content
Kapso reads a single YAML file. Every tunable value lives there, and nothing is configured through environment variables.

Where the config comes from

Kapso ships a packaged config.yaml and uses it unless you point somewhere else:
Configuration and credentials are separate. Knobs — models, budgets, timeouts, gates — come from this file. Credentials never do: the coding-agent CLIs hold their own logins, and keys such as OPENAI_API_KEY are read from .env by the SDKs that need them.

Top-level keys

default_mode

Names the entry in modes used when nothing overrides it. Override per run with kapso evolve --mode MINIMAL or evolve(mode="MINIMAL").

inference

Routes model calls that are not coding-agent work: research, reranking and utilities.
The packaged config’s inference block is the base layer. An inference: block in your own config file deep-merges over it — override one key (say default.model) and the packaged roles and remaining defaults stay in force.
roles overrides default for one named role. Anything a role omits falls back to default, so kg_rerank above keeps cli: codex and only lowers effort and timeout.

preflight

These are the same checks kapso doctor reports. Leaving enabled: true is what makes a missing CLI fail in seconds instead of deep inside a run.

deployment

The agent must be able to serve the model: a Claude model name on the codex agent is refused by a ChatGPT login. deploy(coding_agent=..., model=...) and kapso deploy --coding-agent override per call, and a deployment: block in your own config file layers over the packaged one key by key.

defaults

modes

A mode is a named bundle of settings. Two ship: GENERIC and MINIMAL. MINIMAL differs mainly by turning knowledge search off and using shorter learner timeouts. Each mode carries six blocks.

search_strategy

See Capability-aware MCP gates.

coding_agent and feedback_generator

Both take the same shape:
See Search backends.

retry

Bounded exponential backoff for transient model failures. See Model routing and retries.

learner

Two sub-blocks, ingestor and merger, controlling learn_knowledge(). Both take a model, an auth_mode and a timeout. ingestor additionally takes cleanup, cleanup_staging, fail_on_validation_errors and github_repo_visibility.

learning

Everything about trajectory learning: mining finished campaigns into an evidence-priced lesson bank. Shipped values worth knowing:
The store and the bank are Kapso’s own state and live under ~/.kapso, outside the project you run from, so a campaign’s --data-dir and seed copy never pick them up.
learning.serving.enabled ships as false. Until you turn it on, campaigns do not read from the lesson bank, so banked lessons have no effect on evolve().
update_crew.default_version is the version learn() uses when you do not pass learner_version.

CLI

Commands that accept —config

Python API

Passing config_path to Kapso()
Related pages: CLI · Python API · CLI Kapso is an open-source framework by Leeroo that builds software toward measurable goals through experiment campaigns. Source code: github.com/Leeroo-AI/kapso · Install: pip install leeroo-kapso · Every page as plain text: llms.txt.