面向安全本地AI使用的新軟體開發工具
sde 是一款 CLI 工具,專為 macOS 上 AI 輔助開發提供容器隔離環境。它預設實施出口允許列表,透過主機鑰匙串管理憑證,並要求顯式的、有時限的授權才能執行寫操作,從而保護程式碼和秘密資訊。
sde 是一款專為 macOS 設計的命令列工具,旨在為 AI 輔助開發提供安全的容器隔離環境。在 AI 代理直接與程式碼庫互動的場景下,傳統做法容易暴露整個系統——代理獲得 shell 後可以 curl、git push、讀取所有 .env 檔案。sde 透過清晰的邊界劃分解決了這一問題。
sde 的核心特性包括:預設的出口允許列表——工作空間僅能訪問使用者明確列出的域名,其他所有流量在 DNS 層返回 NXDOMAIN,在 iptables 層丟棄。雲例項後設資料地址(169.254.169.254)始終被攔截。憑證永遠不離開主機:Git 令牌儲存在 macOS 鑰匙串中,工作空間透過 Unix socket 代理通訊,每次操作臨時生成令牌,並透過環境變數注入容器檔案系統,不會留下持久化的 .gitconfig 檔案。寫操作需要授權:git pull 預設允許,但 git push 必須從主機終端執行顯式的、有時限的授權命令。
對於 AWS 憑證,sde 採用 credential_process 方式——容器內部不儲存靜態金鑰。sde 在容器內注入 ~/.aws/config 檔案,其中配置了 credential_process 回撥主機上的代理,代理進而呼叫主機的 aws configure export-credentials 命令,從而為每次操作提供短期 SSO 憑證。
安裝方面,sde 支援從原始碼構建和 Homebrew 安裝。要求 macOS 13 Ventura 或更高版本(Apple Silicon 或 Intel),並需要 Colima 或 OrbStack 作為容器執行時。
sde 提供了一套完整的命令體系:sde init 檢測專案並生成拓撲檔案;sde up 啟動環境;sde down 停止容器但保留卷;sde shell 進入工作空間容器的互動式 shell;sde grant push 用於授權推送操作。此外還有日誌檢視、埠對映、狀態檢查、審計日誌等命令。
拓撲檔案(topology.yaml)定義了專案名稱、網路配置、服務(工作空間、資料庫等)以及憑證提供者。例如,可以指定工作空間容器使用 Node.js 映象,掛載卷,對映埠,並設定資料庫容器。出口規則可以允許 npm 登錄檔、GitHub 和 Anthropic API 等域名。
sde 的整體架構包括主機上的 sde CLI、代理守護程序、憑證助手、DNS 解析器容器,以及執行在容器執行時中的工作空間和資料庫容器。DNS 容器負責執行出口策略,憑證代理執行在主機上,透過 Unix socket 與工作空間通訊。
sde 採用 GNU GPL v3 許可證,目前處於積極開發階段。v1 目標覆蓋工作空間隔離、憑證代理、出口策略以及 macOS 上 AWS/GitHub 憑證整合。未來計劃支援 Linux 執行時和更多令牌提供者。