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
CLI

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`.
All reasons and checks

sentient-agi/evoskill

Install

Manual install

curl -fsSL https://raw.githubusercontent.com/sentient-agi/EvoSkill/main/install.sh | bash

The 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 review

Broad 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.

CLI tools

A CLI that runs your agent on tasks and revises its skills, keeping a change only when held-out tasks confirm the gain

CLIBroad access287Repository stars

A catalog of nearly two hundred skills: code delivery, review, debugging, AI governance, product work and agent coordination.

SkillMinimal access174Repository stars

Plugin for Codex, Claude Code, Cursor and Copilot that tests your SKILL.md on tasks and edits it after validation.

PluginExtended access108Repository stars

A skill that designs, tests, evaluates and packages other agent skills, starting from architecture

SkillExtended access212Repository stars

The xskill CLI gathers sanitized session trajectories from Claude Code, Codex and OpenCode and grows a shared skill library.

CLIExtended access129Repository stars

A skill for creating skills that proves them by behavior: before-and-after runs, regression evals and ecosystem audit

SkillExtended access918Repository stars

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.

README badge

Report a problem