面向安全本地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 運行時和更多令牌提供者。