A Pi package that makes reusable command files from Claude Code, Gemini CLI, and Codex available inside Pi.
It supports:
- Claude Code markdown commands in
.claude/commands/**/*.mdand~/.claude/commands/**/*.md - Gemini CLI TOML commands in
.gemini/commands/**/*.tomland~/.gemini/commands/**/*.toml - Gemini markdown commands in
.gemini/commands/**/*.mdfor teams that use that convention - Codex markdown prompts in
.codex/prompts/**/*.mdand~/.codex/prompts/*.md
pi install npm:pi-commandThen restart Pi or run:
/reloadFrom this checkout:
pi -e ../../personal/pi-commandOr install it as a local Pi package:
pi install ../../personal/pi-commandThen restart Pi or run:
/reload@.claude/commands/release.md
run @.claude/commands/release.md
@.gemini/commands/git/commit.toml staged changes onlyWhen the whole input is a supported command-file reference, pi-command expands the command and sends the expanded prompt to the active model.
Discovered files are also registered as Pi slash commands:
/release
/claude:release
/command release
/command @.claude/commands/release.md
/command-listNested Gemini-style files use colon names. For example:
.gemini/commands/git/commit.toml -> /git:commitCodex prompts use the Codex convention:
~/.codex/prompts/draftpr.md -> /prompts:draftprThe extension registers a pi_command tool. If you ask any Pi model/provider to run a reusable command, the model can call pi_command, receive the expanded command instructions, and carry them out.
- Markdown frontmatter:
description,argument-hint,disable-model-invocation - Gemini TOML fields:
prompt,description,argument-hint - Arguments:
$1-$9,$0,$ARGUMENTS,$@,${@:N},${@:N:L} - Codex named placeholders: uppercase
KEY=valuearguments can fill$KEY - Gemini
{{args}}replacement and default argument appending - File references: Claude
@pathand Gemini@{path} - Shell snippets: Claude
!`cmd`and Gemini!{cmd}with user confirmation before execution
The extension does not enforce Claude allowed-tools or model metadata; Pi's current tool/model settings remain in charge.
npm install
npm run check
npm run pack:dryMIT