Makes your AI agent think like the laziest senior dev in the room. The best code is the code you never wrote.
Skill mesh plugin for Claude Code and Codex
Rune packages a connected skill ecosystem for AI coding assistants. Instead of isolated prompts, it uses many small agents, hooks, and rules that can call each other and share signals, so work can move through a structured workflow.
Builders who want their agent to use reusable skills, route work through subagents, and follow a consistent workflow.
You can run larger agent-led tasks with more structure, better handoffs, and fewer re-explanations.
What it does
Connected skill mesh
67 skills are linked through explicit outbound calls and acknowledgements, so the system can route work across related skills instead of treating each one as isolated.
Many role-based agents
The `agents/` directory contains task-specific agents such as `coder`, `review`, `research`, `design`, `test`, `deploy`, and `verification`.
Plugin packaging for multiple runtimes
The repo includes native plugin manifests for Claude Code and Codex in `.claude-plugin/` and `.codex-plugin/`.
Workflow and guardrail docs
Docs such as `docs/SKILLS.md`, `docs/MESH-RULES.md`, `docs/HOOKS.md`, and `CLAUDE.md` define how the mesh behaves and how tasks should flow.
Compiler and validation layer
The `compiler/` directory contains parser, transformer, emitter, status, doctor, and visualizer code used to build and check the mesh.
Evals and extensions
`evals/` contains benchmark and validation sets, and `extensions/` groups domain packs for different kinds of work.
How to get it
- 1After installing Rune, run the wizard once to wire native hooks and platform-compiled…
npx @rune-kit/rune setup
- 2Non-interactive mode (CI / scripted)
npx @rune-kit/rune setup --here --platform codex --preset gentle --tier pro npx @rune-kit/rune setup --here --platform all --preset strict --tier pro,business npx @rune-kit/rune setup --here --no-tier --dry # preview without writing
- 3Run
# Install via Claude Code CLI claude plugin add rune-kit/rune
- 4Run
# From the project that should receive Rune npx @rune-kit/rune setup --here --platform codex # Paid tiers are compiled through the Codex adapter too npx @rune-kit/rune setup --here --platform codex --tier pro,business
- 5Run
# Compile Rune skills for your platform npx @rune-kit/rune init # Or specify platform explicitly npx @rune-kit/rune init --platform cursor npx @rune-kit/rune init --platform windsurf npx @rune-kit/rune init --platform antigravity
README
Less skills. Deeper connections.
A lean, interconnected skill ecosystem for AI coding assistants.
67 skills · 248 connections · 46 signals · 13 platforms · MIT
Claude Code (native plugin) · Cursor · Windsurf · Google Antigravity · OpenAI Codex · OpenCode · Aider · GitHub Copilot CLI · Gemini CLI · Qoder · Qwen Coder · any AI IDE
Why Rune?
Most skill ecosystems are either too many isolated skills (540+ that don't talk to each other) or rigid pipelines (A → B → C, if B fails everything stops).
Rune is a mesh — 67 skills with 248 connections + 46 signals across a 5-layer architecture. Every declared outbound call is acknowledged by its target, forming resilient workflows that adapt when things go wrong.
Pipeline: A → B → C → D (B fails = stuck)
Hub-Spoke: A → HUB → C (HUB fails = stuck)
Mesh: A ↔ B ↔ C (B fails = A reaches C via D→E)
↕ ↕
D ↔ E ↔ F
Benchmark: With Rune vs Without Rune
We ran 10 standardized coding tasks on Claude Code — once without Rune (vanilla), once with Rune — and measured tokens, cost, duration, and correctness.
Headline Results
Without Rune With Rune Delta
Avg Tokens: 541,400 454,491 ↓ 16%
Avg Cost: $0.69 $0.65 ↓ 6%
Avg Duration: 2.3 min 2.1 min ↓ 9%
Avg Tool Calls: 14 13 ↓ 7%
Correctness: 9/10 9/10 =
Where Rune Shines: Complex Tasks
| Task | Difficulty | Tokens | Cost | Duration | Tools |
|---|---|---|---|---|---|
| Refactor 450-line component | Medium | -62% | -17% | -32% | -27% |
| Full feature (auth + API + tests) | Complex | -36% | -29% | -31% | -27% |
| Add Zod validation | Easy | -9% | -28% | -32% | 0% |
| Dark mode across 6 components | Hard | ~0% | +10% | -7% | -6% |
Rune doesn't make Claude smarter — Claude already knows how to code. Rune makes Claude disciplined. The more complex the task, the more discipline matters.
"Without Rune, Claude writes code that works. With Rune, Claude writes code that lasts."
Full 10-task breakdown
| # | Task | Diff | Tokens | Cost | Time | Correct |
|---|---|---|---|---|---|---|
| 1 | Zod Validation | Easy | -9% | -28% | -32% | ✅ → ✅ |
| 2 | Fix N+1 Query | Easy | +12% | +25% | +3% | ❌ → ❌ |
| 3 | Cursor Pagination | Med | +12% | +19% | -9% | ✅ → ✅ |
| 4 | Security Review | Med | +13% | +32% | +3% | ✅ → ✅ |
| 5 | Rate Limiting | Med | +12% | +5% | +5% | ✅ → ✅ |
| 6 | Refactor Component | Med | -62% | -17% | -32% | ✅ → ✅ |
| 7 | Dark Mode (6 files) | Hard | ~0% | +10% | -7% | ✅ → ✅ |
| 8 | DB Migration | Hard | +52% | +11% | +49% | ✅ → ✅ |
| 9 | Memory Leak Debug | Hard | +13% | +28% | -2% | ✅ → ✅ |
| 10 | Full Auth System | Complex | -36% | -29% | -31% | ✅ → ✅ |
Methodology: Claude Code CLI headless mode (claude -p --output-format json), 10 tasks with fixture code, pattern-based correctness evaluation. Source: Benchmark/
Level Up: Rune Pro
Free gives the agent discipline. Pro adds two capabilities the free tier does not:
- Autopilot — approve a plan once and walk away. It executes each phase autonomously (self-reviews with zero-HIGH gates, regression-checks against baselines, commits per phase) and resumes across sessions.
cookgets the job done;autopilotgets it done while you sleep. - Context Intelligence — a live context cockpit with real %, active mesh layer, cost, and predictive compaction timing. Claude Code hosts the executable statusline natively; Codex uses its built-in footer plus the full Pro watcher/HUD. Hooks save decisions and progress to
.rune/before compaction.
Plus 9 domain packs (product, sales, data-science, support, growth, media, personal-brand, ecommerce, vietnam). $49 lifetime, one-time — no subscription.
What's New (v2.32.0 — Drawing the Mesh)
v2.32.0 (2026-08-16): Rune can finally draw. A new
diagramskill (mediagroup) renders editorial architecture, flowchart, sequence, state, ER, and swimlane figures as self-contained HTML/SVG — inline CSS, inline SVG, no Mermaid renderer, no remote images. v0.1 shipped ten visual types, seven semantic patterns (fan-in queues, attempt stage frameworks, unbroken policy traces…), a 9-node complexity budget, mandatory orthogonal connectors, and a machine-checked geometry gate (self_check.py+verify_geometry.py). v0.2 added extract-then-redraw for Mermaid sources (.mmd/fenced blocks) behind a hard trust boundary — labels are inert data, never instructions — with exit codes that make parse/usage/integrity failures checkable. v0.3 addedloop,layers,data-flow,process, and routing of seven semantic patterns onto layout types; status is always text (PASS/FAIL/BLOCKED), never color-only.ba,scout,docs,slides, andsentinelnow offerdiagramassuggested_next, anddocshands off with an explicitrune:diagramreference — the mesh is now 67 core skills / 248 connections with a clean orphan gate. Separately, thequarantinehook was silently mute: registeredasync: true, which Claude Code never lets injectadditionalContext; it is now synchronous and block reasons actually reach the model. 1,659 tests.
Previous (v2.31.0 — Measured, Not Grepped)
v2.31.0 (2026-08-01): Three checks that passed without measuring anything, and two motion rules that were confidently wrong.
reviewandpreflightchecked thatprefers-reduced-motionappeared in a file — but a guard existing is not the finding. They now catch the failures that grep clean: a dead branch whereif (reduced) returnruns before the end-state helper, one-shotmatchMediawith nochangelistener,duration: 0on sequence-as-content,0swhile something awaitstransitionend, and JS timelines (GSAP/Motion/Lenis) that a CSS media query cannot stop. MOTION-CRAFT§10is now role-first — is the sequence the content, or is it decorating a result that exists either way? — with four reduce strategies instead of "fewer and gentler". Two motion rules were fixed outright:ease-inis wrong on arrival but right on departure and falling, and easing chosen by name says nothing about whether a large rotation strobes —peak = maxSlope × travel / durationagainst a ~30°/frame ceiling, so a 360° turn needs ~1050ms on ease-out-expo (slope 5.26) and ~365ms on a sine-ish curve (1.82). New§14 SVG motion mechanicscovers user units vs screen pixels,pathLength, per-instance ids, and the six SVGO plugins that destroy an animated SVG at build time. Finally,completion-gategains rule 6 — a tool that measured nothing promotes nothing: "no difference found" and "no measurement taken" are the same output, so a null result promotes a claim to OBSERVED only once the instrument is shown capable of returning something else, andverificationnow requires every clean result to carry the size of what it examined. 1,653 tests.
Earlier (v2.30.3 — Say What You Mean)
v2.30.3 (2026-07-29): Claude Code 2.1.218 changed
context: forkto run in the background by default (opt out with background: false), and six Rune skills were relying on the old default without saying so —cook,team,launch,rescue(every L1 orchestrator), plusscoutanddocs-seeker. A background fork reports back as a task notification instead of returning in-line, which silently breaks any caller that needs the result:cookwaiting onscoutis exactly that shape, and it fails looking like the sub-step did nothing. All six now declarebackground: false, andvalidate-skills.jsfails on any fork skill that leaves it unstated — writing that gate is what surfaced four of the six. Measured honestly: on 2.1.220 in headless mode a 12-second fork returned in-line either way, so this removes a dependency on an unstated default the vendor has announced changing, rather than fixing a reproduced break. 1,653 tests.
Earlier (v2.30.2 — Blocked, With a Reason)
v2.30.2 (2026-07-29): Finishes the hook I/O sweep, plus the fault that sweep uncovered. Claude Code shows the model only stderr for an exit-2 block, and
pre-tool-guardexplained itself on stdout — so a blocked read surfaced ashook error: […]: No stderr output. The block worked; the model just never learned why, and could only guess whether to stop or route around it. NewemitBlock()writes the reason to stderr (Claude Code) and the envelope to stdout (Codex), then exits 2 — verified end-to-end by the model quoting the reason back. Three hooks v2.30.1 missed are also fixed:quarantinehand-built its envelope and shipped it withprocess.stdout.writeright beforeprocess.exit(0), whileauto-formatandtypecheckprinted bareconsole.logwith no envelope at all (unflushed on Claude Code, rejected outright by Codex). Two new repo-wide gate tests — no hook writes stdout directly, no hook reads stdin asynchronously — so a new hook cannot reintroduce either. 1,651 tests.
Earlier (v2.30.1 — Hooks That Land)
v2.30.1 (2026-07-29): Five hooks had been running, exiting 0, and reaching nobody — nothing logged an error, so the hook layer looked healthy while contributing nothing. Two independent faults, each fatal on its own:
process.stdout.writefrom an exit handler is not guaranteed to reach a piped stdout (most hooks emit viacaptureConsole, which flushes on exit — the envelope was built, "written", and lost; nowfs.writeSync(1, …)), and a hook that collects stdin with an async listener has its stdout discarded by Claude Code even when the write is synchronous (newhooks/lib/hook-stdin.cjsreads withreadFileSync(0);intent-router,context-watch,metrics-collector,pre-tool-guard,quarantineconverted). Both isolated by differential test — identical hooks, one variable at a time — and confirmed by the model quoting hook-injected context back. Separately,intent-routernever had an index to read:skill-index.jsonis emitted at build time and Claude Code doesn't compile, so all five candidate paths were missing and it exited silently on every prompt since it shipped. Newscripts/build-skill-index.jsgenerates it at the plugin root with a--checkstaleness gate in CI. It was also registered"async": true, which dropsadditionalContextoutright. 1,649 tests.
Earlier (v2.30.0 — Tier Restored)
v2.30.0 (2026-07-29): Rune's model tier table had quietly stopped applying on Claude Code, and had been wrong in 23 of 66 places for longer than that.
agents/*.mdis a hand-written parallel copy of each skill's tier; nothing generated it fromskills/and no check compared the two, so they drifted —cooksaid opus in one file and sonnet in the other,verificationsaid sonnet and haiku.skills/*/SKILL.mdis now the single source of truth, every pair agrees, and a newvalidateAgentSyncgate fails CI on any future drift, alongside a model-split check and a warning for a top-levelmodelthat cannot take effect. Where the two disagreed the tier was decided by role, with one rule overriding both old values: a gate never runs below sonnet —completion-gate,constraint-check,integrity-check,hallucination-guard, andverificationexist to catch unverified claims, so running them cheaper than the agent they audit defeats the point. Separately: tiering only ever applied through spawned subagents, and on Opus 5 the harness tells the model not to spawn them unless asked — so every tier assignment had become a silent no-op.scoutanddocs-seekernow declarecontext: fork+model: haikuand route through the Skill tool instead; verified end-to-end on Opus 5 by per-model billing showingclaude-haiku-4-5.cookdeliberately declares no model — an orchestrator inherits the session model, because choosing Opus for a session is a deliberate act. 1,647 tests.
Earlier (v2.29.1 — One-Command Update)
v2.29.1 (2026-07-24): v2.29.0 documented the update flow; this release automates it. New
rune updatecommand — one-shot updater for an already-configured project:git pull --ff-onlyany detected Pro/Business tier repos (env var → sibling dir, same detection as setup; a failed pull aborts loudly, never a silent half-update), re-runs the managed setup rewrite in place non-interactively (your installed platforms, preset, and tiers are detected from the existing hook config — no prompts), then verifies with doctor + hook drift and reminds Codex users to re-trust/hooksonly when.codex/hooks.jsonactually changed. Flags:--no-pull,--preset,--tier,--dry. Plus: "Updating" sections in all three tier READMEs. Docs-and-CLI patch — no skill or mesh changes. 1,641 tests.
Earlier (v2.29.0 — Codex Native)
v2.29.0 (2026-07-23): Codex stops being a compile target that happens to work and becomes a first-class native runtime. The Codex adapter now emits everything current Codex supports natively —
.agents/skills/, project-scoped agent TOML (.codex/agents/rune-{heavy,standard,fast}.toml), a dedicated synchronous hook adapter targeting.codex/hooks.json(Codex silently skips async handlers), MCP config, and tier-aware compilation so Free/Pro/Business stacks resolve exactly as on Claude Code. The mesh validator was fixed at the root —Calls (outbound)is now the single authoritative edge inventory, acknowledged by the target'sCalled By— moving the canonical count from 209 to 248 connections (same mesh, honest count; doctor now fails CI on any stale claim). Doctor also grew a cross-tier audit: Business metadata (28 pack skills, 4 orchestrators), $149 pricing, 13-platform count, and JSON-schema validation of the newdocs/config-schema.json+ hooks manifest schema. All XLabs remote-MCP references now go throughXLABS_MCP_TOKEN— plaintext bearer values are forbidden. 1,615 tests pass.
Earlier (v2.28.0 — Reasoner's Blind Spots)
v2.28.0 (2026-07-22): Completes the reasoning wave. Every addition targets one failure class: a check that feels done because the model re-read its own work and agreed with itself.
problem-solver(v0.6.0) gains a model failure-mode table beside its human-bias table — pattern-match satisfaction, template hijack, fluent≠true, prior-as-fact, completion pressure, surface blindness — plus three tells that you are inside one right now (instant confident answer; a stated detail your draft never used; two failed attempts in the same framing).verification(v0.8.0) gains the Constraint Loop for deliverables carrying a mechanically checkable constraint on their own surface form (banned characters, exact counts, strict formats) — a class Rune had no coverage for: expand the constraint before drafting, verify with a tool, re-scan the whole artifact, ship byte-for-byte.design(v0.9.0) gains render blindness — a checklist item ticked from source is a prediction, and the imagined render is always flattering; visual items are marked 👁 and are ticked from a render or marked ASSUMED. Advisory throughout, no new skills.
Earlier (v2.27.0 — Calibrated Output)
v2.27.0 (2026-07-22): Rune had one opinion about response shape —
caveman, optimising token count — and no rule for what a style may not compress. That gap had teeth: caveman's "hedging dies" list auto-activates at ORANGE/RED context and deleted phrases like "I'm assuming the migration ran", promoting an unverified claim into observed grammar at exactly the point in a session where the agent is most likely to be wrong. New output-mode layer (context-engine) holds every mode behind one activation contract and a five-rule precedence list — shape is negotiable, substance is not: calibration > evidence > a skill's## Output Format> safety > actionability > economy. Newactionablemode optimises distance-to-doing (next action first, steps numbered, position restated each turn) and stacks with caveman. New claim discipline incompletion-gatetypes every load-bearing statement OBSERVED / DERIVED / PRIOR / ASSUMED — hallucination is an unverified claim wearing the grammar of an observation — and adds aDECLAREDverdict so an honest hedge is recorded as an open item, never scored as a lie.
Earlier (v2.26.2 — Hook Output Contract)
v2.26.2 (2026-07-22): The other half of the Codex wiring fix — v2.26.1 made the hook matchers fire, this makes the hooks succeed. Codex parses hook stdout as JSON and reports anything else as
hook: <Event> Failed, discarding the output; Rune's hooks printed bare[Rune: ...]lines, so every hook that loaded on Codex ran, exited 0, and had its output thrown away. Hooks now emit the envelope both runtimes accept —hookSpecificOutput.additionalContextfor context events,systemMessageotherwise — which is Claude Code's documented contract too, not a Codex branch. Verified live against codex-cli 0.145: the same hook goesSessionStart Failed→SessionStart Completed.
Earlier (v2.26.1 — Codex Wiring)
v2.26.1 (2026-07-22): Rune's runtime hooks were silently inert on Codex CLI.
hooks/hooks.jsonis loaded by both Claude Code and Codex — Codex reads<plugin>/hooks/hooks.json, the same path, and maps the event names — but every tool matcher named only Claude's tools. Codex has noRead,Write,EditorBashtool; it issuesshell_command,exec,apply_patch,view_image,spawn_agent. So the privacy gate and the secret scanner matched nothing and never fired. Matchers now name both platforms' tools (plain alternation — Claude behaviour is byte-for-byte unchanged), andpre-tool-guardreads the target path out of a Codexapply_patchpayload (*** Update File: <path>), which is what makes it an actual gate there instead of a no-op. Codex skipsasynchooks; current releases therefore ship a separate synchronoushooks/codex-hooks.jsonthrough the native Codex plugin manifest.
Earlier (v2.26.0 — Motion Craft)
v2.26.0 (2026-07-18): Rune's UI mesh gains a deep motion authority. New reference
skills/design/MOTION-CRAFT.mdis the canonical source for animation decisions: the should-it-animate frequency gate (never animate keyboard/100+-per-day actions), easing decision tree with strong custom curves, per-element duration budgets (UI under 300ms, modals/drawers exempt to 500ms), physicality rules (neverscale(0), origin-aware popovers, press feedback), spring physics (damping/response, velocity handoff, momentum projection, rubber-banding), interruptibility (transitions vs keyframes,@starting-style), motion performance, reduced-motion, and a reverse-lookup vocabulary glossary.design(v0.8.0) loads it whenever a domain involves motion and gains an advisory motion-audit mode.review(v1.5.0) adds Motion Craft Checks — an advisory lens that fires only on motion diffs, flaggingease-inon UI,scale(0)entrances, animation on high-frequency actions, layout-property animation, and more, citing MOTION-CRAFT for exact fixes.perf(v0.6.0) adds Step 5.5 Motion Performance — GPU-property, Framer-Motion-shorthand, and recalc-storm detection ranked in the Cost Impact Hierarchy. Advisory-first throughout (no new HARD-GATEs) — enrichment only, mesh unchanged at 66 skills.
Earlier (v2.25.0 — Council)
v2.25.0 (2026-07-11): New
councilL3 primitive — genuinely decorrelated multi-perspective gathering. Detects installed AI CLIs, fans a question across distinct model families (external CLIs when present, subagents when not), gates off-topic/malformed voices, normalizes claims (anchor-first + shared-evidence arbiter fallback — prose similarity never counts), and arbitrates inline with an honestNO_DECORRELATIONstamp when fewer than 2 real model families answered. Wired into 4 consumers:adversary(CRITICAL-tier plans),review(high-blast-radius diffs),brainstorm(Design-It-Twice candidate judgment),problem-solver(high-stakes conclusions) — every integration explicitly refuses to launder a same-family run as independent confirmation. Live-dogfooded same day: a real 3-voice self-test (externalgrokdispatch + 2 subagent fallbacks) independently converged on a real gap — "confirmed"model_familywas CLI-brand identity, not verified backend identity, letting two CLIs redirected to the same backend (BYOK/proxy override) defeat the gate — fixed before shipping. Pro:council-cockpit(separate repo) adds a read-only live panel + cost-aware allocation + history-informed family weighting, PRE-council advisory only — Free never depends on Pro. Mesh now 66 skills / 208 connections / 45 signals.
Previous (v2.24.0 — Market Refresh)
v2.24.0 (2026-07-11): Model lineup + platform adapters refreshed to the mid-2026 landscape. Claude tiers across the mesh → Opus 4.8 / Sonnet 5 / Haiku 4.5; the Codex adapter initially targeted GPT-5.6
sol/terra/luna. Current releases usesolplusterraat different reasoning efforts becauselunais not a valid current Codex model. Fable 5 is positioned as an API-only frontier oracle target rather than a routing tier (opus stays the ceiling). Windsurf → Devin Desktop rebrand documented (emission kept on.windsurf/, which Devin still reads). New goal-first advisory inplan/bato leverage native/goal+ Managed Agents Outcomes. CI 1572/1572.
v2.23.0 (2026-07-04): Seven platform adapters move to the Agent Skills open standard (dir-per-skill
SKILL.md, discovered and lazy-loaded by each platform's native loader). The headline fix: Codex dropped.codex/skills/from its scan list, so compiled skills were only findable via the AGENTS.md pointer — agents kept "re-finding" the path mid-session. Codex now emits to.agents/skills/(scanned CWD → repo root). Same treatment across the fleet: cursor.cursor/rules/*.mdc→.cursor/skills/(Cursor 2.4+ Skills, on-demand instead of always-on), windsurf →.windsurf/skills/(Cascade Skills)
Files in the repo
- .claude-plugin
- .codex-plugin
- .github
- agents
- assets
- commands
- compiler
- contexts
- docs
- evals
- extensions
- hooks
- references
- scripts
- skills
- .gitignore
- .npmignore
- biome.json
- CHANGELOG.md
- CLAUDE.md
- CONTRIBUTING.md
- LICENSE
- package-lock.json
- package.json
- README.md
- ROADMAP.md
- skill-index.json
Discussion (0)
Ask about usage, or say what you built with itSign in to join the discussion.
No comments yet. Be the first to say what this is good for.
More plugins

Graphs that teach > graphs that impress. Turn any code into an interactive knowledge graph you can explore, search, and ask questions about. Works with Claude Code, Codex, Cursor, Copilot, Gemini CLI, and more.
OmO: Just type "mass ulw" keyword with your prompt. Now you are the master of graph engineering.
Persistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More
Opinionated Oxlint rules for rejecting low-evidence TypeScript and JavaScript patterns
Teams-first Multi-agent orchestration for Claude Code