pi-mono中文文档

0 阅读8分钟

🏖️ OSS 周末休息中

问题追踪器(Issue tracker)将于 2026 年 3 月 30 日(星期一)重新开放。

OSS 周末时间为 2026 年 3 月 22 日(星期日)至 2026 年 3 月 30 日(星期一)。在此期间提交的新 Issue 将被自动关闭。如需支持,请加入 Discord

Pi 是一个极简的终端编码辅助工具(Coding Harness)。让 Pi 适应你的工作流,而不是让你去适应它,且无需分叉(Fork)或修改 Pi 的内部代码。你可以通过 TypeScript 扩展 (Extensions)技能 (Skills)提示词模板 (Prompt Templates)主题 (Themes) 来增强它。将你的扩展、技能、模板和主题放入 Pi 包 (Pi Packages) 中,即可通过 npm 或 git 与他人分享。

Pi 内置了强大的默认功能,但去掉了诸如“子智能体(Sub agents)”和“计划模式(Plan mode)”之类的复杂功能。相反,你可以要求 Pi 构建你想要的功能,或者安装符合你工作流的第三方 Pi 包。

Pi 以四种模式运行:交互模式、打印或 JSON 模式、用于进程集成的 RPC 模式,以及用于嵌入你自己应用的 SDK。有关真实的 SDK 集成案例,请参阅 openclaw/openclaw

快速开始

code Bash

downloadcontent_copy

expand_less

npm install -g @mariozechner/pi-coding-agent

使用 API 密钥进行身份验证:

code Bash

downloadcontent_copy

expand_less

export ANTHROPIC_API_KEY=sk-ant-...
pi

或者使用你现有的订阅:

code Bash

downloadcontent_copy

expand_less

pi
/login  # 然后选择供应商

接着只需与 Pi 对话即可。默认情况下,Pi 为模型提供四个工具:read(读取)、write(写入)、edit(编辑)和 bash(终端命令)。模型使用这些工具来完成你的请求。你可以通过技能提示词模板扩展Pi 包来增加能力。

平台说明: Windows | Termux (Android) | tmux | 终端设置 | Shell 别名


供应商与模型

对于每个内置供应商,Pi 都会维护一份支持工具调用的模型列表,并在每次发布时更新。你可以通过订阅(/login)或 API 密钥进行身份验证,然后通过 /model(或 Ctrl+L)选择该供应商的任何模型。

支持订阅的供应商:

  • Anthropic Claude Pro/Max
  • OpenAI ChatGPT Plus/Pro (Codex)
  • GitHub Copilot
  • Google Gemini CLI
  • Google Antigravity

支持 API 密钥的供应商:

  • Anthropic, OpenAI, Azure OpenAI, Google Gemini, Google Vertex, Amazon Bedrock
  • Mistral, Groq, Cerebras, xAI, OpenRouter
  • Vercel AI Gateway, ZAI, OpenCode Zen, OpenCode Go, Hugging Face
  • Kimi For Coding, MiniMax

详细设置说明请参阅 docs/providers.md

自定义供应商与模型: 如果第三方供应商支持标准的 API(OpenAI、Anthropic、Google),可以通过 ~/.pi/agent/models.json 添加。对于自定义 API 或 OAuth,请使用扩展。参见 docs/models.mddocs/custom-provider.md


交互模式

image.png

界面从上到下依次为:

  • 启动页眉 - 显示快捷键(输入 /hotkeys 查看全部)、加载的 AGENTS.md 文件、提示词模板、技能和扩展。
  • 消息区 - 你的消息、助手回复、工具调用及结果、通知、错误和扩展 UI。
  • 编辑器 - 输入区域;边框颜色表示当前的“思考等级(Thinking level)”。
  • 页脚 - 工作目录、会话名称、总 Token/缓存使用量、成本、上下文占用率、当前模型。

编辑器可以临时被其他 UI 替换,例如内置的 /settings 或来自扩展的自定义 UI(例如让用户以结构化格式回答模型问题的 Q&A 工具)。扩展 还可以替换编辑器、在编辑器上方/下方添加小部件、状态栏、自定义页脚或叠加层。

编辑器

功能操作方式
文件引用输入 @ 模糊搜索项目文件
路径补全按 Tab 键补全路径
多行输入Shift+Enter (Windows Terminal 上为 Ctrl+Enter)
图片Ctrl+V 粘贴 (Windows 为 Alt+V),或拖入终端
Bash 命令!command 运行并发送输出给 LLM,!!command 仅运行不发送

标准编辑快捷键(如删除单词、撤销等)均适用。参见 docs/keybindings.md

命令

在编辑器中输入 / 触发命令。扩展 可以注册自定义命令,技能 可通过 /skill:name 使用,提示词模板 通过 /模板名 展开。

命令描述
/login, /logoutOAuth 身份验证
/model切换模型
/scoped-models启用/禁用用于 Ctrl+P 循环切换的模型
/settings思考等级、主题、消息传递方式、传输协议
/resume从之前的会话中选择继续
/new开始新会话
/name 设置会话显示名称
/session显示会话信息(路径、Token、成本)
/tree跳转到会话中的任何一点并从那里继续
/fork从当前分支创建一个新会话
/compact [prompt]手动压缩上下文,可选自定义指令
/copy复制助手的最后一条消息到剪贴板
/export [file]导出会话为 HTML 文件
/share上传为私有 GitHub Gist 并生成可分享的 HTML 链接
/reload重新加载按键绑定、扩展、技能、提示词和上下文文件
/hotkeys显示所有快捷键
/quit, /exit退出 Pi

快捷键

输入 /hotkeys 查看完整列表。可通过 ~/.pi/agent/keybindings.json 自定义。

常用快捷键:

按键动作
Ctrl+C清空编辑器
Ctrl+C 两次退出
Escape取消/中止
Escape 两次打开 /tree
Ctrl+L打开模型选择器
Ctrl+P / Shift+Ctrl+P向前/向后循环切换已选模型
Shift+Tab切换思考等级 (Thinking level)
Ctrl+O折叠/展开工具输出
Ctrl+T折叠/展开思考块 (Thinking blocks)

消息队列

在智能体工作时提交消息:

  • Enter: 排队一条 指导 (steering) 消息,在当前助手回合执行完工具调用后立即发送。
  • Alt+Enter: 排队一条 后续 (follow-up) 消息,仅在智能体完成所有工作后发送。
  • Escape: 中止运行并将排队的消息恢复到编辑器。
  • Alt+Up: 将排队的消息取回编辑器。

会话管理

会话存储为具有树状结构的 JSONL 文件。每个条目都有 id 和 parentId,支持在原地分支而无需创建新文件。参见 docs/session.md

管理

会话自动保存到 ~/.pi/agent/sessions/,按工作目录组织。

code Bash

downloadcontent_copy

expand_less

pi -c                  # 继续最近的会话
pi -r                  # 浏览并选择过去的会话
pi --no-session        # 临时模式(不保存)
pi --session <path>    # 使用特定的会话文件或 ID

分支

/tree - 在原地导航会话树。选择之前的任何一点继续,并在不同分支间切换。所有历史记录保存在一个文件中。

image.png

  • 通过输入进行搜索,使用 Ctrl+←/→ 折叠/展开和跳转分支。
  • 过滤模式 (Ctrl+O): 默认 → 无工具 → 仅用户 → 仅标记 → 全部。
  • 按 l 将条目标记为书签。

压缩 (Compaction)

长会话会耗尽上下文窗口。压缩会总结旧消息,同时保留最近的消息。

手动: /compact 或 /compact <自定义指令>
自动: 默认开启。在上下文溢出或接近限制时触发。


自定义

提示词模板 (Prompt Templates)

作为 Markdown 文件的可重用提示词。输入 /名称 即可展开。

code Markdown

downloadcontent_copy

expand_less

<!-- ~/.pi/agent/prompts/review.md -->
检查此代码是否存在错误、安全问题和性能问题。
关注点:{{focus}}

技能 (Skills)

遵循 Agent Skills 标准 的按需能力包。通过 /skill:名称 调用或让智能体自动加载。参见 docs/skills.md

扩展 (Extensions)

TypeScript 模块,用于通过自定义工具、命令、快捷键、事件处理器和 UI 组件扩展 Pi。

code TypeScript

downloadcontent_copy

expand_less

export default function (pi: ExtensionAPI) {
  pi.registerTool({ name: "deploy", ... });
  pi.registerCommand("stats", { ... });
  pi.on("tool_call", async (event, ctx) => { ... });
}

可能实现的场景:

  • 自定义工具(或替换内置工具)
  • 子智能体和计划模式
  • 自定义压缩和总结逻辑
  • 权限门控和路径保护
  • Git 检查点和自动提交
  • MCP 服务器集成
  • 甚至在等待时玩 Doom 游戏

参见 docs/extensions.md

Pi 包 (Pi Packages)

通过 npm 或 git 捆绑并分享扩展、技能、提示词和主题。

安全提示: Pi 包运行时具有完整的系统访问权限。在安装第三方包之前,请务必检查源代码。

code Bash

downloadcontent_copy

expand_less

pi install npm:@foo/pi-tools     # 安装
pi list                          # 列出
pi update                        # 更新

哲学

Pi 具有极强的可扩展性,因此它不必规定你的工作流程。

没有 MCP。 使用 README 构建 CLI 工具(参见技能),或者构建一个添加 MCP 支持的扩展。为什么?

没有子智能体。 这种实现方式有很多。可以通过 tmux 启动 Pi 实例,或者用扩展构建你自己的。

没有权限弹窗。 在容器中运行,或者用扩展构建你自己的确认流程。

没有计划模式。 将计划写入文件,或通过扩展实现。

没有背景 Bash。 使用 tmux。它提供完全的可观察性和直接交互。


CLI 参考 (部分)

标志描述
(默认)交互模式
-p, --print打印响应并退出
--mode json以 JSON 行形式输出所有事件
--mode rpc进程集成的 RPC 模式
--model 指定模型(支持 provider/model:thinking 格式)
--thinking 设置思考等级 (off 到 xhigh)
-e, --extension 从路径、npm 或 git 加载扩展

示例:

code Bash

downloadcontent_copy

expand_less

# 带有初始提示词的交互模式
pi "列出 src/ 下的所有 .ts 文件"

# 非交互模式
pi -p "总结这个代码库"

# 管道输入
cat README.md | pi -p "总结这段文本"

# 使用特定的高强度推理模型
pi --model sonnet:high "解决这个复杂问题"

许可证

MIT