跳轉到主要內容
Vibex 有兩種“人不在電腦前也能繼續幹活”的用法。先確認你要哪一種:
什麼是無頭執行階段:可以理解成“沒有視窗的 Vibex”。Agent 會話、工作區、Git、終端機和供應商設定都由它負責,能力和桌面端完全一樣,只是它跑在伺服器上,你需要通過桌面端或手機連過去操作。它的程式名是 vibex-server。
兩條路線都靠一次性配對建立信任:第一次必須在裝置旁邊拿到配對碼或二維碼;配對成功後長期憑據儲存在兩端,之後會自動重連,不需要反覆配對。 下面的步驟假設你已經裝好桌面端。Android 客戶端可以從 GitHub Releases 側載安裝;iOS 提供未簽名的真機 IPA 和模擬器包,真機需要用自己的 Apple ID 重簽名,詳見安裝與平台。

一、雲端開發:把 Vibex 部署到伺服器

Agent 會在伺服器上讀寫程式碼、執行命令,所以先把伺服器準備好,再用客戶端連過去。

開始之前

  • 一臺裝了 Docker 的 Linux 伺服器。只有你一個人用:1 核 2 GB 記憶體起步;同時跑多個 Agent:建議 2 核 4 GB 以上。
  • 程式碼要能在伺服器上訪問到:在伺服器上 git clone,或者把宿主機的程式碼目錄掛進容器(下面示例用的是掛載)。
  • Agent 的賬號或 API Key 等客戶端連上以後再配置:在桌面端的 配置中心 裡新增(見 配置中心),不要寫進 compose 檔案,也不要提交到倉庫。

第 1 步:啟動執行階段

專案倉庫裡已經包含一份完整的 docker-compose.yml 配置檔案,可以直接檢視:deploy/server/docker-compose.yml。下面這份是按本文場景裁剪的最小示例,儲存成 docker-compose.yml 放在伺服器上任意目錄即可:
第 1 步示例只用了最必要的幾個變數;完整的變數清單(包括限流、事件容量、金鑰存放位置等)見環境變數參考。
image 裡的 rc 跟隨最新候選版,latest 跟隨最新穩定版;需要固定版本時再改成具體版本號。已經克隆了倉庫時,也可以直接用倉庫裡的部署檔案從原始碼構建:docker compose -f deploy/server/docker-compose.yml up --build -d vibex-server。
啟動並取得配對資訊:
日誌裡會出現兩樣東西:
  • pairing_code=123-456-789:一次性配對碼,預設 5 分鐘後過期。
  • pairing_link=vibex://pair#/code/...:一條配對連線串,已經包含伺服器地址、一次性配對碼和伺服器證書(DER)。複製整條即可;客戶端會在發出第一個請求前固定這張證書,所以自簽證書的伺服器不需要系統 CA。
配對碼和連線串等同於密碼,只在配對時用一次。不要發到群裡、Issue 或截圖裡。過期後可以隨時在伺服器上重新生成。

如果伺服器在公網

公網部署只多一件事:必須用 HTTPS。讓 Caddy 自動申請證書,執行階段自己只監聽本機迴環地址:
同目錄再放一個 Caddyfile:
防火牆只需要放行 80、443 和 SSH;執行階段的 8765 保持在迴環地址上,不要暴露到公網。把域名和地址換成你自己的之後,VIBEX_ALLOWED_HOSTS 與 VIBEX_ALLOWED_ORIGINS 必須和實際訪問用的域名一致,否則請求會被直接拒絕。
不想把服務暴露在公網、又需要跨網路訪問時,可以在伺服器上裝 Tailscale,用 tailscale serve --bg http://127.0.0.1:8765 把它釋出到你的私有網路;然後把 VIBEX_DEPLOYMENT_MODE 設為 public、VIBEX_TLS_MODE 設為 trusted_https_proxy,並讓 VIBEX_PUBLIC_HOST 與 VIBEX_ALLOWED_HOSTS 都填 Tailscale 給你的主機名。

第 2 步:桌面端連過去

  1. 點選標題欄的 執行階段 按鈕,開啟執行階段管理器。
  2. 點 新增執行階段…,選 連線串 標籤,把上面那條 vibex://pair#/code/... 整條貼上進去,點 配對。伺服器用自簽證書時也走這條,因為證書指紋就在連線串裡。
  3. 也可以選 配對碼 標籤,手動填 伺服器地址 和 一次性配對碼。
  4. 配對成功後,執行階段的 證書 一欄會顯示 sha256: 指紋,可以和伺服器日誌裡的 tls_fingerprint 對一下。
  5. 在詳情裡點 切換到此執行階段 切過去;從這一刻起,桌面端裡的會話、檔案、Git、終端機都來自伺服器。想回到用本機開發,在列表裡選中 本機 再點 切換到此執行階段。要移除這個執行階段,在詳情裡點 移除——它只刪除本機儲存的裝置憑據,伺服器上的裝置授權仍然存在,需要在那臺伺服器上撤銷。

第 3 步:手機連過去

  1. 開啟行動端,選 連線雲端伺服器。
  2. 填 伺服器地址(例如 192.168.1.10:8765)和 配對碼,點 使用配對碼連線。
  3. 伺服器用自簽證書時,改把 vibex://pair#/code/... 連線串粘進 連線串 輸入框,它會同時帶上證書。
  4. 確認配對資訊即可;這臺裝置能做什麼由伺服器生成配對碼時決定,預設是 完全控制。想給它更小的權限,就在伺服器上用 docker exec vibex-server vibex-server pairing-code --permission read-only 重新生成一個配對碼(可選 read-only、approve-only、full-control)。

第 4 步:讓 Agent 看到你的程式碼

Agent 在伺服器上執行,它只能看到伺服器(容器)裡的目錄。所以程式碼必須放在伺服器上:
  • 在伺服器上 git clone 到 /data/repos/你的專案;或者
  • 在 compose 裡把宿主目錄掛進容器(示例中的 - /srv/repos:/data/repos)。
然後確認容器內路徑寫在 VIBEX_WORKSPACE_ROOTS 裡(示例中的 /data:/data/repos)。回到客戶端:新建會話 → 專案目錄 → 選擇其他目錄,你會看到 /data 和 /data/repos 兩個位置,進去選中專案即可。
只掛載、不加進 VIBEX_WORKSPACE_ROOTS,客戶端瀏覽不到那個目錄;只加進 VIBEX_WORKSPACE_ROOTS、不掛載,執行階段裡也沒有這個路徑。

第 5 步:日常維護

二、遠端開發:手機連你自己的桌面端

這條路線的權威仍然是你的電腦:Agent、檔案、Git、終端機都在桌面端上跑,手機只是拿到一個可以檢視和操作的視窗。適合“人在外面,想看一眼進度、回一句話、批一個權限”。

開始之前

  • 桌面端正在執行,電腦保持開機(睡眠會導致連線斷開)。
  • 手機和電腦網路可達:同一個 Wi-Fi 最簡單;不在同一網路時用 Tailnet 或自建 Relay。

第 1 步:在桌面端釋出遠端訪問

  1. 點選頂部工具欄的 配對移動裝置 圖示。對話方塊有兩個標籤:配對 用來發布新的配對,已配對裝置 (N) 用來管理已經持有授權的裝置。
  2. 選擇連線方式:
    • Tailnet(推薦):通過 Tailscale 等私有網路訪問,適合不在同一 Wi-Fi 的情況。
    • 自管 Direct HTTPS:你自己有一個能指向這臺電腦的 HTTPS 地址。
    • 自建 Relay:手機和電腦無法直連時,通過你自建的 Relay 轉發加密流量。
  3. 按介面提示填寫地址(Direct HTTPS 填 https://你的地址,Relay 填 https://你的 Relay 地址),選擇這臺手機能做什麼(預設 只讀,見下面的權限級別),然後點 釋出。
  4. 介面會出現二維碼和配對連結:掃碼即可配對,也可以 複製連結 發給手機。連結有效期很短,過期就點 重新生成。
配對連結和二維碼等同於一次性密碼,不要發到公開渠道。手機配對時桌面端會彈出確認,只有你確認才會成功。

第 2 步:在手機上完成配對

  • 和電腦在同一個 Wi-Fi:行動端會直接發現 nearby desktops,選中後確認即可。
  • 不在同一網路:用手機掃碼,或者打開復制過來的 vibex:// 連結。
  • 也可以手動連線:在行動端選 使用配對碼連線,填入桌面端顯示的地址和配對碼。
權限級別在桌面端釋出配對時就已經選定,手機發起配對後桌面端會要求你確認;完成後手機會顯示桌面端的會話列表。 桌面端也可以連線 SSH 或 WSL 遠端執行階段(測試版)。這種執行階段只能通過桌面端的 SSH 隧道訪問,手機不能直接配對;手機仍然連線桌面端,由桌面端轉發到遠端執行階段。詳見 SSH 與 WSL 遠端執行階段。

第 3 步:在手機上能做什麼

行動端沒有配置中心,不能管理 Agent、供應商、MCP 或 Skill。它的設定只包含 Connection、會話 timeline、外觀、Notifications 和關於。 所有寫操作的真實結果始終由權威執行階段產生;行動端顯示的是它的投影。

執行階段切換與恢復

行動端的首屏把配對和執行階段切換合在一起:列出已儲存的執行階段及其可達性,選一個即可連線;配對入口在同一個頁面裡以 sheet 開啟。
  • 恢復連線失敗時會回到配對頁,不會卡在空白連線頁。
  • 斷連時已儲存的執行階段仍然保留;下次回到前臺會自動重試。
  • 配對後客戶端不會退出;可以在已儲存的執行階段之間切換。
  • 移除一個執行階段只刪除本機憑據,不會撤銷伺服器或桌面端上的裝置授權。

直連不通時:自建 Relay

手機和電腦都可能在公司網路或運營商 NAT 後面,互相連不上。這時用一臺你能訪問的伺服器跑 Relay,它只轉發加密幀,看不到內容:
要讓手機在公網用到它,需要給它一個 HTTPS/WSS 入口(例如用 Caddy 反向代理到 127.0.0.1:9700),然後在桌面端釋出遠端訪問時選 自建 Relay,填入 https://你的 Relay 域名。 Relay 是純轉發的:它不儲存你的會話、檔案或供應商設定,也不解密內容。它在記憶體裡維護房間和連線,重啟後房間會消失,裝置重連時會自動重建。

斷線與重連

網路切換、鎖屏或應用回到前臺後,客戶端會重新認證並補齊缺失的歷史:先顯示權威的會話和時間線狀態,再恢復即時更新。

權限級別

配對時給行動端選權限,按需要最小授權。級別由發起端在建立配對時決定,客戶端無法自行提權: 撤銷裝置在權威端完成:
  • 桌面端作為權威端時,開啟 配對移動裝置,切到 已配對裝置 (N) 標籤,找到那臺裝置點 撤銷 並確認。列表顯示每臺裝置的狀態、權限和最後活動時間,可以 重新整理裝置 重新載入;裝置多於六臺時分頁顯示。
  • 無頭執行階段作為權威端時,在伺服器上執行 docker exec vibex-server vibex-server revoke DEVICE_ID(或直接執行 vibex-server revoke DEVICE_ID)。
撤銷會立刻斷開該裝置的活動連線,之後必須重新配對。在客戶端裡 移除 一個執行階段只刪除本機儲存的憑據,伺服器上的裝置授權仍然存在。

安全清單

  • 執行階段的 8765 埠只在本機或內網開放;公網訪問必須走 HTTPS。權威端預設只監聽 loopback,不要使用未認證的公網監聽。
  • 權限給最小的一檔,只在需要時才用 完全控制。
  • 配對碼、二維碼和連線串不要發到公開渠道;它們用過一次就失效,也不要當作長期憑據。
  • 定期撤銷不用的裝置。
  • Relay 只轉發加密流量,不要把它當成權限邊界,也不要在它的日誌裡放業務資料。

遇到問題先看這裡

環境變數

上面示例只用了最必要的變數。vibex-server、Relay 和桌面端的完整變數清單、預設值與用途見環境變數參考;部署形態、命令與健康檢查見自託管無頭執行階段,Relay 的端點、限制與推送配置見自託管 Relay。 需要更底層的細節(配對握手、加密、同步契約)時,閱讀開發者指南中的 Remote v2 與 Relay。