pi-cmdr
Command picker extension for the Pi coding agent.
Package details
Install pi-cmdr from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-cmdr- Package
pi-cmdr- Version
0.1.0- Published
- Apr 24, 2026
- Downloads
- 20/mo · 20/wk
- Author
- mfmezger
- License
- MIT
- Types
- extension
- Size
- 25.9 KB
- Dependencies
- 0 dependencies · 2 peers
Pi manifest JSON
{
"extensions": [
"./src/index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-cmdr
A pi coding agent extension that opens a searchable command picker when you type $ in the editor.
Use it for prompts you type often, such as shipping a PR or handling review feedback, without turning every workflow into a slash command or skill.
What it does
- Type
$to open the command picker. - Keep typing to filter commands by category, title, tags, description, and prompt text.
- Use
↑/↓orctrl+p/ctrl+nto move through results. - Press
Enterto send the selected command immediately. - Press
Tabto insert the selected command without sending. - Press
alt+enterorctrl+enterto send the selected command immediately. - Press
Escapeto close the picker.
Install
From npm:
pi install npm:pi-cmdr
From GitHub:
pi install git:github.com/mfmezger/pi-cmdr
For local development from this checkout:
npm install
npm run check
pi -e ./src/index.ts
Configuration
pi-cmdr loads commands from:
- Built-in defaults
~/.pi/agent/cmdr.json.pi/cmdr.json
Commands are merged by id; project commands override global commands, and global commands override built-in defaults.
Example cmdr.json:
{
"trigger": "$",
"enterAction": "send",
"commands": [
{
"id": "git-ship-pr",
"category": "Git",
"title": "Create branch, commit, push, and open PR",
"description": "Use commit and github-pr skills to ship current work.",
"tags": ["git", "branch", "commit", "push", "pr", "github"],
"prompt": "Please create a new branch for the current changes, use the commit skill to make an appropriate commit, push the branch, and then use the github-pr skill to open a GitHub PR. Keep the scope tight and summarize what you did."
},
{
"id": "github-feedback",
"category": "GitHub",
"title": "GitHub feedback",
"description": "Use the github-pr-feedback skill to triage current PR feedback into fix/no-fix tables.",
"tags": ["github", "pr", "feedback", "review", "triage", "skill"],
"prompt": "Please use the github-pr-feedback skill to triage GitHub PR feedback for the current branch. Prefer pasted feedback if I provided any; otherwise use gh to inspect the PR for the current branch, including review comments, inline review threads, resolved comments, latest reviews, files, and failed checks when relevant. Produce the required two markdown tables: Does Not Need To Be Fixed and Should Be Fixed, then a concise Summary with counts and the highest-priority fix. Keep the Karpathy guidelines in mind and do not make code changes yet; ask me whether to fix the Should Be Fixed items after the report."
},
{
"id": "review-pr-feedback",
"category": "Review",
"title": "Review PR feedback and fix actionable items",
"description": "Triage reviewer feedback, decide what should be fixed, and implement fixes.",
"tags": ["review", "pr", "feedback", "karpathy"],
"prompt": "Please review the PR feedback, triage what is actionable versus not actionable, and work through the fixes. Keep the Karpathy guidelines in mind: think before coding, keep changes surgical, avoid overengineering, and verify with tests or checks where appropriate."
}
]
}
See examples/cmdr.json for a copyable config.
Command fields
Required:
id: stable unique identifier used for overriding/mergingtitle: display titleprompt: text inserted or sent to pi
Optional:
category: display grouping, e.g.GitorReviewdescription: shown in the pickertags: extra search termsdefaultAction:insertorsend; overrides top-levelenterActionfor this command
Diagnostics
Run this inside pi:
/cmdr
It inserts a small status report into the editor with loaded command count, config paths, trigger, enter action, and any config warnings.
Notes
- The default trigger is
$. If you also usepi-skill-searcher, configure one extension to use a different trigger. $5is ignored so normal dollar amounts do not open the picker.Entersends immediately by default. UseTabwhen you want to insert and edit before sending.