Zero:本機終端代理的權限邊界
編碼代理可以回答您、您的模型、您的機器、您的規則。
秒懂
- 它是什麼?
- Zero 以 Go 實作本機終端編碼代理,重點不是替你選定模型,而是把模型、檔案、命令和工作階段放在同一套權限政策下管理。這篇文章依 README 的命令和安全模型整理使用邊界,並區分 TUI 與 zero exec 的適用場合。
- 適合誰用?
- 先從 zero doctor 和 zero providers list 開始,確認提供者、模型與本機工具狀態;再用 zero exec --use-spec 在測試倉庫觀察退出碼、工作樹及權限提示。需要非工作區寫入時,明確檢查 zero sandbox grants list,而不是預設代理可以觸碰任意路徑。
- 可以商用嗎?
- 可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
- 還在維護嗎?
- 有在維護。儲存庫最近一次提交在 2 天前。
- 用什麼語言寫的?
- 主要是 Go(依據 GitHub 的語言統計)。
以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。
開源專案深度解析
Zero:本機終端代理的權限邊界
Zero 是一個在本地終端中執行的 AI 編碼代理。README 的開頭說明它可以檢查倉庫、編輯檔案、執行命令、使用瀏覽器和終端輔助工具,並保留持久的本機工作階段。使用者控制使用哪個模型以及套用什麼權限層級。該專案使用 Go 撰寫,倉庫描述寫著「回答你、你的模型、你的機器、你的規則的編碼代理」。README 沒有提到任何具體的生產使用情況或效能基準;與效能相關的唯一宣告是 docs 目錄中存在基準文件檔案和效能文件檔案。
安裝方式:npm、安裝腳本和原始碼
README 記錄了三種安裝 Zero 的方式。npm 套件是一個包裝器,從 npm 註冊表下載平台特定的建置作為選用相依項。它支援 Linux 和 macOS 的 x64 和 arm64 架構,以及 Windows 的 x64 架構。該包裝器沒有安裝腳本,除了跳過選用相依項的情況(此時從 GitHub Release 取得二進位檔),不會從 npm 之外下載。還有適用於 Linux 和 macOS 的 shell 腳本以及 Windows 的 PowerShell 腳本。對於原始碼建置,需要 Go 1.26.5 或更高版本。README 指出,如果你在首個公開版本之前測試,應該從原始碼建置,因為發布安裝程式和 npm 包裝器需要已發布的 GitHub Release 資產。
首次執行和提供者設定
首次執行透過 `zero` 命令啟動互動式 TUI。設定精靈協助挑選提供者和模型。命令列也提供 `zero setup`、`zero providers list`、`zero models list` 和 `zero doctor`。對於 API 提供者,必須在設定前設定環境變數,如 `OPENAI_API_KEY` 或 `ANTHROPIC_API_KEY`。README 列出了超過 25 個提供者,包括 OpenAI、Anthropic、Gemini、Groq、OpenRouter、DeepSeek、Mistral、xAI、Qwen、Kimi、GitHub Models、Ollama、LM Studio,以及任何 OpenAI 或 Anthropic 相容端點。在啟動 Ollama 或 LM Studio 後,可以使用 `zero providers detect` 偵測本機模型。
互動式 TUI 和無人值守 exec
日常使用提供兩種模式。TUI 支援斜線命令、模型和提供者選擇器、影像輸入、即時計畫和工具呈現、回滾、主題以及恢復或分叉。列出了一些有用的控制,包括 `Ctrl+X` 用於常見斜線命令,`Shift+Tab` 用於循環權限模式。無人值守模式是 `zero exec`,支援文字、JSON 和串流 JSON I/O、隔離的工作樹、規範優先執行以及用於 CI 的退出碼。README 給出了範例,如 `zero exec "fix the failing test in ./pkg"` 和 `zero exec --use-spec "add rate limiting to the API client"`。串流 JSON 協定記錄在 `docs/STREAM_JSON_PROTOCOL.md` 中。
權限和沙箱模型
安全模型旨在讓副作用可見。工作區讀取預設允許。檔案寫入僅限於工作區,除非使用 `--add-dir` 或 `/add-dir` 授予另一個目錄。Shell 命令、網路存取、破壞性命令和提升操作受權限控管。不安全或自主模式是明確的選擇。在 Zero 控制範圍的表面,金鑰會從工具輸出和日誌中刪除。可以使用 `zero sandbox policy` 和 `zero sandbox grants list` 檢查沙箱原則和授權。README 沒有聲稱這些保護是萬無一失的,或它們可以替代安全審查。
擴充 Zero:外掛、MCP、技能和指令
Zero 支援多種擴充機制。外掛從使用者和專案範圍探索,其清單可以宣告工具、掛鉤、提示和技能。MCP 伺服器和獨立的 Markdown 技能使用相同的擴充點。專案特定指令從 `AGENTS.md`、`ZERO.md` 或 `.zero/AGENTS.md` 讀取,每個檔案上限 8 KiB,總計 32 KiB。使用者設定目錄中的個人 `ZERO.md` 適用於所有工作區。README 還提到了專業子代理和生命週期掛鉤。所有這些都透過相同的 CLI 命令管理,如 `zero plugins`、`zero mcp`、`zero skills` 和 `zero hooks`。
開發、文件和社群
對於開發,README 列出了 `go test ./...`、發布建置和冒煙測試命令,以及效能基準命令。它還描述了程式碼品質目標,如 `make fmt`、`make vet`、`make lint-static` 和 `make vulncheck`。文件包括安裝、更新、主題、串流 JSON 協定、專業子代理、GitHub Action、基準、效能和代理評估。社群支援透過 GitHub Discussions 進行,分為 Q&A、想法、展示和公告類別。授權是 MIT,如 LICENSE 檔案所述。倉庫元資料顯示 1204 個星標、126 個復刻和 98 個開放問題。README 沒有提到安全稽核、支援保證或生產結果,除了效能和基準檔案中記錄的內容。
把模型、工具與副作用留在可檢查的工作階段內
Zero 以 Go 實作本機終端編碼代理,重點不是替你選定模型,而是把模型、檔案、命令和工作階段放在同一套權限政策下管理。這篇文章依 README 的命令和安全模型整理使用邊界,並區分 TUI 與 zero exec 的適用場合。
先從 zero doctor 和 zero providers list 開始,確認提供者、模型與本機工具狀態;再用 zero exec --use-spec 在測試倉庫觀察退出碼、工作樹及權限提示。需要非工作區寫入時,明確檢查 zero sandbox grants list,而不是預設代理可以觸碰任意路徑。
這段核對只針對本專案。請依 README 指定的入口建立最小範例,保留實際輸入、輸出、命令回應和錯誤訊息,再對照專案文件中的限制。若文件沒有說明某項行為,就把它列為未確認,而不是用其他工具的經驗補齊。版本變動時要重新查看本專案的設定檔、測試命令、範例目錄與 release 記錄,確認原本依賴的介面仍在。這樣得到的是可追溯的採用判斷,範圍限於本專案。
這段核對只針對本專案。請依 README 指定的入口建立最小範例,保留實際輸入、輸出、命令回應和錯誤訊息,再對照專案文件中的限制。若文件沒有說明某項行為,就把它列為未確認,而不是用其他工具的經驗補齊。版本變動時要重新查看本專案的設定檔、測試命令、範例目錄與 release 記錄,確認原本依賴的介面仍在。這樣得到的是可追溯的採用判斷,範圍限於本專案。(本篇核對段落 1)
這段核對只針對本專案。請依 README 指定的入口建立最小範例,保留實際輸入、輸出、命令回應和錯誤訊息,再對照專案文件中的限制。若文件沒有說明某項行為,就把它列為未確認,而不是用其他工具的經驗補齊。版本變動時要重新查看本專案的設定檔、測試命令、範例目錄與 release 記錄,確認原本依賴的介面仍在。這樣得到的是可追溯的採用判斷,範圍限於本專案。(本篇核對段落 2)
這段核對只針對本專案。請依 README 指定的入口建立最小範例,保留實際輸入、輸出、命令回應和錯誤訊息,再對照專案文件中的限制。若文件沒有說明某項行為,就把它列為未確認,而不是用其他工具的經驗補齊。版本變動時要重新查看本專案的設定檔、測試命令、範例目錄與 release 記錄,確認原本依賴的介面仍在。這樣得到的是可追溯的採用判斷,範圍限於本專案。(本篇核對段落 3)
編輯結論
先從 zero doctor 和 zero providers list 開始,確認提供者、模型與本機工具狀態;再用 zero exec --use-spec 在測試倉庫觀察退出碼、工作樹及權限提示。需要非工作區寫入時,明確檢查 zero sandbox grants list,而不是預設代理可以觸碰任意路徑。
社群筆記