pi-safety-path-protection
Protects sensitive paths (.env files, .git internals, node_modules, SSH keys) from unauthorized reads and writes across all tools โ read, write, edit, and bash.
Package details
Install pi-safety-path-protection from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-safety-path-protection- Package
pi-safety-path-protection- Version
0.1.1- Published
- Mar 13, 2026
- Downloads
- 24/mo ยท 4/wk
- Author
- pierre-mike
- License
- MIT
- Types
- extension
- Size
- 11.6 KB
- Dependencies
- 0 dependencies ยท 1 peer
Pi manifest JSON
{
"extensions": [
"."
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
๐ Safety Guard: Path Protection
Protects sensitive directories and files from unauthorized access across all tool types (read, write, edit, and bash).
What it protects
๐ด Blocked โ read & write
| Path | Why |
|---|---|
.git/ internals |
Prevents repository corruption (loose objects, refs, config) |
๐ด Blocked โ write only (read allowed)
| Path | Why |
|---|---|
node_modules/ |
Managed by package managers โ direct edits break lockfile integrity |
.env, .env.local, .env.production, .env.* |
Secrets files โ agent must never modify credentials |
๐ก Confirmation required โ write only
| Path | Why |
|---|---|
package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lock |
Lock files are auto-generated โ edits can corrupt dependency resolution |
Gemfile.lock, poetry.lock, Cargo.lock, go.sum, composer.lock |
Same for non-JS ecosystems |
Dockerfile, docker-compose.yml |
Infrastructure config โ changes may affect production |
.github/workflows/, .circleci/ |
CI/CD pipelines โ unauthorized changes can trigger deploys |
.gitlab-ci.yml |
GitLab CI config |
How it works
File tools (read, write, edit)
The extension checks the path parameter against the rules above. Read operations are more permissive (only .git/ is blocked).
Bash commands
The extension extracts path references from bash commands using regex and applies the same rules. Read-only commands (cat, grep, ls, find, head, tail, etc.) get the read-mode rules (more permissive).
Example: cat .git/config โ blocked. cat node_modules/lodash/package.json โ allowed. echo "test" > node_modules/foo.js โ blocked.
Behavior
| Mode | Action |
|---|---|
| Interactive | Shows dialog explaining which path is protected and why |
| Non-interactive | Blocks with descriptive reason |
Status bar
Shows ๐ path-guard in the footer when active.
Installation
Already active โ lives in ~/.pi/agent/extensions/safety-path-protection/index.ts and auto-loads with every pi session.
Example
๐ Protected file
.github/workflows/deploy.yml
CI/CD configuration โ confirm before editing
Allow?
[Yes] [No]