EvoSkill CLI
Runs a coding agent over tasks with known answers, studies failures and writes new skills and prompts, versioned in Git.
- 1,297 ★ on the repository
- Last commit
- Apache-2.0
Broad access
Why this level
- The loop autonomously runs a coding agent on tasks; in Local mode it works on your machine without isolation.
- Each iteration spends paid provider tokens, with cost growing with the dataset size.
- The installer runs through `curl | bash`.
Install
- Works in
Manual install
curl -fsSL https://raw.githubusercontent.com/sentient-agi/EvoSkill/main/install.sh | bashThe README's recommended path: clones the repository and installs dependencies. Read the script before running it. Manual alternative: `uv sync`.
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- The loop autonomously runs a coding agent on tasks; in Local mode it works on your machine without isolation.
- Each iteration spends paid provider tokens, with cost growing with the dataset size.
- The installer runs through `curl | bash`.
This is third-party code. Review the repository files before installing.
What it does
EvoSkill is an open-source toolkit from Sentient Labs that automatically creates and improves skills for coding agents. You describe the task in `.evoskill/task.md` and point to a dataset: a CSV of questions and answers, or containerized Harbor tasks with built-in verifiers. `evoskill run` starts a loop: the agent solves tasks, failures turn into proposals for new skills and prompt edits, and each variant is scored on a held-out set. Every agent version lives on its own `program/…` branch, with the best marked by `frontier/*` tags. The resulting `.claude/skills/` and `.claude/program.yaml` are copied into your working setup. Claude Code, Codex CLI, OpenCode, OpenHands, Goose and Harbor are supported.
Who it is for. Agent builders and researchers with a reference task set who need measurable skill quality gains.
Good fit when
- An agent keeps failing similar questions and hand-writing skills for them takes long.
- You have a CSV of questions with correct answers.
- Skills found for one model should be tested on another.
- The baseline agent needs comparing with the improved one via `evoskill diff`.
- Harbor tasks, such as SWE-bench Verified, must run in containers.
Not a fit when
- There are no reference answers or automated result checks.
- You need a single ready skill for a one-off task without an evaluation loop.
- The model budget is tight: each iteration runs the agent over the whole set.
Example request
Initialize EvoSkill in this repo with a questions CSV, describe the task, run `evoskill run`, then show `evoskill diff`.Limitations
Python 3.12 or newer and `uv` are required. The loop spends tokens of the chosen provider: set `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, `OPENROUTER_API_KEY` or `FIREWORKS_API_KEY` in the environment. The project must sit in a Git repository because each iteration creates branches and tags. OpenCode needs 1.4.0 or newer, Goose 1.25.0 or newer. Local mode runs the agent directly on the machine; Docker and Daytona add isolation. Evolution without a reference set and continuous improvement during normal use are marked as in progress in the README.
How to disable. Run `evoskill reset` to delete `program/*` branches, `frontier/*` tags and loop history; it leaves your code, `config.toml`, `task.md` and skills in `.claude/skills/` untouched. Then remove the installed package and the `.evoskill/` directory.
FAQ
Which commands matter most?
`evoskill init` creates `.evoskill/`, `evoskill run` starts the loop, `evoskill eval` scores the best version, `evoskill skills` lists discovered skills and `evoskill diff` compares versions.
Where do discovered skills live?
On the repository's `program/*` branches. Switch with `git checkout program/iter-skill-3`, using the branch you want, then take `.claude/skills/` and `.claude/program.yaml`.
Can it run in a container?
Yes. `--docker` runs the loop in Docker and `--remote` executes it in a Daytona sandbox.
How do I resume an interrupted run?
`evoskill run --continue` picks up from the saved frontier instead of starting over.
Does the tool touch my working branch?
No. It writes only to branches prefixed with `program/`.
Discussion
No questions or reviews yet.
Related
CLI toolsA CLI that runs your agent on tasks and revises its skills, keeping a change only when held-out tasks confirm the gain
A catalog of nearly two hundred skills: code delivery, review, debugging, AI governance, product work and agent coordination.
Plugin for Codex, Claude Code, Cursor and Copilot that tests your SKILL.md on tasks and edits it after validation.
A skill that designs, tests, evaluates and packages other agent skills, starting from architecture
The xskill CLI gathers sanitized session trajectories from Claude Code, Codex and OpenCode and grows a shared skill library.
A skill for creating skills that proves them by behavior: before-and-after runs, regression evals and ecosystem audit
README in short
The loop extends GEPA's feedback idea from one prompt to skills and prompts together, producing a new agent program each iteration.