piagent_
← ~/guides

斜杠命令

最后更新: 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 -rpi --fork <id>pi --no-sessionpi --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 评审。按侵入度递增有三档:

  1. Prompt 模板。把 security-review.md 放进 ~/.pi/agent/prompts/,输入 /security-review src/auth/。模板正文替换 prompt,LLM 拿到聚焦任务。无需代码、无需安装。

  2. 技能。在 ~/.pi/agent/skills/ 下加 security-review/SKILL.md/security-review src/auth/ 同样工作,但内容放在 skills 目录里,可以承载结构化指令、示例与工具提示。

  3. 扩展。写一个 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.registerCommandpi.getCommands()、RPC 调度
  • Skills——/skill:name 调用与 enableSkillCommands
  • Prompt templates——/templatename 调用
  • RPC——expandPromptTemplates 与从 RPC 调度命令
  • Settings——思考级别、主题、消息投递、传输方式
  • Keybindings——/hotkeys 显示的键盘快捷键
  • packages/coding-agent/docs/usage.md——命令表的源码出处