‹ 指南

在 Term 里跑 pi 编程代理

代理跑在服务器上——你的代码和工具链本来就在那儿。Term 只是你指挥它的终端,所以一部手机就够了:读文件、改代码、看着测试变绿。

撰写于

真机上的 pi:输入提示词,代理读文件、写改动、跑测试。 真机录制,应用默认字号,48 列。做了加速,其余未作剪辑。
什么跑在哪

pi 是终端里的编程代理:它在一个真实的工作目录里读文件、写文件、执行命令。它跑在服务器上,不是手机上——所以仓库、编译器、测试runner 都是现成的,也不用把大堆文件同步到设备。

也就是说,这条链路就是普通 SSH。除了「终端得能把代理画的东西渲染出来」,这里没有任何只属于 Term 的东西。

装到服务器上

pi 是 Node 包,服务器需要 Node 20 或更新。全局安装:

server
npm install -g --ignore-scripts @earendil-works/pi-coding-agent

--ignore-scripts 是故意加的:全局装一个编程代理,没有理由让它在你的机器上跑任意 postinstall 脚本。

配一把 key

pi 是自带 key、不绑厂商的——Anthropic、OpenAI、Gemini、DeepSeek、Groq、OpenRouter 等都走同一套代理循环。设好你所用厂商的环境变量,然后自检:

server
export DEEPSEEK_API_KEY=sk-...
pi auth check --provider deepseek

把 export 放进一个只有你能读的文件、启动代理时再 source 它,而不是写进 shell 配置:一旦 export 进去,这个会话里每条命令的环境里都有这把 key。

连上,跑起来

在 Term 里加好主机,开一个会话,进项目目录跑 pi。配置到此为止——再往后就是代理自己的界面了。

server
cd ~/your-project
pi

代理很吃 Ctrl / Alt 组合键。Term 支持 kitty 键盘协议,这些组合会原样送达,而不是被压平成代理分辨不出来的东西。 tmux 配置 →

如果颜色不对劲

如果工具块渲染成整片饱和的绿色或蓝色,而不是一层淡淡的底色,说明代理退回到了 256 色。这不是显示 bug,修起来只要一行。

终端是靠 COLORTERM 来宣告自己支持 24 位色的。而这个变量过不了 SSH:TERM 传过去是 xterm-256color,它只承诺 256 色;客户端发的 env 请求又只是「建议」——原版 sshd 默认只写了 AcceptEnv LANG LC_*,其余一律丢弃。代理于是把配色量化到 216 色立方,本来只是一层提示色的东西就成了大色块。

在服务器上设一下,写进你登录用的那个账号的 shell 配置里:

~/.bashrc
export COLORTERM=${COLORTERM:-truecolor}
~/.config/fish/config.fish
set -q COLORTERM; or set -gx COLORTERM truecolor

下次会话生效。同一个设置也能治好 vim 配色方案、bat、delta、lazygit、btop 里发闷的颜色——凡是用 24 位色画界面的都算。

较新版本的 Term 在开启 shell 集成时会替你设好,所以应用是最新的话通常不用管。上面这行加了也无妨;如果你在旧版本、关掉了 shell 集成、或者用 fish,它就是那个修法。

还值得知道的几件事

默认字号下,手机上的会话大约是 56 列。代理在这个宽度下排版没问题,但长路径会折行——项目路径短一点,整段对话会好读很多。

走 mosh 的话,换网不断线,所以一次长时间的代理任务能在 Wi-Fi 和流量之间切换时继续跑。 Mosh 设置 →

代理花的是你自己的 key。pi 的状态栏里一直显示 token 和费用累计,按量计费的话,盯这个数就够了。