pi-multi-skills
Reference any installed pi skill from anywhere in your prompt using $skill_name syntax. Expands inline to <skill> XML (same format as Pi's native /skill:xxx) — no system prompt injection.
Package details
Install pi-multi-skills from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-multi-skills- Package
pi-multi-skills- Version
1.1.2- Published
- Jul 2, 2026
- Downloads
- 1,916/mo · 70/wk
- Author
- nguyenquangthai
- License
- MIT
- Types
- extension
- Size
- 20.3 KB
- Dependencies
- 0 dependencies · 1 peer
Pi manifest JSON
{
"extensions": [
"./index.ts"
],
"image": "https://raw.githubusercontent.com/QuangThai/pi-multi-skills/main/assets/pi-multi-skills-gallery-safe.png"
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-multi-skills
Multi-skill invocation extension for pi coding agent.
Reference any installed skill from anywhere in your prompt using $skill_name
syntax — works inline, not just at the start of a message like /skill:name.
Apply $code-review and $ui-ux-pro-max to review this UI
Run $karpathy-guidelines on the latest changes,
then $interview-me on the architecture
Install
pi install npm:pi-multi-skills
Or install directly from GitHub:
pi install git:github.com/QuangThai/pi-multi-skills
Reload the session:
/reload
Verify installation:
/skills
Usage
Reference one or more skills inline within any prompt:
Apply $code-review and $ui-ux-pro-max to review this UI
Skills resolve regardless of their position in the message:
Run $karpathy-guidelines on the latest changes, then $interview-me on the architecture
A bare skill reference also works:
$interview-me
Autocomplete
Press Tab after typing $ to browse available skills:
Apply $code- [Tab]
↓
┌─ $code-change-verification ─┐
│ $code-review-and-quality │
│ $code-simplification │
└───────────────────────────────────┘
Commands
| Command | Description |
|---|---|
/skills |
List every installed skill with $name syntax |
/skills-search <keyword> |
Search skills by name or description |
How it works
| Step | Component | Role |
|---|---|---|
| 1 | Resolver | Reads Pi's loaded /skill:name commands so $skill_name respects Pi trust, settings, package filters, and CLI-loaded skills |
| 2 | Parser | Extracts $skill_name references from user input using regex |
| 3 | Input event | Intercepts user input, expands each $skill_name into a <skill> XML block — the same format Pi's native /skill:xxx command produces |
| 4 | Autocomplete | Registers a $-triggered autocomplete provider so the TUI suggests skills as the user types |
Comparison: $skill_name vs /skill:name
| Aspect | $skill_name (extension) |
/skill:name (native Pi) |
|---|---|---|
| Position | Anywhere in prompt | Start of message only |
| Format | <skill name="..." location="..."> |
<skill name="..." location="..."> |
| Persistence | ✅ In conversation history | ✅ In conversation history |
| Multiple skills | ✅ Multiple per message | ❌ One per message |
Both produce identical <skill> XML blocks that the LLM can read. The $skill_name
syntax is simply more ergonomic for inline and multi-skill usage.
Architecture
pi-multi-skills/
├── package.json Pi package metadata
├── index.ts Extension entry — input event handler + commands
├── resolver.ts Skill registry from Pi's loaded skill commands
├── parser.ts $skill_name regex parsing and replacement
├── tests/ Unit tests (29) + E2E integration tests (14)
└── tsconfig.json TypeScript strict configuration
