Governor — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Governor (Plugin) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
A bulleted imperative like {match} tells the agent to never reveal, disclose, or mention something to the user. Used adversarially it can instruct the agent to hide its tool calls or lie about what it did — stripping the transparency a user relies on to trust the agent.
Every scanned point with the score it earned and what moved between them.
Score rose 4 points between these scans.
The primary manifest — the file an agent reads to learn what this artifact does.
<p align="center"> <img src="assets/governor-icon.png" width="128" alt="Governor icon" /> </p>
<h1 align="center">Governor for Claude Code</h1>
<p align="center"> <strong>Keep long AI coding sessions sharp under quota pressure.</strong> </p>
<p align="center"> Now also works with Cursor · Windsurf · Cline · Codex CLI · Gemini CLI · Hermes · DeepSeek </p>
<p align="center"> <img alt="Claude Code" src="https://img.shields.io/badge/Claude%20Code-plugin-6D4AFF" /> <img alt="Cursor" src="https://img.shields.io/badge/Cursor-skill-00A67E" /> <img alt="Windsurf" src="https://img.shields.io/badge/Windsurf-skill-3B82F6" /> <img alt="Cline" src="https://img.shields.io/badge/Cline-skill-F59E0B" /> <img alt="Codex CLI" src="https://img.shields.io/badge/Codex%20CLI-skill-10A37F" /> <img alt="Gemini CLI" src="https://img.shields.io/badge/Gemini%20CLI-skill-4285F4" /> <img alt="Hermes" src="https://img.shields.io/badge/Hermes-skill-E44D26" /> <img alt="DeepSeek" src="https://img.shields.io/badge/DeepSeek-skill-536DFE" /> <img alt="Version" src="https://img.shields.io/badge/version-0.2.5-black" /> <img alt="License" src="https://img.shields.io/badge/license-MIT-0F766E" /> </p>
<p align="center"> <a href="#quick-start">Quick Start</a> · <a href="#multi-agent-support">Multi-Agent</a> · <a href="#why-governor">Why Governor</a> · <a href="#benchmarks">Benchmarks</a> · <a href="#commands">Commands</a> · <a href="#install">Install</a> </p>
Governor started as a Claude Code plugin for context hygiene, tool-output filtering, memory compression, telemetry, and drift guardrails.
As of v0.2.4, Governor's core behavior — content-aware tool-output filtering and context hygiene — works with any AI coding agent via prompt-based skills. No hooks or MCP required.
Keep long coding sessions efficient without making the model dumber.
The Claude Code command namespace is /governor:*.
bash install.sh --forceRestart Claude Code. Filtering, compact mode, and telemetry are already running — there is nothing to turn on. When you want to look under the hood:
/governor:status
/governor:audit
/governor:compress CLAUDE.mdbash install.sh --project /path/to/project --agents allThis copies a Governor rules file into your project for each agent. The rules teach the agent to self-filter noisy tool output, preserve unique data, and maintain context hygiene — automatically, every session.
Governor works at two levels:
| Agent | Integration | What You Get |
|---|---|---|
| Claude Code | Plugin with hooks | Full: auto-filtering, telemetry, compression, drift guard, /governor:* commands |
| Cursor | .cursor/rules/governor.mdc | Self-filtering, compact mode, context hygiene |
| Windsurf | .windsurf/rules/governor.md | Self-filtering, compact mode, context hygiene |
| Cline | .clinerules/governor.md | Self-filtering, compact mode, context hygiene |
| Codex CLI | AGENTS.md | Self-filtering, compact mode, context hygiene |
| Gemini CLI | GEMINI.md | Self-filtering, compact mode, context hygiene |
| Hermes 🆕 | .hermes.md | Self-filtering, compact mode, context hygiene |
| DeepSeek 🆕 | .dsh/rules/governor.md | Self-filtering, compact mode, context hygiene |
How it works for non-Claude agents: Governor's rules file teaches the agent to apply content-aware filtering itself. When tool output has >40% duplicate lines (test failures, log spam, build warnings), the agent compresses it — keeping the first error, file:line, and exit code. When output is unique (API responses, JSON, code), it passes through intact. No external dependencies.
Claude Code gets the deepest integration because it supports plugin hooks. Other agents get the core behavior via prompt engineering.
Long coding sessions usually do not fail because the AI writes one extra paragraph.
They fail because context gets polluted:
CLAUDE.md, notes, and rules tax every sessionGovernor is designed for that failure mode — in Claude Code and beyond.
| Capability | What it does | Where it works |
|---|---|---|
| Tool-output filtering | Compacts noisy output when content is repetitive; preserves unique data | All 8 agents |
| Compact mode | Keeps responses concise and professional | All 8 agents |
| Context hygiene | Avoids re-reads, broad scans, and context waste | All 8 agents |
| Memory compression | Rewrites bloated prompt files into denser, safer forms | Claude Code |
| Telemetry | Reports measured savings, failures, compactions, and waste heat | Claude Code |
| Drift guardrails | Adds planning and scope checks for broad tasks | Claude Code |
Most token-saving tools optimize one layer:
Governor is built for the broader session problem:
That is why Governor's benchmark story starts with valid-context loss and decision preservation, not only token counts.
Recent measured Sonnet run with Claude decision grading:
| Condition | Avg token savings | Avg VCLR | Decision preserved | Wrong decision |
|---|---|---|---|---|
| Caveman | 69.1% | 0.14 | 87.5% | 12.5% |
| Governor | 45.5% | 0.00 | 100.0% | 0.0% |
What this means:
Artifacts:
benchmarks/v2-fixture-results.mdbenchmarks/v2-fixture-results.jsonbenchmarks/sonnet-v2-report.mdSame machine, fresh Claude CLI Sonnet sessions, same multi-turn task, same starting repo snapshot.
| Condition | Output Tokens | Cost | Turns | Intent Preserved | Obvious Regression Found |
|---|---|---|---|---|---|
| Control | 10,997 | $0.5169 | 21 | Yes | No |
| Governor | 10,113 | $0.4933 | 22 | Yes | No |
| Delta | -8.0% | -4.6% | +4.8% | Tie | Tie |
This was a narrow pilot, not a universal claim. It matters because Governor kept the implementation contract intact while shaving cost on a real multi-turn coding task.
Structured/local cases focused on the criticism that compaction can miss the real clue.
| Case | Filtered? | Blocked | Signal Preserved |
|---|---|---|---|
| Noisy pytest failure buried in long log | Yes | 64.0% | Yes |
| Burp-style MCP payload with large history + one critical finding | Yes | 90.9% | Yes |
Large Read output containing source code | No | 0.0% | Yes |
Governor sits in a different layer from the other token-savers, so it stacks with them rather than replacing them.
| Tool | Shrinks | Overlap with Governor |
|---|---|---|
| Ponytail | The code the agent writes | None |
| Caveman | The prose the agent speaks | None |
| RTK | The shell output you pipe through it | Partial |
| Governor | The context the session consumes | — |
Ponytail is a YAGNI enforcer: before writing code it walks a ladder — does this need to exist, is it already in the codebase, does the stdlib or platform do it — and stops at the first rung that holds. Their published benchmark reports ~54% less code written against a no-skill baseline. Those are their numbers on their fixtures, not something Governor has independently reproduced.
Ponytail does not read tool output. Governor does not touch code generation. Run both: Ponytail keeps the agent from over-building, Governor keeps the test logs and MCP payloads from that build out of your context window.
RTK is excellent at shrinking shell output.
Governor is aimed at the wider coding session:
Caveman is excellent when the main goal is making Claude talk in fewer tokens.
Governor is built for the broader session problem:
Short version:
Ponytail shrinks what gets built. Caveman shrinks what gets said. RTK shrinks what a command prints. Governor protects the session that holds all three.
Governor is best for:
Governor is less useful for:
content is repetitive noise (>40% duplicate lines). Unique data — API responses, Burp proxy history, curl output, structured JSON — passes through unfiltered. Works in all supported agents.
In Claude Code via hooks; in other agents via rules files.
/governor:compress CLAUDE.md rewritesverbose memory files into dense prose. (Claude Code)
env vars, versions, headings, tables, and warnings are preserved.
restored instead of pretending success.
GOVERNOR_FULL=1 as an env var in thesame Bash call to skip compaction without a separate command. Immune to parallel-call cancellation.
/governor:status reports blocked tokens, failures,compactions, and statusline snapshots when available. (Claude Code)
checks by running /governor:plan again. (Claude Code)
Governor is designed to work without commands. Everything below is optional.
| Behavior | When it runs |
|---|---|
| Tool-output filtering | Every tool call, once output is noisy and large |
| Compact response mode | Every session, from the moment the plugin loads |
| Telemetry + statusline | Continuously in the background |
| Prompt-risk suggestions | When a prompt would trigger a broad scan or retry loop |
| Mode switching by plain language | "turn off governor" / "enable governor" |
| Full output for one command | Prefix it: GOVERNOR_FULL=1 pytest -vv |
| Command | Purpose | |||
|---|---|---|---|---|
/governor:status | Usage dashboard, waste heat map, current mode | |||
| `/governor:mode [on\ | off\ | full\ | strict]` | Control Governor; no argument reports current mode |
/governor:audit [paths] | Find bloated memory/rule files and context waste | |||
/governor:compress [level] [file] | Compress memory files with protected-span validation | |||
/governor:plan "task" | Write an implementation contract; run again later to check drift |
/governor:plan picks its phase automatically: no saved contract for this project means it writes one, an existing contract means it reports drift against it. Contracts are scoped to the project that created them.
Two things that used to be slash commands are now plain scripts:
python3 scripts/run_benchmark.py # was /governor:benchmark
python3 scripts/install_rules.py --project . --agents all --force # was /governor:install-rulesgh repo clone 0xhimanshu/governor
cd governor
bash install.sh --forcebash install.sh --project /path/to/project --agents allOr install for specific agents:
bash install.sh --project . --agents cursor,windsurf
bash install.sh --project . --agents cline,codex,gemini
bash install.sh --project . --agents hermes,deepseekclaude --plugin-dir ./governor:compress is automatic from the user's point of view:
Compression levels:
| Level | Target |
|---|---|
light | Remove filler and repetition; preserve most rationale |
medium | Collapse narrative into decision bullets |
aggressive | Keep only rules, facts, commands, risks, and decisions |
Set GOVERNOR_ALLOW_LOW_SAVINGS=1 only if you intentionally want to keep a low-savings compression result.
Governor stores a local JSONL ledger. The status command automatically discovers and merges ledger files from all known locations, including the plugin data directory set by Claude Code (CLAUDE_PLUGIN_DATA) and the manual fallback path. Deduplication uses resolved paths so symlinks and non-canonical paths do not cause double-counting.
It tracks:
Use benchmarks/ for measured comparisons.
Recommended conditions:
control: no token/style plugincaveman: Caveman enabled as normalgovernor-hooks: Governor hooks enabled, memory unchangedgovernor-compressed: Governor after /governor:compress CLAUDE.mdgovernor-strict: optional strict-mode run for broad tasksRun:
python3 scripts/run_benchmark.py \
--write-json benchmarks/v2-fixture-results.json \
--write-md benchmarks/v2-fixture-results.mdRefreshing the captured Caveman and Governor comparator replays is documented in benchmarks/README.md.
/governor:status will show little or no telemetry.Do not compress secrets or sensitive private files.
GOVERNOR_FULL=1, orrun /governor:mode full before the diagnostic step.
GOVERNOR_DEFAULT_MODE=off.
Contributions are welcome when they make Governor more useful, safer, or easier to trust. Please read CONTRIBUTING.md before opening a pull request, especially for compression, hook, telemetry, agent rules, or benchmark changes.
<a href="https://star-history.com/#0xhimanshu/governor&Date"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=0xhimanshu/governor&type=Date&theme=dark" /> <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=0xhimanshu/governor&type=Date" /> <img alt="Star History Chart" src="https://api.star-history.com/chart?repos=0xhimanshu/governor&type=Date" /> </picture> </a>
MIT. See LICENSE.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.