快速开始
Pi 以 npm 包形式分发:
npm install -g --ignore-scripts @earendil-works/pi-coding-agent--ignore-scripts 会在安装时禁用依赖的生命周期脚本。Pi 正常的 npm 安装不需要安装脚本。
使用当初安装 pi 的包管理器。curl 安装脚本使用全局 npm,因此 curl 和 npm 安装的版本都用 npm 卸载:
# curl 安装脚本或 npm install -gnpm uninstall -g @earendil-works/pi-coding-agent
# pnpmpnpm remove -g @earendil-works/pi-coding-agent
# Yarnyarn global remove @earendil-works/pi-coding-agent
# Bunbun uninstall -g @earendil-works/pi-coding-agent卸载 pi 不会删除 ~/.pi/agent/ 中的设置、凭据、会话和已安装的 pi 包。
然后在你想处理的项目目录中启动 pi:
cd /path/to/projectpiPi 可以通过 /login 使用订阅型模型提供方,也可以通过环境变量或认证文件使用 API 密钥型模型提供方。
方式一:订阅登录
Section titled “方式一:订阅登录”启动 pi 后运行:
/login然后选择模型提供方。内置的订阅登录包括 Claude Pro/Max、ChatGPT Plus/Pro(Codex)和 GitHub Copilot。
方式二:API 密钥
Section titled “方式二:API 密钥”在启动 pi 之前设置 API 密钥:
export ANTHROPIC_API_KEY=sk-ant-...pi你也可以运行 /login 并选择一个 API 密钥型模型提供方,将密钥存储到 ~/.pi/agent/auth.json。
完整的模型提供方列表、环境变量和云服务商配置请参见模型提供方。
pi 启动后,输入请求并按回车:
Summarize this repository and tell me how to run its checks.默认情况下,pi 会给模型提供四种工具:
read- 读取文件write- 创建或覆盖文件edit- 修改文件bash- 运行 shell 命令
其他内置的只读工具(grep、find、ls)可通过工具选项使用。Pi 在你当前的工作目录中运行,可以修改该目录中的文件。如果希望方便回滚,请使用 git 或其他带检查点的工作流。
给 pi 项目指令
Section titled “给 pi 项目指令”Pi 在启动时加载上下文文件。添加 AGENTS.md 文件来告诉它如何在项目中工作:
# Project Instructions
- Run `npm run check` after code changes.- Do not run production migrations locally.- Keep responses concise.Pi 会加载:
~/.pi/agent/AGENTS.md作为全局指令- 父目录和当前目录中的
AGENTS.md或CLAUDE.md
如果某个目录包含 AGENTS.override.md,Pi 会优先加载它,而不是该目录中的 AGENTS.md 或 CLAUDE.md。
修改上下文文件后,重启 pi,或运行 /reload。
在编辑器中输入 @ 进行模糊搜索文件,或在命令行传入文件:
pi @README.md "Summarize this"pi @src/app.ts @src/app.test.ts "Review these together"图片或文本可以用 Ctrl+V 粘贴(Windows 上为 Alt+V);图片也可以拖入支持的终端。
运行 shell 命令
Section titled “运行 shell 命令”在交互模式下:
!npm run lint命令输出会发送给模型。使用 !!command 运行命令但不把输出加入模型上下文。
使用 /model 或 Ctrl+L 选择模型。使用 Shift+Tab 切换思考级别。使用 Ctrl+P / Shift+Ctrl+P 在作用域内的模型间循环切换。
会话会自动保存:
pi -c # 继续最近的会话pi -r # 浏览之前的会话pi --name "my task" # 启动时设置会话显示名称pi --session <path|id> # 打开指定的会话在 pi 内部,使用 /resume、/new、/tree、/fork 和 /clone 管理会话。
用于一次性提示词:
pi -p "Summarize this codebase"cat README.md | pi -p "Summarize this text"pi -p @screenshot.png "What's in this image?"使用 --mode json 输出 JSON 事件,或使用 --mode rpc 进行进程集成。