使用 Pi
本页收集了不适合放在快速入门页面上的日常使用细节。
交互模式

界面有四个主要区域:
- 启动头 - 快捷方式、已加载的上下文文件、提示词模板、技能和扩展
- 消息 - 用户消息、助手回复、工具调用、工具结果、通知、错误和扩展 UI
- 编辑器 - 输入区域;边框颜色指示当前的思考级别
- 页脚 - 工作目录、会话名称、令牌/缓存使用量、成本、上下文使用情况和当前模型。总计包括助手回复、工具报告的使用量以及摘要生成。
编辑器可以暂时被内置 UI 替换,例如 /settings 或自定义扩展 UI。
编辑器功能
| 功能 | 操作方式 |
|---|---|
| 文件引用 | 输入 @ 以模糊搜索项目文件 |
| 路径补全 | 按 Tab 键补全路径 |
| 多行输入 | Shift+Enter,或在 Windows 终端上使用 Ctrl+Enter |
| 复制回复 | Ctrl+X 复制最后一条助手消息;在 /tree中,它复制选中的消息 |
| 图片 | 使用 Ctrl+V 粘贴,Windows 上使用 Alt+V,或拖入终端 |
| Shell 命令 | !command 运行并将输出发送给模型 |
| 隐藏的 Shell 命令 | !!command 运行但不将输出发送给模型 |
| 外部编辑器 | Ctrl+G 打开 externalEditor, $VISUAL, $EDITOR,Windows 上打开记事本,或 nano 其他系统 |
参见 键绑定 了解所有快捷键和自定义设置。
斜杠命令
在编辑器中输入 / 以打开命令补全。扩展可以注册自定义命令,技能可用作 /skill:name,提示词模板通过 /templatename.
| 命令 | 描述 |
|---|---|
/login, /logout | 管理 OAuth 或 API 密钥凭据 |
/llama | 下载、加载和卸载 llama.cpp 路由模型 |
/model | 切换模型 |
/scoped-models | 启用/禁用模型以用于 Ctrl+P 循环切换 |
/settings | 思考级别、主题、消息传递、传输 |
/resume | 从之前的会话中选择 |
/new | 开始新会话 |
/name <name> | 设置会话显示名称 |
/session | 显示会话文件、ID、消息、令牌和成本 |
/tree | 跳转到会话中的任意点并从那里继续 |
/trust | 保存项目信任决定以供将来会话使用 |
/fork | 从之前的用户消息创建新会话 |
/clone | 将当前活动分支复制到新会话中 |
/compact [prompt] | 手动压缩上下文,可选择自定义指令 |
/copy | 将最后一条助手消息复制到剪贴板 |
/export [file] | 将会话导出为 HTML 或 JSONL |
/import <file> | 从 JSONL 文件导入并恢复会话 |
/share | 上传为私有 GitHub gist,并附带可分享的 HTML 链接 |
/reload | 重新加载按键绑定、扩展、技能、提示词、主题和上下文文件 |
/hotkeys | 显示所有键盘快捷键 |
/changelog | 显示版本历史 |
/quit | 退出 pi |
消息队列
你可以在智能体仍在工作时提交消息:
- 输入 将一条引导消息加入队列,在当前助手回合执行完工具调用后投递。
- Alt+Enter 将一条后续消息加入队列,在智能体完成所有工作后投递。
- “转义” 中止并将已排队的消息恢复到编辑器。
- Alt+向上键 将已排队的消息取回编辑器。
在 Windows 终端中,Alt+Enter 默认是全屏。如需让 pi 接收该快捷键,请按照 终端设置 中的说明重新映射。
在 设置 中通过 steeringMode 和 followUpMode.
会话
会话会自动保存到 ~/.pi/agent/sessions/,按工作目录组织。
pi -c # Continue most recent session
pi -r # Browse and select a session
pi --no-session # Ephemeral mode; do not save
pi --name "my task" # Set session display name at startup
pi --session <path|id> # Use a specific session file or session ID
pi --fork <path|id> # Fork a session into a new session file有用的会话命令:
/session显示当前会话文件和 ID。/tree浏览文件内会话树,并可总结已放弃的分支。/fork从较早的用户消息创建新会话。/clone将当前活动分支复制到新的会话文件。/compact总结较早的消息以释放上下文。
上下文文件
Pi 在启动时从以下位置加载 AGENTS.md 或 CLAUDE.md 在启动时从:
~/.pi/agent/AGENTS.md用于全局指令- 父目录,从当前工作目录向上遍历
- 当前目录
如果某个目录包含 AGENTS.override.md,Pi 会加载它,而不是该目录中的 AGENTS.md 或 CLAUDE.md 。其他目录中的上下文文件仍正常叠加。
使用上下文文件来定义项目约定、命令、安全规则和偏好设置。可通过 --no-context-files 或 -nc.
系统提示词文件
使用以下文件替换默认系统提示词:
.pi/SYSTEM.md用于项目~/.pi/agent/SYSTEM.md全局
在不替换默认提示词的情况下追加内容,可在任一位置使用 APPEND_SYSTEM.md 在任一位置。
项目信任
在交互式启动时,如果项目文件夹包含项目本地设置、资源或项目 .agents/skills ,且对该文件夹或其父文件夹在 ~/.pi/agent/trust.json. 信任项目后,pi 可以加载 .pi/settings.json 和 .pi 资源,安装缺失的项目包,并执行项目扩展。
在做出信任决定之前,pi 仅加载上下文文件、用户/全局扩展和 CLI -e 扩展,以便它们能够处理 project_trust 事件。项目本地扩展、项目包管理的扩展和项目设置仅在项目受信任后加载。当切换到来自不同 cwd 的会话且该 cwd 的信任在当前进程中尚未解决时,此分离也适用。
非交互模式(-p, --mode json和 --mode rpc)不显示信任提示。如果没有适用的已保存信任决定,它们会使用全局设置中的 defaultProjectTrust 从全局设置: ask (默认)和 never 忽略这些项目资源,而 always 信任它们。传递 --approve/-a 或 --no-approve/-na 可覆盖单次运行的项目信任。
如果没有扩展或已保存的决定适用, defaultProjectTrust 控制回退行为。将其设置为 "ask", "always"或 "never" ,在 ~/.pi/agent/settings.json中,或使用 /settings.
pi config 更改它,包命令使用相同的项目信任流程,但 pi update 从不提示。传递 --approve 可信任单条命令的项目本地设置,或传递 --no-approve 忽略它们。
在交互模式下使用 /trust 可保存项目信任决定以供将来会话使用,包括对直接父文件夹的信任。它仅写入 ~/.pi/agent/trust.json ;当前会话不会重新加载,因此请重启 pi 以使更改生效。
导出和共享会话
使用 /export [file] 将会话写入 HTML。
使用 /share 上传私有 GitHub gist 并生成可共享的 HTML 链接。
如果您将 pi 用于开源工作,并希望发布会话以用于模型、提示、工具和评估研究,请参阅 badlogic/pi-share-hf。它将会话发布到 Hugging Face 数据集。
CLI 参考
pi [options] [@files...] [messages...]包命令
pi install <source> [-l] # Install package, -l for project-local
pi remove <source> [-l] # Remove package
pi uninstall <source> [-l] # Alias for remove
pi update [source|self|pi] # Update pi only, or one package source
pi update --all # Update pi and packages; reconcile pinned git refs
pi update --extensions # Update packages only; reconcile pinned git refs
pi update --models # Refresh model catalogs only
pi update --self # Update pi only
pi update --extension <src> # Update one package
pi list # List installed packages
pi config # Enable/disable package resources这些命令管理 pi 包,并且 pi update 可以更新 pi CLI 安装。要卸载 pi 本身,请参阅 快速入门. pi config 和项目包命令接受 --approve/--no-approve 以信任或忽略单条命令的项目本地设置。 pi update 从不提示项目信任。
请参阅 Pi 包 了解包来源和安全说明。
模式
| 标志 | 描述 |
|---|---|
| 默认 | 交互模式 |
-p, --print | 打印响应并退出 |
--mode json | 将所有事件输出为 JSON 行;请参阅 JSON 模式 |
--mode rpc | 通过 stdin/stdout 的 RPC 模式;请参阅 RPC 模式 |
--export <in> [out] | 将会话导出为 HTML |
在打印模式下,pi 还会读取管道输入的 stdin 并将其合并到初始提示中:
cat README.md | pi -p "Summarize this text"模型选项
| 选项 | 描述 |
|---|---|
--provider <name> | 提供商,例如 anthropic, openai或 google |
--model <pattern> | 模型模式或 ID;支持 provider/id 和可选的 :<thinking> |
--api-key <key> | API 密钥,覆盖环境变量 |
--thinking <level> | off, minimal, low, medium, high, xhigh, max |
--models <patterns> | 逗号分隔的模式,用于 Ctrl+P 循环切换 |
--list-models [search] | 列出可用模型 |
会话选项
| 选项 | 描述 |
|---|---|
-c, --continue | 继续最近的会话 |
-r, --resume | 浏览并选择会话 |
--session <path|id> | 使用特定的会话文件或部分 UUID |
--fork <path|id> | 将会话文件或部分 UUID 派生到新会话 |
--session-dir <dir> | 自定义会话存储目录 |
--no-session | 临时模式;不保存 |
--name <name>, -n <name> | 在启动时设置会话显示名称 |
工具选项
| 选项 | 描述 |
|---|---|
--tools <list>, -t <list> | 允许特定的内置、扩展和自定义工具 |
--exclude-tools <list>, -xt <list> | 禁用特定的内置、扩展和自定义工具 |
--no-builtin-tools, -nbt | 禁用内置工具,但保持扩展/自定义工具启用 |
--no-tools, -nt | 禁用所有工具 |
内置工具: read, bash, edit, write, grep, find, ls.
资源选项
| 选项 | 描述 |
|---|---|
-e, --extension <source> | 从路径、npm 或 git 加载扩展;可重复 |
--no-extensions | 禁用扩展发现 |
--skill <path> | 加载技能;可重复 |
--no-skills | 禁用技能发现 |
--prompt-template <path> | 加载提示词模板;可重复 |
--no-prompt-templates | 禁用提示词模板发现 |
--theme <path> | 加载主题;可重复 |
--no-themes | 禁用主题发现 |
--no-context-files, -nc | 禁用 AGENTS.md 和 CLAUDE.md 发现 |
结合 --no-* 与显式标志,仅加载所需内容,忽略设置。示例:
pi --no-extensions -e ./my-extension.ts其他选项
| 选项 | 描述 |
|---|---|
--system-prompt <text> | 替换默认提示词;上下文文件和技能仍会追加 |
--append-system-prompt <text> | 追加到系统提示词 |
--tui-mode <mode> | TUI 模式: regular (默认)或实验性的 fullscreen |
--verbose | 强制详细启动 |
-a, --approve | 本次运行信任项目本地文件 |
-na, --no-approve | 本次运行忽略项目本地文件 |
-h, --help | 显示帮助 |
-v, --version | 显示版本 |
在 fullscreen 模式下,转录内容在终端视口内滚动,而排队消息、工作状态、扩展小部件、编辑器和页脚保持固定在底部。鼠标/触控板输入滚动指针下的区域;键盘视口操作始终可用。内联图像在支持 Kitty 图形协议的终端(包括 Kitty 和 Ghostty)中工作。在 iTerm2 中,它们呈现为文本占位符,因为其内联图像协议无法在应用程序控制的滚动期间删除或裁剪放置。在 regular 模式下,pi 使用主屏幕和终端拥有的回滚,iTerm2 内联图像继续正常渲染。请参阅 终端设置 了解终端特定的设置和解决方法。
设置 TUI 模式 在 /settings 中切换 regular 和 fullscreen 并立即选择未来会话的默认值。 全屏退出输出 控制退出全屏时是打印最终记录还是恢复之前的屏幕并仅打印会话恢复提示。
文件参数
在文件前加上 @ 以将其包含在消息中:
pi @prompt.md "Answer this"
pi -p @screenshot.png "What's in this image?"
pi @code.ts @test.ts "Review these files"示例
# Interactive with initial prompt
pi "List all .ts files in src/"
# Non-interactive
pi -p "Summarize this codebase"
# Non-interactive with piped stdin
cat README.md | pi -p "Summarize this text"
# Named one-shot session
pi --name "release audit" -p "Audit this repository"
# Different model
pi --provider openai --model gpt-4o "Help me refactor"
# Model with provider prefix
pi --model openai/gpt-4o "Help me refactor"
# Model with thinking level shorthand
pi --model sonnet:high "Solve this complex problem"
# Limit model cycling
pi --models "claude-*,gpt-4o"
# Read-only mode
pi --tools read,grep,find,ls -p "Review the code"
# Disable one extension or built-in tool while keeping the rest available
pi --exclude-tools ask_question设计原则
Pi 保持核心小巧,并将特定工作流的行为推送到扩展、技能、提示词模板和包中。
它有意不包含内置的 MCP、子智能体、权限弹窗、计划模式、待办事项或后台 bash。你可以将这些工作流构建或安装为扩展或包,或使用外部工具,如容器和 tmux。
有关完整理由,请阅读 博客文章.