pi-autonomy-profiles
Standalone Auto Mode commands, permission modes, and guardrails for Pi
Package details
Install pi-autonomy-profiles from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-autonomy-profiles- Package
pi-autonomy-profiles- Version
0.2.4- Published
- Jun 20, 2026
- Downloads
- 158/mo · 31/wk
- Author
- hafiezul
- License
- MIT
- Types
- extension
- Size
- 41.5 KB
- Dependencies
- 0 dependencies · 1 peer
Pi manifest JSON
{
"extensions": [
"./index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-autonomy-profiles
Standalone Auto Mode and manual approval guardrails for Pi, inspired by Claude Code.
This package is distributed as a Pi package. It ships the TypeScript extension entrypoint directly; Pi loads package extensions with its TypeScript runtime, so there is no build output to publish.
Install from npm
pi install npm:pi-autonomy-profiles
Commands
/autonomy auto— enable standalone Auto Mode/autonomy manual— use manual approvals/autonomy status— show effective status and config paths/autonomy defaults— print a starter config
What it does
- Runs as a standalone extension
- Implements its own deny → ask → allow checks before each tool call
- Prompts from the extension UI for manual approval modes
- Stores session-scoped approvals in memory
- Blocks protected path writes such as
.git,.claude,.pi, shell startup files, package manager config, and MCP config - Provides a simple Auto Mode/manual command surface while still supporting advanced config modes
- Adds deterministic Auto Mode guardrails for obvious risky bash operations:
curl | bash,sudo, recursive force delete, force/main pushes, infra mutations, production deploys, external POST/upload, and cloud/IAM destructive commands - Pauses Auto Mode after repeated guardrail denials, falling back to manual prompts until
/autonomy autois run again
This is a local deterministic approximation, not Claude Code’s hosted classifier. It cannot infer natural-language organization rules as deeply as Claude Code Auto Mode, but it is installable as a single standalone Pi extension.
Configuration
Global config:
~/.pi/agent/extensions/pi-autonomy-profiles/config.json
Project config:
<project>/.pi/extensions/pi-autonomy-profiles/config.json
Project config can tighten rules or choose non-auto modes, but mode: "auto" is ignored from project-local config so a repository cannot grant itself Auto Mode.
Example:
{
"$schema": "https://raw.githubusercontent.com/hafiezul/pi-autonomy-profiles/main/schemas/autonomy.schema.json",
"mode": "default",
"permissions": {
"deny": [
"Bash(curl * | *sh*)",
"Bash(wget * | *sh*)",
"Bash(git push * --force*)",
"Edit(.env)",
"Write(.env)"
],
"allow": ["Read(*)"]
},
"autoMode": {
"trustedDomains": ["api.internal.example.com", "*.corp.example.com"],
"trustedPaths": []
}
}
Permission rule syntax is intentionally Claude-like:
Bash(pattern)matches bash commands with*wildcardsRead(pattern)matchesread,grep,find, andlspath inputsEdit(pattern)matcheseditandwritepath inputs- bare tool names such as
bash,edit, or*match whole tools
Rule precedence is deny, then ask, then allow. Built-in protected-write and Auto Mode hard guardrails still block even if an allow rule is present.
The command UI intentionally focuses on auto and manual. Advanced config-only modes remain supported for existing configs and power users: acceptEdits, plan, and dontAsk.
Local development
npm install
npm run check
pi install /path/to/pi-autonomy-profiles
Release checklist
npm install
npm run check
npm pack --dry-run
npm publish --dry-run
npm publish
The package has a prepack check, so npm pack and npm publish run TypeScript validation before creating the tarball.