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

extension

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]