Pi Agent 多平台部署
Pi Agent 支持在 Windows、macOS、Linux 和 Android(Termux)上运行。
本章介绍各平台的配置要点。
macOS 配置
macOS 是 Pi Agent 的一等支持平台,大部分功能开箱即用。
推荐终端
| 终端 | 安装方式 | 推荐理由 |
|---|---|---|
| iTerm2 | brew install --cask iterm2 | 原生 True Color 支持,图片显示效果好,功能丰富 |
| Kitty | brew install --cask kitty | GPU 加速渲染,速度快 |
| Warp | brew install --cask warp | 现代化终端,AI 功能集成 |
验证 True Color 支持
$ echo $COLORTERM truecolor
Shell 别名
Pi Agent 在非交互模式下运行 bash(即 bash -c)时,默认不会自动展开你的 Shell 别名。
核心机制:让 Pi 识别 Shell 别名若要在 Pi 中使用自定义别名,需将以下配置写入 ~/.pi/agent/settings.json(或 ~/.atomic/agent/settings.json)中,令其在启动时主动加载你的 Shell 配置文件(如 ~/.zshrc 或 ~/.bashrc):
{
"shellCommandPrefix": "shopt -s expand_aliases\neval \"$(grep '^alias ' ~/.zshrc)\""
}注意:请把路径 ~/.zshrc 改成你实际使用的 Shell 配置文件路径。
Windows 配置
Windows 上可以通过原生终端或 WSL2 运行 Pi Agent,关键是选对终端并处理快捷键冲突。
推荐安装方式
在 Windows 上推荐使用 Windows Terminal 配合 WSL2 或直接使用 Node.js。
安装 Git for Windows
Pi 在 Windows 上默认使用 Git Bash 执行命令。
启动时会按顺序查找,其中就包括默认路径 C:\Program Files\Git\bin\bash.exe。
如果没有安装 Git for Windows,启动时会找不到 bash,直接安装 Git for Windows 即可解决。
如果不想用 Git Bash,也可以通过 shellPath 配置指定其他 bash,或通过 defaultTools 改用 PowerShell 工具。
安装 Node.js
从 nodejs.org 下载安装包,或使用 winget:
# PowerShell > winget install OpenJS.NodeJS.LTS
安装 Pi Agent
在 Windows Terminal 的 PowerShell 或 CMD 中执行:
# PowerShell > npm install -g --ignore-scripts @earendil-works/pi-coding-agent
Windows 特有快捷键
| 功能 | Windows 快捷键 | macOS/Linux 快捷键 |
|---|---|---|
| 粘贴图片 | Alt+V | Ctrl+V |
| 多行输入 | Ctrl+Enter | Shift+Enter |
| 发送跟进消息 | Ctrl+Q(发送)、Alt+Q(取回) | Alt+Enter |
Windows 默认用 Ctrl+Q 发送跟进消息、Alt+Q 取回排队消息,无需重映射。
想改用 Alt+Enter 才需要配置。
在 Windows Terminal 中,Alt+Enter 默认是全屏快捷键。
如果想让 Pi Agent 接收到这个快捷键,需要在 Windows Terminal 设置中移除或重映射全屏快捷键。
在设置中搜索 "toggleFullscreen",将其快捷键改为其他组合。
然后把 pi 的 app.message.followUp 绑定为 alt+enter。
挂起行为
Windows 原生终端不支持 Unix 的作业控制。
原生 Windows 上 Ctrl+Z 被绑定为编辑撤销,挂起需自行绑定一个快捷键。
WSL 下用 Alt+Z 挂起,Ctrl+Z 仍可挂起进程,配合 fg 恢复正常可用。
Termux(Android)配置
Pi Agent 可以在 Android 设备上通过 Termux 运行。
安装步骤
先安装 Termux 本体,请从 F-Droid 获取最新版安装包,再在 Termux 中执行下面的命令。
实例
pkg update && pkg upgrade
pkg install nodejs termux-api
# 2. 安装 Pi Agent
npm install -g --ignore-scripts @earendil-works/pi-coding-agent
# 3. 验证安装
pi --version
# 4. 首次使用共享存储前,先执行一次以授权访问下载目录等路径
termux-setup-storage
除了 Termux 本体,还需要在手机上安装 Termux:API 应用。
这个应用同样可以从 F-Droid 获取,剪贴板等设备集成能力都依赖它。
只安装 termux-api 命令行包而不装 Termux:API 应用,相关命令不会生效。
注意事项
Termux 环境与常规 Linux 有差异,下面几点需要留意。
| 项目 | 说明 |
|---|---|
| 存储路径 | Termux 的存储访问路径与常规 Linux 不同,使用 ~/storage/shared/ 访问共享存储,首次使用前先执行 termux-setup-storage |
| 图片显示 | 部分终端的图片显示功能可能受限 |
| 剪贴板 | Termux 剪贴板集成仅支持文本,图片粘贴不可用 |
| 输入体验 | 建议使用蓝牙键盘或 OTG 键盘以获得更好的编辑体验 |
tmux 集成
Pi Agent 可以在 tmux 会话中正常工作。
优势
把 Pi Agent 放进 tmux,主要为了获得持久化和多窗口能力。
| 优势 | 说明 |
|---|---|
| 会话持久化 | 即使 SSH 断开,Pi Agent 仍在后台运行 |
| 多窗口布局 | 一个窗口运行 Pi Agent,另一个窗口查看代码 |
| 远程开发 | SSH 到服务器后使用 Pi Agent |
推荐配置
在 ~/.tmux.conf 中添加:
实例
# 确保 True Color 支持
set -g default-terminal "tmux-256color"
set -ag terminal-overrides ",*:Tc"
# 开启扩展键上报并以 CSI-u 格式转发组合键
# 缺了这两行,tmux 里 Shift+Enter 会退化成普通回车
set -g extended-keys on
set -g extended-keys-format csi-u
# 增大回滚缓冲区(查看大量 AI 输出时有用)
set -g history-limit 50000
其中 extended-keys 两行是关键配置,作用是让 Shift+Enter、Ctrl+Enter 等组合键正确传入 pi。
extended-keys-format csi-u 需要 tmux 3.5 或更高版本,可用 tmux -V 查看版本。
$ tmux -V tmux 3.5a
不加这两行,tmux 里 Shift+Enter 会退化成普通回车,多行输入会直接把消息发送出去。
如果 tmux 版本在 3.2 到 3.4 之间,请省略 csi-u 那一行,pi 仍支持 tmux 默认的 xterm 格式。
终端设置优化
无论使用哪个终端,下面几项设置都会直接影响 Pi Agent 的显示效果。
| 设置项 | 建议值 | 说明 |
|---|---|---|
| True Color | 启用 | 确保终端支持 24 位色彩 |
| 字体 | 等宽字体(如 JetBrains Mono、Fira Code) | 确保代码对齐和特殊字符显示 |
| 回滚缓冲区 | 至少 10000 行 | 查看大量 AI 输出和历史消息 |
| VS Code 终端 | 设置 minimumContrastRatio 为 1 | 确保主题颜色准确渲染 |
VS Code 集成终端配置
在 VS Code 的 settings.json 中添加以下配置,文件路径为 ~/Library/Application Support/Code/User/settings.json(macOS):
实例
"terminal.integrated.minimumContrastRatio": 1,
"terminal.integrated.fontFamily": "JetBrains Mono",
"terminal.integrated.fontSize": 13
}
Shell 别名建议
以下是一套完整的 Pi Agent 别名,各平台通用,可添加到 ~/.zshrc、~/.bashrc 或等效的 shell 配置文件中:
实例
# Pi Agent 常用别名
alias pin='pi --name' # 命名会话启动
alias pic='pi -c' # 继续最近会话
alias pir='pi -r' # 恢复历史会话
alias piq='pi -p' # 快速一次性问答
alias pip='pi --print' # Print 模式(同 -p)
alias pif='pi --fork' # 分叉会话
alias pii='pi --no-session' # 临时模式(不保存)
alias piro='pi --tools read,grep,find,ls' # 只读模式
alias pirev='pi -p "审查暂存的代码变更(git diff --cached)"'
如果你使用 fish shell,将 alias 改为 abbr 或使用 fish 的 alias 语法。
# fish shell 使用 abbr 定义缩写 abbr -a pic pi -c
