Download Latest Version v0.4.5 source code.zip (11.6 MB) Google Add to Preferred Sources
Home / v0.4.4
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2026-09-07 5.2 kB
v0.4.4 source code.tar.gz 2026-09-07 11.1 MB
v0.4.4 source code.zip 2026-09-07 11.6 MB
Totals: 3 Items   22.7 MB 0

Your coding agent can now run Kapso for you, and the rounds that tested it fixed six things along the way.

Added

The Kapso skill for coding agents. One SKILL.md per agent under skills/claude-code/kapso, codex/kapso (with its agents/openai.yaml sidecar) and opencode/kapso — teaches Claude Code, Codex and OpenCode to operate Kapso from a session: verify the install with kapso doctor, write a goal with a metric and a number in it (and ask once, in one line, when the repository has no evaluation and the request names none), launch the campaign in the background with --output in a sibling directory and hand over kapso watch <campaign> --follow right away, treat WAITING ON YOU as a pause answered through kapso inbox, resume a dead campaign with the bare --resume, bank a finished campaign with learn() and turn serving on, ingest outside sources with learn_knowledge(), run research(), and deploy() in the foreground. Copy the folder for your agent into the project (.claude/skills/kapso, .agents/skills/kapso or .opencode/skills/kapso); the page below has the commands.

The skill was written eval-first: twelve prompts against a small churn-model repository, with and without the skill, scored against a rubric per prompt. Claude Code (claude-opus-5, 2026-09-06): 4 failures, 291 tool calls and $12.45 without the skill; 0, 120 and $5.14 with it. Codex (gpt-6-astra, 2026-09-07): 2 failures, 203 calls, 51 minutes; then 0, 80 calls, 12.5 minutes. OpenCode on Kimi K2.7 Code (2026-09-07): 7 failures, 293 calls, 80 minutes, $1.87; then 0, 124 calls, 18 minutes, $0.56. The three copies are separate files and differ in one place: Codex ends a plain nohup … & child when the shell call returns, so its copy launches and resumes with setsid -f. Rows, rubric and incidents: docs/plans/coding-agent-skill-findings.md.

  • A resume needs nothing retyped. kapso evolve --output <campaign> --resume reads the goal from the checkpoint and every flag from .kapso/launch.json; --goal is optional with --resume, and evolve(resume=True) fills its unset arguments the same way. A resume that changes the mode, coding agent, eval-dir, config or knowledge index is refused by name (RunCheckpointIncompatibleError: This resume changes settings the checkpoint fingerprints: …); start a new campaign instead. reply() resumes through the same path.
  • A deployment: block in config.yaml (coding_agent: claude_code, model: claude-opus-5) is the one source for the selector and adapter sessions; deploy(coding_agent=…, model=…) and kapso deploy --coding-agent … --model … override per call, and a deployment: block in your own config layers over the packaged one.
  • kapso watch before the first heartbeat says the workspace has no status file yet (the campaign is still seeding and bootstrapping repo memory) instead of crashing, and a campaign whose process is gone is reported ⚠ DEAD (pid N is gone) at once rather than RUNNING for three heartbeats.

Fixed

  • --output inside --initial-repo copied the repository into itself; the seed copy now skips the workspace path.
  • kapso watch crashed with KeyError: 'heartbeat_at' on a workspace that had not written its status yet.
  • The deployment selector and adapter hardcoded claude-opus-4-5, so kapso deploy --coding-agent codex sent a Claude model name to Codex and failed.
  • The launch record stored the packaged config's path, so a bare resume from a different install was refused as a config change; the packaged default is now recorded as None.
  • learning.bank.local_path and learning.trajectory_store.local defaulted under the project's data/, so a campaign launched with --data-dir data shipped its own bank into kapso_datasets/; they now default to ~/.kapso/bank.git and ~/.kapso/trajectories.
  • pip install kapso installs an unrelated package that shadows the kapso command; the README and the installation page now say so at the install step, and the docs say what the --models probe catches (a revoked login or an excluded model) and what it cannot (a usage cap).

Documentation

Full changelog: https://github.com/Leeroo-AI/kapso/compare/v0.4.3...v0.4.4

Source: README.md, updated 2026-09-07