clawkwork/clawk
Give coding agents a disposable Linux VM, not your laptop
解決的問題
clawk 為自主程式代理(如 Claude Code、Codex 或 pi)提供安全且可丟棄的 Linux 環境。透過為代理提供專屬的虛擬機(VM),而非在您的主機上以完整權限執行,從而消除在主機上執行代理所帶來的風險——哪怕一個破壞性指令或洩漏的金鑰都可能造成災難性後果。
工作原理
clawk 使用 Apple 的 Virtualization.framework(在 macOS 上)或 Firecracker(在 Linux 上)啟動輕量級 Linux VM。它透過 virtio-fs 將您的本地程式碼倉儲掛載至客戶端 VM,使代理能即時編輯檔案。為確保安全,它在使用者空間(客戶端之下)實作一個具 DNS 智能的出站網路過濾器,預設會阻擋所有未知伺服器的通訊,但允許 GitHub 和 npm 等常見註冊表的存取。
主要技術細節包括:
- OCI 鏡像根檔案系統:它拉取標準的 OCI 鏡像來建立 VM 的根檔案系統,無需依賴 Docker 守護程序。
- 持久化:代理的對話歷史與倉儲儲存在主機上,而 VM 磁碟是可丟棄的,每次啟動時都會從鏡像重新克隆。
- 連接性:使用 vsock 橋接進行控制,並轉發主機的 ssh-agent,使代理無需在 VM 內持有私密金鑰即可推送程式碼。
適用對象
使用自主 AI 程式代理,並希望在繞過權限提示的前提下實現完全自主執行,同時不損害主機檔案、金鑰圈與網路安全的開發者。
主要亮點
- 可丟棄沙箱:可快速摧毀並重建 VM,而不會遺失程式碼或代理對話歷史。
- 零設定設定:無需 Dockerfile 或 devcontainer 設定,一條指令即可為目錄啟動沙箱。
- 網路白名單:嚴格的出站流量控制,包含所有被拒絕連線嘗試的記錄日誌。
- OCI 相容性:可使用任意 OCI 鏡像作為根檔案系統,提供專案所需的精確工具鏈。
- 工單模式:透過建立一個包含多個倉儲 git worktrees 的單一沙箱,實現多倉儲任務管理與協調 PR。
- 資源高效:空閒 VM 會自動釋放記憶體並休眠至磁碟,以最小化主機負載。
相關
- Dispatch
- 專案
- 專案
- 專案
- 專案