Oct 9, 2026

Let Claude Code Grow Its Own Skill Library With autoharness

autoharness is a 10k-star Claude Code plugin that distills skills from your real sessions, merges near-duplicates, and archives the unused — touching only skills it wrote itself.

#tutorial#skill-management#claude-code

Skills decay. The lesson you taught your agent in March is a near-duplicate folder by June, and nobody prunes. autoharness — a 10k-star plugin from Tigerless Labs — makes the skill layer maintain itself: it learns skills from the sessions you were already having, merges same-scenario lessons instead of stacking them, updates skills in use, and archives the ones that stop getting used. It touches only the skills it wrote itself; yours are invisible to it.

Why This Skill Matters

The README frames the bet: the same model on a different harness jumps from 42% to 78% on CORE-Bench (citing the HAL paper), yet the harness — including its skill layer — gets rebuilt by hand every model generation. autoharness automates one slice of that: a skill survives by being adhered to in later sessions, not by a held-out benchmark score, and no resident daemon is needed.

Installation

Type these in the Claude Code input box:

/plugin marketplace add tigerless-labs/autoharness
/plugin install autoharness@autoharness

Then run /reload-plugins or restart Claude Code. Zero config: it watches your sessions and lands learned skills into .claude/skills/ in the background.

One hard requirement: Python 3.11+ must be the python3 on your PATH — autoharness runs entirely as Python with zero third-party dependencies. The README warns that an older interpreter earlier on your PATH (macOS Xcode ships 3.9.6) turns every hook off for the session; autoharness prints a warning on stderr when that happens. Platforms are Linux and macOS.

Real Workflow: Watch a Skill Get Born

  1. Work a few normal turns on anything non-trivial — debug something, work out a workflow. Nothing to invoke; by default a reflection fires after every 50 tool calls, and it counts tool calls, not turns.
  2. Inspect the state directory: ls .claude/autoharness/ shows queued skill proposals (intents/), per-run records (runs/<run-id>.json), and the last run's summary.
  3. A landed skill is a plain folder under .claude/skills/ — a native SKILL.md, plus a .ledger.jsonl recording why it was born or changed, lifecycle counters in .sidecar.json, and the redacted transcript slice that justified it under references/evidence-*.md.
  4. Want a lesson kept right now? Say /learn after working something out; it distills the current session through the same proposal-and-validation chain.
/learn
  1. Start a new session: it opens with a grouped index of the skills autoharness wrote, plus a one-line report of the last run — a rejected proposal says so instead of vanishing.

Tips

  • Speed up the demo loop with environment knobs: AUTOHARNESS_REFLECT_EVERY_N=3 (default 50) makes reflections fire almost immediately, and maturity/capacity knobs shorten the promotion pipeline.
  • Use is counted three ways: a load (the model actually invoked the skill — the only signal that counts toward survival), a view (a session read into its directory), and a patch (an improvement landed). Browsing is not adherence.
  • Retirement is an archive, not a delete: unused skills move to .claude/skills/.archive/<name>/, ledger and evidence intact — move the folder back to revive.
  • Updating means two commands in order — claude plugin marketplace update autoharness, then claude plugin update autoharness@autoharness — plus a restart; the README explains the refresh must come first, or the update may check a stale catalog and report "already at the latest version" when a newer release actually shipped.

When Not to Use This

It is built for Claude Code's plugin and hook system — not for other CLIs. If you want a deterministic, hand-curated library where every skill is reviewed before it lands, an autonomous layer is the wrong trade. And if your python3 is older than 3.11 and you cannot change it, the hooks will not fire at all.


See the leaderboard for more skills.