Portless:把本機開發服務固定成命名網址,降低多 Agent 並行時的 port 混亂
AI Coding / Local Dev Tooling
當同一台機器同時跑多個專案、git worktree 或 AI coding agent 時,真正讓流程失穩的往往不是大架構,而是 localhost:3000、3001、5173 這些不斷變動的小細節。Portless 的切入點就是把易變 port 抽象成穩定、可命名的本機網址。
https://myapp.localhost,讓人與 agent 都比較不容易開錯服務、打錯環境或踩到 port 衝突。
這篇 Threads 提到什麼
Ryan Chou 分享 Portless 適合用在同時跑多個 AI coding agent 的開發流程。它會把 localhost:3000、localhost:3001 這類會變動的網址,改成像 https://myapp.localhost 的固定名稱;實際 port 由 Portless 自動分配。
這在多專案、多分支、git worktree 並行時特別有用,因為每個分支或服務可以取得獨立網址,減少 port 衝突,也降低 agent 操作到錯誤服務的機率。
Portless 的核心能力
穩定命名網址
用 https://<name>.localhost 取代裸 port。對人類來說更好記,對 agent 來說也更容易被 prompt、測試腳本與 browser automation 穩定引用。
自動分配 port
Portless 會替子程序分配 port,並透過 PORT 環境變數或框架對應參數傳入,支援 Next.js、Express、Nuxt、Vite、Astro、Angular、Expo 等常見開發伺服器。
預設 HTTPS
首次執行會產生並信任本機 CA,預設用 HTTPS / HTTP/2。這有助於測試需要 secure context 的功能,例如 cookie、WebAuthn、service worker 或部分瀏覽器 API。
Worktree 友善
多分支、多 worktree 並行時,各分支可以取得獨立網址,避免 agent 或開發者把 A 分支的測試打到 B 分支的服務上。
v0.15 的關鍵更新:portless doctor
2026-06-24 發布的 v0.15.0 加入了 portless doctor。這是一個唯讀診斷命令,會檢查:
- Node.js 環境
- Portless state directory
- Proxy 是否存活
- Route entries
- Hostname / DNS resolution
- HTTPS CA trust
- LAN 相關前置條件
它的價值在於「只讀狀態、不修改環境」,但會直接印出建議修法。對 autonomous coding agent 來說,這種可重跑、可診斷、低副作用的命令非常重要。
| 傳統做法 | Portless 做法 | 對 Agent 的影響 |
|---|---|---|
記住 localhost:3000 | 使用 https://myapp.localhost | URL 穩定,prompt / 測試腳本不易漂移 |
| 手動避開 port 衝突 | 自動分配 port | 多 agent 並行時較少互相踩到 |
| 環境壞掉時人工排查 | portless doctor 唯讀診斷 | agent 可先蒐集明確錯誤與建議修法 |
| 不同 worktree URL 混在一起 | 各分支 / app 可有獨立命名 | 降低操作錯服務的風險 |
使用方式速記
npm install -g portless直接啟動專案 dev script,產生 https://<project>.localhost
portless
明確命名服務
portless myapp next dev
檢查環境,不修改狀態
portless doctor
適合導入的場景
- 一台機器同時跑多個 AI coding agent。
- 同一 repo 用多個 git worktree 平行開發。
- E2E 測試、browser automation 或 agent prompt 需要穩定 URL。
- 本機 HTTPS / secure context 經常造成測試差異。
- 團隊常被 port 衝突、DNS、憑證信任問題打斷。
來源與參考
- Threads:Ryan Chou 對 Portless 的介紹
- GitHub:vercel-labs/portless
- Release:Portless v0.15.0