pi-sentry
v1.0.0
Published
Permission/impact gate extension for pi coding agent
Maintainers
Readme
pi-sentry
A permission/impact gate extension for pi.
It classifies every tool call (including bash) as low / medium / high impact, then allows, prompts, or blocks based on the active permission level.
Permission levels (enforcement behavior)
- low
- auto-allows only known low-impact operations
- medium
- auto-allows known low + medium-impact operations
- YOLO
- bypasses classification and authorization checks
Tool classification summary
From current implementation:
read,grep,find,ls→ lowedit→ lowwrite→ medium- other non-bash tools → medium + unknown (requires prompt/block path)
bash:- classify via rules in
rules.ts(including compound command splitting and highest-impact selection) - AI fallback is used only for unknown bash commands
- if AI is unavailable, unknown bash defaults to high
- classify via rules in
Usage
- Keyboard shortcut: cycles levels (
low → medium → YOLO) and persists the selected level. - Set shortcut from pi:
/pi-sentry <key>(example:/pi-sentry ctrl+shift+p)- takes effect after
/reload(or restarting pi) - use
/pi-sentry <key> --reloadto apply immediately
- takes effect after
- CLI flag:
--permission-level <low|medium|YOLO>(applies to current run)
Configuration
pi-sentry merges config in this order (later wins):
- Built-in defaults
config.default.json(packaged with extension)- Global user config:
~/.pi/agent/pi-sentry/config.json - Project override:
.pi/pi-sentry/config.json
Config fields
{
"cycle_shortcut": "shift+tab",
"level": "medium"
}cycle_shortcut: keybinding used for cycling permission levelslevel: initial level (low,medium, orYOLO)
Backward compatibility: legacy key
cycle_shorcutis still accepted.
Testing
From pi-sentry/:
npm run test:tool-assessment