在手機上叫 AI 寫程式:用 Tailscale + Termius 打造隨身開發工作台

作者: Calpa Liu
字數:3324
出版:2026 年 10 月 23 日
分類:開發工具AI遠端工作Tailscale工作流
開發者的工作場所,常常被綁在一張桌子上。本文記錄我如何用 Tailscale 把手機和 AWS EC2 開發機放進同一個私有網路、用 Termius 在手機上維持一個像樣的 SSH 終端、再讓一台長駐的 AI agent 把自然語言變成 commit。從架構設計、踩過的地雷,到非同步委派的工作模式,完整拆解「手機叫 AI 寫程式」這件事。

前言:從一個不在電腦前的念頭開始

我沒有打算把手機變成生產力工具。一開始的場景其實很單純:某天晚上躺著的時候,突然想到早上那個部署失敗的問題,八成是 build 環境的 Node 版本不對。要起床開電腦驗證嗎?還是先記在備忘錄,明天再說?

那天晚上,我掏出手機、打開 SSH、講了一句話。三分鐘後,AI agent 已經把 build log 撈出來、比對完 Node 版本、改好設定檔,然後 push 觸發了重新部署。我鎖上手機繼續躺著,十分鐘後再看一眼,部署成功了。

這套架構不是什麼新發明,它只是三個成熟工具的組合:Tailscale 負責把手機和開發機放進同一個私有網路,Termius 負責在手機上提供一個像樣的 SSH 終端,然後一台跑著 AI agent 的開發機負責把自然語言變成 commit。

這篇文章想記錄的,是這個組合在實際使用之後的樣子:它怎麼配置、工作模式有什麼質變、踩過哪些地雷,還有,哪一種工作真的適合這樣做,哪一種不適合。

為什麼不是遠端桌面?我想要的是「派工作」,而不是「盯螢幕」

談到手機上寫程式,多數人的第一反應是遠端桌面,把手機螢幕當成桌面的延伸。

我自己試過幾次之後就放棄了。實務上有幾個很實在的痛點:手機螢幕上操作桌面解析度,字小到必須不斷縮放平移,一個 session 下來眼睛非常累;觸控操作滑鼠游標的精準度,做什麼都慢半拍;連線稍微不穩,畫面就開始卡頓。

而最根本的問題是,遠端桌面是把你的人送到電腦前,但你的開發工作,本來就不需要人在電腦前。

SSH 加上 AI agent 的思路完全不同。你不需要看到桌面,因為 agent 替你坐在電腦前。你要做的只有三件事:把問題講清楚、確認它理解的方向對不對、驗收結果。

我要的不是把手機變成小螢幕,而是把工作留在它該在的地方,把結果送到我手上。這不只是工具的差別,而是模型的差別。

對「想處理的是事情本身,而不是操作介面」的開發者來說,這個思路幾乎是為這個場景量身打造。


架構:三件套的分工

Tailscale 官方產品圖
Tailscale 官方產品圖

整套架構拆開來看,每個角色的職責都非常單一。

第一件是 Tailscale,負責網路層。它是一個基於 WireGuard 的 mesh VPN,最大的特色是零配置,手機和開發機各裝一個 client、登入同一個帳號,兩台設備就自動在同一個私有網路裡互相可見。不需要開 port、不需要設定防火牆規則、不需要處理動態 IP。它的 MagicDNS 甚至讓你不用記 IP,直接用設備名稱就可以連線。

我的開發機是一台 AWS EC2,上面跑著日常的開發環境。Tailscale 裝好之後,從手機連線就是一行指令的事,不需要碰 Security Group,也不需要擔心彈性 IP 換了之後連線斷掉。

第二件是 Termius,負責終端層。手機上的 SSH 客戶端選擇不多,Termius 的價值在於:連線設定雲端同步、字型與配色可以調到長時間閱讀不累、snippet 功能讓常用的長指令變成一鍵執行。SSH 在手機上最大的摩擦就是輸入,snippet 把「連上之後的第一個動作」壓縮成一次點擊。

第三件,也是整個架構的靈魂,是一台長駐的 AI agent。它跑在開發機上,讀得到專案的程式碼,可以執行命令、跑測試、commit、push、看部署結果。手機 SSH 連上去,用自然語言下指令,它就開工。

關鍵在於,它的對話狀態是主機保留的。手機 SSH 斷線了、App 切到背景了、你人先去忙別的了,agent 的工作不會中斷。你回來的時候,它已經把事情做完了,等你看結果。

配置實錄:踩過的坑比功能清單更有用

Termius 應用程式介面
Termius 應用程式介面

SSH key:每台設備一把,用不到就撤

把公鑰放進 EC2 的 authorized_keys 是基本動作,但真正重要的是 key 的管理策略。我建議每台設備一把獨立的 key,手機一把、平板一把,任何一台設備不見了,只需要單獨撤銷那一把,不影響其他設備。authorized_keys 裡躺著的 key 也值得定期盤點,用不到的就移除,不要讓幾年前的舊 key 一直留著。

MagicDNS:名字比 IP 好記

Tailscale 的 MagicDNS 打開之後,SSH 指令可以直接用設備名稱:

ssh ec2-user@dev-box

不用記 100.x.x.x 這種 Tailscale 位址,也不用擔心 EC2 的公 IP 換了之後要改設定。聽起來是小事,但在手機上少打一串字,摩擦就少一分。

開發環境的地雷:真實案例

這套架構本身的配置很簡單,真正會卡住人的,反而是開發機本來就有的環境問題。平時坐在電腦前,這些問題當場就解了,懶得記錄。改成手機遠端之後,每個地雷都變成一次完整的 debug 流程。

我自己踩過的三個真實案例:本機的 Homebrew yarn(1.22)讀不懂 yarn 4 的 lockfile patch 協議,yarn install 直接炸;Cloudflare Pages 的 build 環境 Node 版本和本地不一致,部署連續失敗三次;SQLite 的 datetime('now') 回傳 UTC 而不是本地時間,害我把早上七點半的部署記成昨夜十二點。

這些坑的共同點是,它們都不是遠端架構特有的問題,而是本來就會遇到的工程問題。差別在於,解決它們的地方是手機上的一段對話。AI agent 撈 log、比對版本、改設定、驗證,這條鏈它自己跑完,我只需要確認方向。


工作模式:非同步委派的四個節奏

Termius 遠端工作情境
Termius 遠端工作情境

這套架構真正改變的,不是「在哪裡寫程式」,而是你和 AI 之間的分工模式。

剛開始使用的時候,多數人會本能地進入盯著看的模式:下一個指令、看它跑、等它完成、看結果、再下一個指令。這種模式在手機上特別痛苦,你要一直保持連線、一直滑螢幕看進度,等於把手機當成一個很小的螢幕在用。

真正的質變來自於切換成非同步委派。實務上我把它拆成四個節奏。

1. 下指令就走

指令講清楚,確認 agent 理解的方向對,然後就可以關掉 Termius。AI agent 在背景跑,跑測試、修錯誤、重試、部署,這些它自己會處理。你鎖上手機,繼續過你的生活。

2. 回來驗收

半小時後想起來,打開手機瀏覽器輸入你的網址,部署已經上線,測試全綠。這個驗收的動作在手機上反而意外地順手,因為你驗收的本來就是訪客看到的樣子,而不是開發工具裡的狀態。

3. 修方向

結果不對的時候,對話紀錄裡有完整的執行過程,agent 做了什麼、卡在哪裡、它嘗試過什麼。你只需要指出方向,例如這個改法不對,換另一種方式,它就從斷點接著跑。

4. 失敗也是交付物的一部分

如果 agent 嘗試了幾次還是失敗,那次的失敗紀錄本身就是有價值的:錯誤訊息、嘗試過的路徑、卡住的點。拿著這些資訊,不管是自己上手,還是換個方式描述給 agent,都比從零開始快。

一天之內,這種工作模式可以完成的量相當具體。一個跑了八年的部落格,從 Astro 5 升級到 7.4.2,跨了兩個 major;完整遷移搜尋系統;把兩個伺服器端點改造靜態化;清掉三十多個死元件;測試從 32 個補到 79 個。然後在部署失敗三次之後,靠著 agent 自己用 API 撈 Cloudflare build log 定位問題,第四次成功上線。

這中間的每一次「下指令」,花費的時間都在一分鐘以內。


邊界:手機做不了的事,與它意外擅長的事

誠實地說,這套架構有它的邊界。

適合的是文本為主的工作:修 bug、補測試、重構、寫文件、調整設定、部署與驗證、呼叫 API 除錯。這些工作佔日常開發的大宗,而且它們的結果驗證都可以用文字呈現,在手機上完全沒有障礙。

不適合的是需要精細視覺判斷的工作:像素級的 UI 微調、動畫節奏的調校、複雜版面的響應式調整。手機螢幕上看不出細節差異,硬做只會來回鬼打牆。

但即使是視覺類的工作,閉環裡的部署驗證依然可以在手機上完成。先讓 agent 把改動部署到預覽環境,手機看效果,然後說第二個區塊的間距再放大一點。視覺判斷在人,機械執行在 agent,這條界線畫清楚,手機的定位就清楚了。

意外擅長的還有一件小事:行動選單按鈕的 bug。一個八年來按了沒反應的老問題,就是在手機上重現、確認,然後叫 agent 修掉的。手機上發現的問題,手機上解決,這個閉環本身就有種完整的感覺。


安全模型:不暴露公網的前提下隨時可達

這套架構的安全模型建立在兩層之上。

第一層是 Tailscale 的私有網路。開發機不暴露任何 port 到公網,SSH 只在 tailnet 裡可達,外部掃描器根本看不到你的機器存在。這和開一個 port 給 SSH、然後用 fail2ban 擋暴力嘗試,是完全不同的威脅模型。前者是根本沒有攻擊面,後者是攻擊面一直在,只是努力擋。

第二層是 SSH key 認證。關閉密碼登入、每台設備一把獨立 key、定期盤點 authorized_keys。AI agent 的權限邊界也要想清楚,它跑在你的使用者帳號下,能做的事就是你帳號能做的事,所以專案目錄之外的操作,預設就是它碰不到的。

好的安全,不是加更多的鎖,而是留更少的門。這句話放在 Tailscale 加 SSH 的組合上,比放在任何一個 port forwarding 方案上都成立。


如果要做成完全體,我會怎麼演進?

目前的架構已經可以支撐日常開發,但如果往完全體走,我心裡有幾個演進方向。

第一個是通知回路。現在的流程是想起來再看,如果 agent 在完成任務,或遇到需要決策的岔路時,能主動推播到手機,例如 Telegram 或通知類服務,非同步委派就能再往前一步。連想起來看都不需要,需要你的時候它會找你。

第二個是語音輸入。手機上打字終究是摩擦,如果語音輸入可以直接變成 agent 的指令,例如 iOS 捷徑接語音轉文字再接 SSH 執行,通勤時用講的就能派工作。

第三個是多機 mesh。Tailscale 的 tailnet 天然支援多台設備,如果開發機不止一台,桌上型、筆電、NAS 各一台,agent 可以根據任務性質選擇在哪台機器執行。重的 build 丟桌上型,日常修改在筆電。

第四個是任務佇列的視覺化。現在的想起來再看依賴記憶,如果把 agent 的任務狀態變成一個隨時可查的清單頁,執行中、已完成、需要決策,委派的粒度就能更細。


結語:電腦變成一個地址,而不是一張桌子

回頭看這套架構,它用的每一個工具都不是新的。Tailscale 是成熟商業產品,Termius 是老牌 SSH 客戶端,tmux 的歷史比很多讀者的年紀都大。真正新的,是長駐 AI agent 讓這個組合產生了質變。

以前遠端連回開發機,你面對的是一個終端機,所有事情都要自己動手。現在面對的是一個懂你專案的工程師,所有事情只要講清楚就好。

開發者的工作場所,正在從一張桌子變成一個地址。桌子意味著你必須人在那裡,地址意味著你隨時可以連上去。當寫程式的場所從實體限制變成網路座標,剩下的問題就只有一個:你想在什麼時候、什麼地方,解決什麼問題。

而這個問題的答案,應該由你自己決定,而不是由那張桌子決定。

開發工具AI遠端工作Tailscale工作流
關於 Calpa

Calpa 擅長使用 TypeScript、React.js 和 Vue.js 建立 Responsive Website。

他積極參與開源社區,曾在 2019 年的香港開源大會上擔任講者,提供工作經驗和見解。此外,他也在GitHub 上公開分享個人博客程式碼,已獲得超過 300 顆星星和 60 個分支的支持。

他熱愛學習新技術,並樂意分享經驗。他相信,唯有不斷學習才能跟上快速演變的技術環境。

熱門文章

最新文章

後端工程師免費工具資源
後端工程師免費工具資源
部落格內容洞察儀表板
以視覺化儀表板方式追蹤文章成效、分享熱度與分類分布,協助創作者掌握內容表現。
你擁有的 .eth 是誰?一鍵查出 ENS 背後地址
只要輸入一個 ENS 名稱,我們就能幫你查出它指向哪個以太坊地址,還能看到頭像。如果你常常看到 .eth 名稱卻不知道誰在背後,這個小工具幫得上忙。
前端工程師免費工具資源
前端工程師免費工具資源
水果切割圖生成器
圖片管理中心
管理圖片資源
Vibe Coding Idea Lab:AI 共創 × 靈感實作 × MVP 引爆場
精選來自超過 700 位學員、Discord 社群與線上共創活動的 idea。我們用 AI 快速落實創意,用 prompt 引爆行動,用共創測試價值。現有 ${ideas.length} 個 idea,歡迎隨緣分享。
原作(青山剛昌)產生器
一鍵創建原作(青山剛昌)的封面圖
Blurhash
一鍵創建 Blurhash
活動圖生成器
一鍵創建活動的封面圖
Facebook Quote
Facebook Quote
封面圖生成器
自動創建適合各種平台的文章封面圖
Wagmi Card
一鍵創建 Wagmi 的封面圖
IP 查詢
快速查詢和定位 IP 地址的地理位置和相關信息
LLM
使用 LLM 模型進行聊天
Music Macro Language (MML) Studio
用程式語法編寫旋律,用音符構築想像
蒙特卡羅估算 π
使用蒙特卡羅方法演示 π 值的估算過程
日本色彩
探索和使用傳統日本色彩
PixAI Prompt 組合器|快速打造可用於 AI 繪圖的語言拼圖
使用 PixAI 卻不會寫 prompt?這個工具幫你一鍵組裝角色、表情、風格語彙,輸出高品質繪圖提示語句(Prompt),可直接貼入 PixAI 使用。適合插畫師、創作者、AI 新手與 VTuber 角色開發者。
Python 運行器
無需後端、無需登入,只需打開瀏覽器即可運行 Python 代碼(由 Pyodide 提供支持)
文字分類器
使用 MediaPipe TextClassifier 分類文字
全端工程師免費工具資源
全端工程師免費工具資源
Web3 工程師免費工具資源
Web3 工程師免費工具資源
紫微斗數排盤系統|結合 AI 的命盤性格與事業財務分析生成器
紫微斗數排盤工具,輸入生日與時辰,自動生成完整命盤分析提示(Prompt)。結合最專業紫微理論與 AI 助力,助你深入解析性格、事業、財務與人際課題。免費使用,適合命理師及紫微愛好者。