kapso evolve will stop in seconds rather than fail deep inside a run.
Prerequisites
Install Kapso
1
Install and log in to the coding-agent CLIs
2
Optional: an OpenAI key for embeddings
Only the knowledge graph and semantic search over past experiments embed text, and generation never touches the OpenAI API. Nothing in a stock install needs the key. When you turn either on (a
kg_index, learn_knowledge, or models.embedding in your config), put the key in a .env file in the directory you run Kapso from:3
Install the package
leeroo-kapso. The PyPI package named kapso is an unrelated WhatsApp tool that installs a kapso command of its own and shadows this one; if it is present, pip uninstall kapso first.To work from a source checkout instead:4
Verify the machine is ready
[OK ] before you run anything else.Connect Leeroopedia (recommended)
Leeroopedia is a hosted knowledge base of ML and AI frameworks. With a key in.env, every campaign session can ask it how a framework actually behaves, have its plan reviewed, pull documented hyperparameter ranges and diagnose a failed run. There is nothing to install: sessions connect to Leeroopedia’s hosted MCP server. Sign up at app.leeroopedia.com (new accounts get $20 of free credit), copy your key, and add it:
kapso doctor confirms the gate is live. Without a key the campaign still runs; the launch banner says the gate is off and how to turn it on. What each node consulted, and the credits used, appear in kapso watch --tree and the campaign’s final summary. See MCP gates for what the agent is told about it.
How do I check my setup?
kapso doctor reports what your config requires, and names one fix for anything missing:
doctor cannot disagree with what a run will do. The command exits non-zero when a required item is missing, which makes it usable in CI.
What the markers mean
Each failing item prints up to three lines:
reason for what is wrong, needed by for the config key that wants it, and fix for the command that resolves it.
How do I check just one command’s requirements?
Name a verb to narrow the report to that verb’s own requirements. Requirements follow your config, so a verb that never calls Codex is never asked for it:research, learn_knowledge, evolve, learn and deploy. With no verb, doctor reports the union of all five.
How do I confirm my models are actually reachable?
Add--models to fire a one-token live call per configured CLI and model pair. A revoked login, or a model your plan does not include, surfaces here in seconds instead of hours into a campaign. A usage cap on a model you can serve does not: a one-token probe passes until the cap is hit.
--models spends a small number of real tokens. The plain doctor makes no model calls.Using API keys instead of a CLI login
Each agent block in the config carries anauth_mode. The shipped default is oauth, which uses the CLI’s own stored login:
For non-interactive environments such as CI, put a token in
.env instead of logging in:
Optional: Knowledge-graph backends
learn_knowledge() and kapso index_kg store into a local Weaviate and Neo4j. Both run in Docker. From a source checkout:
bash scripts/stop_infra.sh --volumes, bash scripts/start_infra.sh, then run kapso index_kg again.
kapso doctor reports both as Weaviate (localhost:8080) and Neo4j (localhost:7687) when your config enables knowledge search.
Optional: Benchmarks
The benchmark harnesses live in the source checkout underbenchmarks/ and each needs its upstream repository installed first.
- MLE-Bench
- ALE-Bench
- RelBench
Troubleshooting
doctor says a CLI is missing but I just installed it
doctor says a CLI is missing but I just installed it
Global npm binaries have to be on your If
PATH. Confirm the shell can see them:npm install -g wrote somewhere outside your PATH, npm prefix -g shows where.doctor says a CLI is not authenticated
doctor says a CLI is not authenticated
The login is stored per machine and expires. Re-run it:Codex stores its login at
~/.codex/auth.json. Claude Code answers claude auth status.Weaviate or Neo4j will not start
Weaviate or Neo4j will not start
Check the container logs:Ports 8080, 50051, 7474 and 7687 must be free. If one is taken, change the mapping in
services/infrastructure/docker-compose.yml.A run fails partway through on a model error
A run fails partway through on a model error
Probe the models directly with
kapso doctor evolve --models — see How do I confirm my models are actually reachable?Set up through your coding agent
Paste this into Claude Code, Codex or OpenCode and it walks the steps above with you, hands you the sign-in links, asks for the keys instead of hunting for them, and verifies withkapso doctor:
kapso doctor first, name the right package, and launch campaigns in the background with the handoff you need.
Related
Quickstart
CLI reference
Kapso skill for coding agents
pip install leeroo-kapso · Every page as plain text: llms.txt.