@aefree/pi-safety-rails
Pi safety-focused extensions for shell execution and tool result hygiene.
Package details
Install @aefree/pi-safety-rails from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@aefree/pi-safety-rails- Package
@aefree/pi-safety-rails- Version
0.1.4- Published
- Aug 6, 2026
- Downloads
- 122/mo · 13/wk
- Author
- aefree
- License
- MIT
- Types
- extension
- Size
- 15.7 KB
- Dependencies
- 0 dependencies · 1 peer
Pi manifest JSON
{
"extensions": [
"./extensions/tool-output-redactor.ts",
"./extensions/path-permissions.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
Pi Safety Rails
Pi package containing safety-focused extensions for shell execution and tool-result hygiene.
Included extensions
tool-output-redactorpath-permissions
Purpose
This package provides practical safety rails for Pi:
- redact token-like secrets from tool outputs before they reach the model/session
- block sensitive filesystem paths through deny-only path permissions
Tool output redaction
- Redacts token-like secrets from tool outputs before they are shown to the model/session.
- Applies to text content and nested string fields in tool result details.
Path permissions
- Deny-only path blocking for file-oriented tools.
- Current v1 target tools:
readwriteeditgrepfindls
- Configuration files:
- user-global:
~/.pi/agent/path-permissions.json - project-local overlay:
.pi/path-permissions.json
- user-global:
- The first version intentionally ignores allow rules and only honors
deny.
Example config with Windows and macOS paths:
{
"permission": {
"external_directory": {
"C:/Windows/**": "deny",
"/Users/yourname/Library/Keychains/**": "deny"
},
"edit": {
"C:/Windows/**": "deny",
"/Users/yourname/.ssh/**": "deny"
}
}
}
Replace yourname with the macOS account name. A trailing /** denies both the named directory and its descendants, without matching sibling prefixes.
Deny matching is case-insensitive on Windows and macOS, while denial messages retain the path's original display casing. macOS matching deliberately fails closed: it remains case-insensitive even on a case-sensitive APFS volume, so a differently cased path can be conservatively denied there. Linux matching remains case-sensitive.
Rules are evaluated against both the supplied path and its canonical filesystem destination. Existing symlinks and Windows junctions therefore cannot redirect access into a denied directory; for new files, the nearest existing ancestor is canonicalized before matching.
A copy also ships in this package as path-permissions.example.json.
Install
Install from npm:
pi install npm:@aefree/pi-safety-rails
For local development:
pi install <path-to-pi-safety-rails>
License
MIT. See LICENSE.