Extensions, skills, and rules for Pi coding agent.
| Code Search | LSP |
|---|---|
| Question | Web Fetch |
| Web Search | Voice Input |
pi install git:github.com/dannote/dot-pi
pi install npm:pi-subagents # optional: subagent delegation (scout, planner, worker, etc.)
pi install npm:pi-context # optional: agentic context window managementUse pi config to enable/disable individual extensions and skills.
Some extensions require external tools or API keys:
| Dependency | Required by |
|---|---|
ast-grep (brew install ast-grep) |
ast-grep.ts |
Exa AI API key (EXA_API_KEY) |
websearch/ |
ElevenLabs API key (ELEVENLABS_API_KEY) |
voice-input/ |
| Extension | Description |
|---|---|
ast-grep.ts |
AST-based code search and rewrite |
background.ts |
Run long-running processes in background |
bash-completion/ |
Intelligent bash completions for shell commands |
codesearch.ts |
Search public GitHub code via grep.app |
context7/ |
Search library documentation via Context7 |
confirm-destructive.ts |
Confirm before destructive actions (clear session, create PRs/issues) |
critic/ |
Shadow reviewer that evaluates agent output |
env-json/ |
Load environment variables from ~/.pi/agent/env.jsonc |
lsp/ |
Language Server Protocol (definition, references, hover, rename) |
notify.ts |
Desktop notifications on task completion |
permission-gate.ts |
Block dangerous bash commands |
question.ts |
Let the LLM ask user questions with selectable options |
rules.ts |
Load rule files from ~/.pi/agent/rules/ |
voice-input/ |
Voice recording with ElevenLabs STT (Ctrl+R) |
webfetch/ |
Fetch URL content and convert to markdown/text/html |
websearch/ |
Web search via Exa AI |
worktrees/ |
Git worktree management for parallel work |
Experimental extensions (not installed by default)
| Extension | Description |
|---|---|
decision-guidance.ts |
Decision-time guidance based on trajectory analysis |
plan-mode/ |
Read-only plan mode toggle with step tracking |
provider/ |
Dynamic provider registration from remote config |
sandbox/ |
OS-level sandboxing for bash commands (WIP) |
subagent/ |
Subagent delegation (superseded by pi-subagents) |
To enable an experimental extension:
{
"source": "git:github.com/dannote/dot-pi",
"extensions": ["+extensions/plan-mode"]
}| Skill | Description |
|---|---|
agent-browser |
Browser automation with agent-browser CLI |
ai-news |
Curated AI news digest from X/Twitter list |
applescript |
AppleScript and JXA automation for macOS |
bird |
X/Twitter CLI for tweets, threads, search, and social graph |
chat-to-skill |
Convert current chat session into a reusable skill |
github-issues |
Work with GitHub Issues via gh CLI — view, triage, fix, close |
keyboard-layout-decoder |
Decode text typed with wrong keyboard layout (Russian ↔ English) |
skill-discovery |
Discover agent skills on GitHub |
Rules are not distributed via packages. Symlink desired rules into ~/.pi/agent/rules/:
ln -s /path/to/dot-pi/rules/typescript.md ~/.pi/agent/rules/| Rule | Description |
|---|---|
bun.md |
Use Bun instead of Node.js/npm |
comments.md |
Avoid redundant comments |
commit-messages.md |
Follow existing repo commit style |
delete-files.md |
Use rm -f to delete files |
git-hosting.md |
Use gh/glab CLI instead of fetching URLs |
pull-requests.md |
PR workflow: study templates, preview before submit |
ripgrep.md |
Prefer rg over grep |
skills-cli.md |
Run skill commands from skill directory |
typescript.md |
TypeScript naming, type safety, imports, async |
MIT