‹ 指南

在 Term 裡跑 pi 編程代理

代理跑在伺服器上——你的程式碼和工具鏈本來就在那邊。Term 只是你指揮它的終端機,所以一部手機就夠:讀檔案、改程式、看住測試變綠。

撰寫於

真機上的 pi:輸入提示詞,代理讀檔案、寫改動、跑測試。 真機錄製,應用預設字級,48 欄。有加速,其餘未經剪接。
什麼跑在哪裡

pi 是終端機裡的編程代理:它在一個真實的工作目錄裡讀檔、寫檔、執行指令。它跑在伺服器上,不是手機上——所以程式庫、編譯器、測試工具都是現成的,也不用把大量檔案同步到裝置。

換句話說,這條路徑就是普通 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 與費用累計,按用量計費的話,盯住這個數字就夠了。