@zackify/pi-claude-permissions
Claude-style permissions for pi with an opinionated small mode set and built-in plan mode.
Package details
Install @zackify/pi-claude-permissions from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@zackify/pi-claude-permissions- Package
@zackify/pi-claude-permissions- Version
1.0.5- Published
- Apr 30, 2026
- Downloads
- not available
- Author
- zackify
- License
- MIT
- Types
- extension
- Size
- 103.3 KB
- Dependencies
- 0 dependencies · 1 peer
Pi manifest JSON
{
"extensions": [
"./extensions"
],
"image": "https://raw.githubusercontent.com/zackify/pi-claude-permissions/master/gallery.png"
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-claude-permissions

Claude-style permissions for pi, with configurable mode cycling and built-in plan mode.
This is my personal favorite permission cycling setup. Most of the time I run in bypassPermissions, or start work in plan mode and then let the agent execute once the plan looks good. If you prefer confirmation for everything, default mode is available too.
This is heavily based on and inspired by rHedBull/pi-permissions. Big shoutout to rHedBull for the original Claude Code-style permission workflow and safety checks. This version stays close to the Claude-style permission experience, defaults to bypass, uses Shift+Tab, supports /permissions, and adds plan mode.
What is different?
- Four modes:
defaultplanacceptEditsbypassPermissions
- No
fullAutomode. bypassPermissionsis the startup default.- Configurable
Shift+Tabcycle. /permissionsalways shows all modes for manual selection.- Includes a custom plan mode.
Installation
From npm:
pi install npm:@zackify/pi-claude-permissions
Or from GitHub:
pi install git:github.com/zackify/pi-claude-permissions
Modes
default
Confirmation mode.
- Prompts before every tool call.
- Keeps session-level approvals for prompted operations.
- Still blocks protected paths and catastrophic commands.
plan
Read-only exploration mode.
Allowed tools:
readbashwhen the command looks read-onlygrepfindlsrgfdbateza
Blocked in plan mode:
editwrite- mutating bash commands
- anything outside the read/search allowlist
When entering plan mode, the extension notifies:
In plan mode, only read files/search tools are allowed.
It also injects visible planning instructions into the next agent turn so the model knows to inspect only and produce a detailed plan.
When leaving plan mode, the extension notifies:
Plan mode ended
If you leave plan mode while the agent is idle and there is already at least one assistant response in the session, it sends this user message automatically:
Plan mode ended. Execute the plan.
acceptEdits
- Allows
writeandeditautomatically. - Prompts for bash commands.
- Still blocks protected paths and catastrophic commands.
bypassPermissions
- Allows normal operations without confirmation.
- Still blocks catastrophic commands and protected paths.
- This is the default mode.
Shortcut and command
By default, Shift+Tab cycles all modes:
default → plan → acceptEdits → bypassPermissions → default
Use /permissions to manually select any mode at any time. If you rarely use one of the modes, set piClaudePermissions.shiftTabOptions to keep your Shift+Tab cycle faster; /permissions will still show all modes.
Configuration
Set this in ~/.pi/agent/settings.json or project-local .pi/settings.json:
{
"piClaudePermissions": {
"defaultMode": "bypassPermissions",
"allowCatastrophic": false,
"shiftTabOptions": ["default", "plan", "acceptEdits", "bypassPermissions"]
}
}
defaultMode controls the startup mode and defaults to bypassPermissions. Valid values are default, plan, acceptEdits, and bypassPermissions.
allowCatastrophic defaults to false. When set to true, catastrophic command blocking and critical rm -rf detection are allowed. Protected path checks still run.
shiftTabOptions defaults to all modes. Valid values are default, plan, acceptEdits, and bypassPermissions. This only changes the Shift+Tab cycle; /permissions still lists every mode.
Safety checks kept from the inspiration plugin
This keeps the useful always-on protections from rHedBull/pi-permissions:
- catastrophic command blocking (unless
piClaudePermissions.allowCatastrophicistrue) - critical
rm -rfdetection (unlesspiClaudePermissions.allowCatastrophicistrue) - protected path checks
- session-level approvals for prompted operations
Files
The active local pi extension lives at:
~/.pi/agent/extensions/permission-plan-mode.ts
This repository copy lives at:
~/pi-claude-permissions/extensions/index.ts
After editing this copy, sync it back to pi with:
cp ~/pi-claude-permissions/extensions/index.ts ~/.pi/agent/extensions/permission-plan-mode.ts
Then reload pi with /reload or restart pi.
