Coding Agent — @mariozechner/pi-coding-agent
概述
Pi 是一个极简的终端编程工具(Terminal Coding Harness)。
它的核心理念是:让 Pi 适应你的工作流程,而不是反过来。
Pi 通过扩展(Extensions)、技能(Skills)、提示模板(Prompt Templates)和主题(Themes)来适应各种工作场景,无需 fork 或修改 Pi 的内部代码。
安装
npm install -g @mariozechner/pi-coding-agent
认证
方式 1:API Key
export ANTHROPIC_API_KEY=sk-ant-...
pi
方式 2:订阅登录
pi
/login # 然后选择 Provider
四种运行模式
| 模式 | 说明 |
|---|---|
| 交互模式(Interactive) | 终端 TUI 交互界面(默认) |
| 打印模式(Print) | 直接打印输出 |
| JSON 模式 | JSON 格式化输出 |
| RPC 模式 | RPC 进程集成模式 |
交互模式界面
┌─────────────────────────────────────────────────────────┐
│ Startup Header — 快捷键提示、加载的 AGENTS.md、技能等 │
├─────────────────────────────────────────────────────────┤
│ Messages — 消息、助手回复、工具调用和结果、通知等 │
├─────────────────────────────────────────────────────────┤
│ Editor — 输入区域,边框颜色表示思考级别 │
├─────────────────────────────────────────────────────────┤
│ Footer — 工作目录、会话名、Token 用量、费用、当前模型 │
└─────────────────────────────────────────────────────────┘
编辑器功能
| 功能 | 操作 |
|---|---|
| 引用文件 | 输入 @ 模糊搜索项目文件 |
| 路径补全 | Tab 键补全路径 |
| 多行输入 | Shift+Enter(或 Ctrl+Enter on Windows Terminal) |
| 图片粘贴 | Ctrl+V 粘贴图片(Alt+V on Windows) |
| Bash 命令 | !command 运行并发送给 LLM,!!command 运行不发送 |
命令系统
输入 / 触发命令:
| 命令 | 说明 |
|---|---|
/login, /logout | OAuth 认证 |
/model | 切换模型 |
/settings | 思考级别、主题、消息传递方式 |
/resume | 从之前的会话恢复 |
/new | 开始新会话 |
/name <name> | 设置会话名称 |
/session | 显示会话信息 |
/tree | 跳转到会话的任何点继续 |
/fork | 从当前分支创建新会话 |
/compact [prompt] | 手动压缩上下文 |
/copy | 复制上一条助手消息 |
/export [file] | 导出会话为 HTML |
/share | 上传为私有 GitHub Gist |
/reload | 重新加载配置 |
/hotkeys | 显示所有快捷键 |
/quit, /exit | 退出 |
快捷键
| 快捷键 | 功能 |
|---|---|
| Ctrl+C | 清空编辑器 |
| Ctrl+C 两次 | 退出 |
| Escape | 取消/中止 |
| Escape 两次 | 打开 /tree |
| Ctrl+L | 打开模型选择器 |
| Ctrl+P / Shift+Ctrl+P | 循环切换模型 |
| Shift+Tab | 循环切换思考级别 |
| Ctrl+O | 折叠/展开工具输出 |
| Ctrl+T | 折叠/展开思考块 |
消息队列
当 Agent 正在工作时,可以提交消息:
- Enter — 提交引导消息,当前工具调用完成后发送
- Alt+Enter — 提交跟进消息,Agent 完成所有工作后发送
- Escape — 中止并将队列中的消息恢复到编辑器
- Alt+Up — 将队列中的消息恢复到编辑器
内置核心工具
Pi 默认提供 4 个核心工具:
| 工具 | 说明 |
|---|---|
read | 读取文件 |
write | 写入文件 |
edit | 编辑文件 |
bash | 执行 Shell 命令 |
会话管理
分支(Branching)
Pi 的会话是有向无环图(DAG):
- 每个消息可以是主干或分支
- 分支可以从任意点创建
- 分支不会丢失历史
压缩(Compaction)
当上下文接近 Token 限制时:
- Pi 分析当前会话
- 压缩为摘要,保留关键信息
- 继续对话
也可以手动触发:/compact [prompt]
扩展方式
Pi 支持 4 种扩展方式:
- Prompt Templates — 提示模板
- Skills — 技能包
- Extensions — TypeScript 扩展
- Themes — 主题
详见后续文档。
相关文档
- Settings 设置
- Session 会话管理
- Compaction 压缩
- Skills 技能
- Extensions 扩展
- Prompt Templates 提示模板
- Themes 主题
- RPC 模式
- SDK 使用
- Models 模型配置
- Providers Provider 配置
- Keybindings 快捷键
- TUI 自定义
- Windows 配置
- Termux 配置
- tmux 配置