Rudder is a local plugin for Claude Code and Codex that generates tests directly from your prompts. Rudder forces your agent to write tests solely from your session history, turning test coverage into a proxy for how much of your generated code resulted from your own decision making.
Why use it: Coding agents are now generating mass amounts of code, but with very little oversight into whether that code actually reflects the intent of the developer. Rudder solves this by using the age-old method of checking if code does what its supposed to do--unit testing.
How it works: Rudder installs hooks in your coding agents to record the repository and branch that your agents are working in. When invoked at the end of a session, Rudder instructs your agent to rewrite unit tests with the requirement that each test is tied directly to a prompt recorded for your working branch. Rudder uses the repository's own test and coverage tools, and test generation stays with the coding agent and model you already use.
- Node.js 24 or newer
- npm and Git on
PATH - A current Claude Code or Codex installation with plugin support
Add the Rudder marketplace:
/plugin marketplace add RudderCode/Rudder
Install the plugin:
/plugin install rudder@rudder
Restart the session before running Rudder.
Add the Rudder marketplace:
codex plugin marketplace add RudderCode/Rudder
Install the plugin:
codex plugin add rudder@rudder
Start a new Codex session and review the bundled prompt hook when Codex asks you to trust it.
Build your feature in a Git branch as usual, then ask your agent:
Run Rudder
You can also provide it an explicit coverage target:
Use $rudder to verify this branch at 90% coverage.
Rudder inspects the branch and session before proposing a test reset. Review the exact paths if tests have already changed. Approve the backup and reset only when those paths are correct.
- Bring your own agent (BYOA): Rudder is a plugin for your existing coding agent, and runs directly in your agent's coding session.
- Multi-agent support: Install hooks into each of your coding agents to aggregate sessions across multiple providers.
- Local storage: Your prompt data used by Rudder is stored in a local SQLite DB and never leaves your device.
- Easy setup: Plugin installation is the only requirement to get started using Rudder.
The prompt hook links submitted prompts to the active repository and branch. Records are stored in a local SQLite database:
~/.rudder/rudder.db
Set RUDDER_HOME to use a different state directory.
The current plugin does not transmit captured prompts to RudderCode. Your coding agent may process that context when you invoke Rudder. Its provider terms and configuration still apply.
You can also ask the installed skill to:
- show the local storage path, capture status, and prompt count; or
- delete all stored prompt records after explicit confirmation.
See the privacy notice for the complete data-handling description.
Clone the repository, install dependencies, and run the validation suite:
npm ci
npm run format:markdown:check
npm run typecheck
npm test
npm run buildnpm test uses Node's built-in test runner and rebuilds the bundled prompt hook
before running the suite.
To load the repository directly in Claude Code during development:
claude --plugin-dir .See the installation guide for local Codex setup and the published-package workflow.
We welcome contributions! Please read our Contributing Guide and Code of Conduct before getting started.
Rudder is licensed under the Apache License 2.0.