pi-warden
Pi guardrails on pi-typesafe that steer the agent: Jev checks rule breaks, irreversible actions, stuck loops and unverified done claims.
Overview
pi-warden adds guardrails to the Pi coding agent that steer the agent instead of interrupting you. When the agent says done with no test, build or lint behind it, it is sent back to prove it; when it guesses a cause without checking, it is asked to verify or say it is unverified; when it breaks a rule in pi-warden.md or AGENTS.md, the exact rule is quoted; destructive commands like force-push, reset --hard, rm -rf or DROP are held before running (by a built-in pattern without a key, and by a Jev cannot-be-undone score of 0.9 or more with one). It also asks for a new hypothesis after a third identical failing fix, flags stubs and hardcoded secrets, trims huge logs and stops runaway repetition.
The README reports, from 16 days of the maintainer's use, 1,168 sessions, 419 risky actions stopped before running, and 76% of fake done claims turned into real test runs; in a replay of 18,075 calls, 0.1% were held at the default 0.9 threshold. It builds on pi-typesafe for the shared client. Offline guards run without a key. MIT licensed.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | Does this write or edit break a rule in pi-warden.md? | yes · no |
| Score | How likely is this action to be impossible to undo? | — |
| Yes / no | Did the agent verify its done claim? | yes · no |
How it works
- Run offline guards (patterns, loop detection).
- With Jev enabled, judge rule compliance and irreversibility.
- Steer the agent with specific feedback; hold irreversible actions.
- Record calibration data and reports.
Strengths
- Steers rather than nags; few holds at default threshold.
- Field-measured results from real use.
- Offline guards without a key.
Caveats
- Field data from one maintainer's projects.
- Some guards are beta or experimental.
Getting started
pi install npm:pi-warden, then /warden enable and /warden init.At a glance
- Type
- Hook
- Status
- beta
- Language
- TypeScript
- Runtime
- Pi extension
- Has code
- yes
- Has tests
- yes
- License
- MIT
Use cases and integrations
How curated lists describe it
Pi guardrails on pi-typesafe: held tool results instead of a dialog; write checks against a project rules file.
AnotiaWang/awesome-decision-modelsAdds checks for project rules, out-of-scope actions, repeated failures, and completion claims to Pi Agents.
logicrw/awesome-jev-projectsPi extension that judges rule compliance, risky actions, stuck loops, and completion claims; enforcement depends on the hook and policy.
cobanov/awesome-jevGuardrails for Pi built on pi-typesafe that steer the agent instead of interrupting you: Jev judges irreversible and off-task tool calls, detects stuck loops, checks unverified done claims, flags slop.
hellogumbo/awesome-jevGuardrails for the Pi coding agent. Jev judges every write and edit against the rules in `pi-warden.md`.
MrJev/awesome-jev
Frequently asked questions
Does it interrupt me?
Only for irreversible actions; otherwise it tells the agent what to fix.
What results does it report?
419 risky actions stopped and 76% of fake done claims turned into test runs in 16 days of use.
Does it work without a key?
Yes, offline guards still run.
Related projects
Lean Pi supervisor: zero-token regex guardrails, done-check verification, per-turn routing and a Jev/Clef semantic slop gate on diffs.
ProjectbetaTypeScriptCoding-agent hook that asks Jev one yes/no per project rule on every edit or turn and makes the agent fix any violation.
HookbetaTypeScriptSelf-hosted software factory running coding agents in microVMs with verification gates; offers optional DSPy/Jev task intake advice.
ServicebetaPythonPi extension that checks proposed code edits against repository Markdown rules with Jev, reporting rule text and line ranges.
ProjectbetaTypeScriptAuditable Zig terminal agent pairing Codex for coding with Jev typed preflight and postflight checks under deterministic policy gates.
CLIproductionZigClaude Code plugin that checks every reply and file edit against your CLAUDE.md rules with one Jev yes/no per rule.
PluginbetaTypeScript