pi-dollar-skills
Codex-style $skill-name invocation and autocomplete for Pi
Package details
Install pi-dollar-skills from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-dollar-skills- Package
pi-dollar-skills- Version
0.1.0- Published
- Sep 9, 2026
- Downloads
- 131/mo · 131/wk
- Author
- al1033
- License
- MIT
- Types
- extension
- Size
- 11.8 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-dollar-skills
Add Codex-style $skill-name invocation to Pi. Explicitly load skills at the beginning, middle, or end of a message, with skill-name autocomplete when you type $.
Installation
Requires Pi 0.85.1 or later (uses the addAutocompleteProvider and getCommands().sourceInfo APIs).
pi install git:github.com/ALLLLLL703/pi-dollar-skills
Run /reload in an existing Pi session, or restart Pi.
To try it from a local checkout:
pi -e ./src/index.ts
Usage
Type directly into Pi's input box, without wrapping the invocation in backticks:
$code-review Review the current changes
Use $planning to make a plan, then $code-review to check the implementation
$stop-that-shit change -- Fix the failing tests
The example skills must already be installed in Pi. This extension does not bundle any skills.
- Type
$to list available skills, continue typing to filter by name prefix, and select one using Pi's completion controls. - Chinese text can directly border a skill mention, without spaces. Skill names are parsed as ASCII letters, digits, underscores, and hyphens.
- Invoke multiple skills in one message. Each skill is loaded once per message, in order of first appearance.
- The original message and arguments remain unchanged. Full skill bodies are appended with their file locations and base directories for relative references.
- Skill bodies are read fresh on each submission. After adding or removing skills, use
/reloadto refresh Pi's resources. - Idle input, mid-run steering, queued follow-ups, and RPC user input use the same input transformation hook, preserving delivery behavior and attachments.
Matching Rules
Only skills currently loaded by Pi are expanded. Pi handles discovery, trust, and name-collision priority for global, project, package, and CLI skills. This extension does not scan additional directories.
The following do not trigger loading:
- Unknown names, such as an uninstalled
$unknown(left unchanged). - Escaped mentions such as
\$skill-name, inline code, and backtick- or tilde-fenced code blocks. $$name,${name},$name$,path/$name, and$name/file.!/!!shell input and messages generated by other extensions throughsendUserMessage.
A variable such as $HOME in ordinary prose will trigger a skill if its name exactly matches an installed skill. Escape it or put it in code to keep it literal.
Native /skill:name commands remain handled by Pi. Pi dispatches extension /command invocations before this hook, so their arguments are not processed by this extension. Use $name in ordinary messages instead.
If a skill cannot be read, the error is appended to the message and shown as a notification when a UI is available. Other successfully read skills still load. Loading a skill does not execute shell commands or grant additional tool permissions.
Development
Node.js >= 22.19:
npm ci
npm run check
npm test
Tests cover name boundaries, Chinese text, multi-skill deduplication, code and escaping, error handling, autocomplete, input sources and queue modes, and Pi's actual extension loader.
License
MIT