The thesis
Skills should be managed like dependencies.
AI coding agents accumulate instructions in markdown files. These files
encode hard-won workflow knowledge -- how to run CI, how to write in
voice, how to handle upstream contributions. Without a registry, every
project maintains its own copy. rune treats skills like packages:
versioned, synced, with drift detection when local edits diverge from
the registry.
How it works
One config file defines your registries. One manifest per project
declares which skills to sync. rune handles the rest.
Registries
Git repositories containing skill directories. Public registries
for shared workflows, private registries for proprietary methodology.
Configured globally in ~/.config/rune/config.toml.
Manifests
Each project declares its skills in .claude/rune.toml.
Maps skill names to registries. rune sync pulls the right version of
each skill into .claude/skills/.
Drift detection
A Claude Code hook runs on session start. If local skill files have
diverged from their registry source, the agent is told before it starts
work. No silent staleness.
Bidirectional sync
rune push sends local edits back to the registry.
Skills evolve where they're used, then propagate to every project
that syncs from that registry.
Upstream imports
Import skills from upstream registries (community, vendor) into
your own. Track upstream versions. Pull updates selectively.
Fork when you need to diverge.
Platform-agnostic
Works with Claude Code, Cursor, Windsurf, Copilot, Gemini CLI.
Skills are markdown files in a directory convention. The agent reads
them. rune manages them.
Commands
rune setupone-time config + hook install
rune initcreate project manifest
rune add <skill> --from <reg>add a skill
rune syncpull latest from registries
rune checkshow drift
rune push <skill>push local changes back
rune browse <registry>discover available skills
rune import <skill>@<upstream>import from upstream