Replies: 1 comment 1 reply
|
Read 0.5.0 at In
So Read from the source, not run — I don't have pi installed, so treat the sequence as traced rather than reproduced. Smallest fix that keeps the current shape: for a file-family tool with no path, treat cwd as the target instead of returning early — Worth pinning with a rule-layer test in the schema-default shape: |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
pi's README says it plainly: "No permission popups. Run in a container, or build your own confirmation flow with extensions." pi-verdict is that confirmation flow — a permission gate in the style of Claude Code's auto mode, where every tool call gets checked before it runs.
Why you might trust it
For a security extension, shape matters as much as behavior:
denyclaims. That decision came from testing, not intuition: testing the rule layer against bypass attempts found 8 ways around the original allowlist, each reproduced with a working payload, and 0.2.0 removed the allowlist entirely instead of patching it. Every "always allow" is yours to declare; the writeup ships inresearch/.What it does
ask— genuinely ambiguous actions get routed to you with a one-key confirm, not silently approved. In non-interactive sessionsaskdegrades todeny.denyPaths— protected paths you declare (new in 0.5.0): plain path prefixes in your config; the gate owns normalization —~,$HOME, relative,.., symlink spellings all resolve — and any touch, including path tokens pulled out of bash command strings, routes to a deterministic ask you adjudicate (headless degrades to deny). Not even your ownallowrules may touch them, and the classifier never learns the paths: it only ever sees a fixed existence hint, so no path plaintext leaves the machine.Design decisions are measured, not vibes
The lab notes ship with the repo (
research/):thinkingEnabled: falseTry it
Requires pi ≥ 0.84.
pi install npm:pi-verdict # or try once: pi -e git:github.com/jesset/pi-verdict /automode onYour rules live in
~/.pi/agent/config/pi-verdict.json(JS regexallow/denyarrays;denywins;denyPathsfor protected paths). There's a comparison table against pi-automode / pi-permission in the README — we've converged on similar architectures with pi-automode; what stays distinct is the runtimeask, the removable deny floor, the self-protection layer, and the zero-dependency single file.https://github.com/jesset/pi-verdict · https://pi.dev/packages/pi-verdict
Feedback very welcome, especially on:
askUX — when does a confirm dialog become annoying enough that you'd rather it just decided?All reactions