斜杠命令
最后更新: 2026年8月11日
$ pi –commands
TL;DR. Pi 的斜杠命令在 prompt 里以 / 开头输入,驱动仅在交互界面生效的操作——认证(/login、/logout)、模型与会话控制(/model、/scoped-models、/new、/resume、/name、/tree、/fork、/clone)、上下文管理(/compact)以及输出(/copy、/export、/share、/import)。官方 Usage 页记录 22 条;它们是仅交互的,粘到 prompt 里或通过 RPC 发送都不会执行。扩展可以注册自己的命令与之并存,技能以 /skill:name 形式出现,prompt 模板以 /templatename 形式出现。
斜杠命令是 pi 的交互界面入口。它不在 prompt 语法里——在消息中间打 /login 不会触发工具——而是由 TUI 直接处理,不经过 LLM。如果要在无头模式下做同样的事,用对应的 CLI 参数(pi -r、pi --fork <id>、pi --no-session、pi --export ...)或者 JSON/RPC 模式。
内建命令
完整列表在 pi 文档的 Usage 页上。下面是截至 v0.84.x 的集合,按用途分组。精确描述以 Usage 表为准;这里给你方向和容易踩的坑。
认证与凭据
/login——打开所选 provider 的 OAuth 或 API key 登录流程。/logout——清除已存储的凭据。
模型与路由
/model——切换当前会话的模型。/scoped-models——切换哪些模型可被Ctrl+P快速循环选择。/settings——打开交互式设置面板(思考级别、主题、消息投递方式、传输方式)。
本地模型管理
/llama——通过 llama.cpp router 下载、加载、卸载模型。
会话控制
/resume——在交互式选择器里挑一个过往会话;选择器与pi -r是同一个。/new——开一个新会话。/name <name>——给当前会话设个显示名。/session——显示当前会话的文件路径、ID、消息数、token 用量与累计花费。/tree——跳到会话树里的任一位置并从那里继续。/fork——从之前的某条用户消息创建一个新会话文件。/clone——把当前活跃分支复制到一个新会话文件。/trust——为后续会话持久化项目信任决策。
/tree、/fork、/clone 看起来相近但含义不同——/tree 留在同一个会话文件里做就地分支探索;/fork 从一条较早的用户消息开新文件;/clone 把当前活跃分支复制开新文件。
上下文管理
/compact [prompt]——压缩较老的上下文,可选附带自定义 prompt。详情见会话指南。
输出与分享
/copy——把最后一条助手消息复制到剪贴板。/export [file>——把会话导出为 HTML 或 JSONL。/import <file>——从 JSONL 文件导入并恢复。/share——将会话上传为私有 GitHub gist 并复制可分享的 HTML 链接。
元
/reload——重载键位、扩展、技能、prompt 模板、主题与上下文文件。/hotkeys——显示全部键盘快捷键。/changelog——显示应用内版本历史。/quit——退出 pi。
/reload 是不退出会话就拾取变更的最快方式——它是热的,不需要重启。配合 /settings 做运行时配置微调、用 /tree 在 LLM 走过的分支之间来回跳。
内建命令仅在交互模式生效
内建命令接在 TUI 上、而不是 agent 上。Extensions 文档说得很直接:
“Built-in interactive commands (like /model and /settings) are not included here [
pi.getCommands()]. They are handled only in interactive mode and would not execute if sent via prompt.”
所以 --mode rpc 或 --mode json 启动时,prompt 里打斜杠命令会被忽略——没有 parser fallback。--print 模式也一样。这些模式下请用 CLI 参数:
| 斜杠命令 | 无头模式等价 |
|---|---|
/resume |
pi -r |
/fork |
pi --fork <id-or-path> |
/clone |
仅会话时操作,无 CLI 参数 |
/session |
直接读 ~/.pi/agent/sessions/<workdir>/<id>.jsonl |
/compact |
不暴露;通过 agent loop 触发,或写小段会话脚本 |
/new |
pi --no-session 用于临时;否则直接启动二进制 |
/name |
pi --name "..." |
/export |
pi --export <file> |
通过 SDK 嵌入 pi 时,pi.getCommands() 只返回扩展注册的命令,/model 这样的内建不在其列——SDK 不路由它们。
自定义命令:扩展、技能、prompt 模板
三条注册路径可以往交互命令列表里加一条斜杠命令。它们共用同一个 / 前缀,但补全里的来源标签不同。
扩展命令
扩展调 pi.registerCommand(name, options)。handler 接收输入的参数和一个 context 对象。如果两个扩展注册了同一个 name,pi 同时保留两者、按加载顺序加数字后缀:/review:1、/review:2。Extensions 页面有文档。
如果希望 RPC 的 sendUserMessage 能触发扩展命令,需要在 RPC 选项里设 expandPromptTemplates: true;默认 false,意味着 RPC 不会展开扩展/技能/模板命令。任何以非交互方式驱动 pi 的宿主都要把这个记上。
技能命令
技能以 /skill:name 注册。技能体被调用时,命令后面的文本会作为 User: <args> 追加到技能内容后面。技能命令是否可用由设置里的 enableSkillCommands 控制——关掉的话 /skill:name 就不会出现在补全里。前置元数据 disable-model-invocation: true 的技能必须由用户显式触发。
Prompt 模板命令
Prompt 模板(放在 ~/.pi/agent/prompts/ 或项目级对应位置)以 /templatename 触发。模板的正文替换到 prompt 里,对“审查这个 PR”或“给这些改动写个 commit message”这类重复性需求是成本最低的标准化方式。
查找与列出命令
在 TUI 里打 / 打开命令补全。列表按实际已注册的内容过滤——不可用的内建(目前没有)隐藏、未加载的扩展隐藏、技能在 enableSkillCommands 关掉时不显示、模板在没有任何可达模板时不显示。
用 SDK 做程序化发现,调 pi.getCommands()。结果包含每个命令的 name、source("extension" | "prompt" | "skill")、是否接受参数。注意:这不包括内建——返回的是扩展/技能/模板层。
一个简短的工作示例
假设你想要一个 /security-review 命令做结构化 prompt 评审。按侵入度递增有三档:
-
Prompt 模板。把
security-review.md放进~/.pi/agent/prompts/,输入/security-review src/auth/。模板正文替换 prompt,LLM 拿到聚焦任务。无需代码、无需安装。 -
技能。在
~/.pi/agent/skills/下加security-review/SKILL.md。/security-review src/auth/同样工作,但内容放在 skills 目录里,可以承载结构化指令、示例与工具提示。 -
扩展。写一个 TypeScript 扩展调
pi.registerCommand('security-review', { description, handler })。handler 跑 JS,可以显示进度、返回最终消息——适合在产出之前需要读文件或调 API 的命令。
能用一条 prompt 完成的用模板最便宜。需要状态或想要渲染 UI 的用扩展。技能在两者之间:比模板结构更多、比扩展代码更少。
关于时效性的说明。 本文命令表基于本节末尾链接的源码 Markdown 整理;pi.dev 文档持续滚动、不同版本之间可能新增命令。如果你要查某个 pi 版本的权威列表,请在那个版本的 tag 上对照
packages/coding-agent/docs/usage.md校对。
延伸阅读
- Usage——内建斜杠命令的权威集合
- Sessions——
/resume、/tree、/fork、/clone、/compact、/share与 JSONL 树格式 - Compaction——
/compact [prompt]内部机制与重试策略 - Extensions——
pi.registerCommand、pi.getCommands()、RPC 调度 - Skills——
/skill:name调用与enableSkillCommands - Prompt templates——
/templatename调用 - RPC——
expandPromptTemplates与从 RPC 调度命令 - Settings——思考级别、主题、消息投递、传输方式
- Keybindings——
/hotkeys显示的键盘快捷键 packages/coding-agent/docs/usage.md——命令表的源码出处