安全なローカルAI使用のための新しいソフトウェア開発ツール
sde は、macOS 上での AI 支援開発向けにコンテナ隔離環境を提供する CLI ツールです。デフォルトで出力許可リストを適用し、ホストのキーチェーンを介して資格情報を管理し、書き込み操作には明示的で時間制限のある許可を要求することで、コードと機密情報を保護します。
sde は macOS 向けのコマンドラインツールで、AI エージェントによる開発を安全に行うためのコンテナ隔離環境を提供します。AI エージェントがコードベースにアクセスする際、従来の方法ではシェル全体が露出し、curl や git push、.env ファイルの読み取りなどが可能になってしまいます。sde は適切な境界線を引くことでこの問題を解決します。
sde の主な機能には、デフォルトの出力許可リスト(ワークスペースからは指定したドメインのみアクセス可能で、それ以外は DNS レベルで NXDOMAIN、iptables レベルで DROP)、クラウドインスタンスメタデータ(169.254.169.254)の常時ブロック、資格情報のホスト外への漏洩防止(Git トークンは macOS キーチェーンに保存され、Unix ソケットブローカーを介して操作ごとに一時トークンを生成、コンテナファイルシステムには .gitconfig を残さない)、書き込み操作への許可制(git pull はデフォルトで許可、git push はホストターミナルからの明示的かつ期限付きの許可が必要)が含まれます。
AWS 資格情報については、sde は credential_process 方式を採用しています。コンテナ内に静的キーを保存せず、~/.aws/config を注入して credential_process を設定し、ホストの aws configure export-credentials を呼び出すことで、短命な SSO 資格情報を提供します。
インストールはソースコードからのビルドまたは Homebrew に対応。macOS 13 Ventura 以降(Apple Silicon または Intel)が必要で、Colima または OrbStack をコンテナランタイムとして使用します。
sde は充実したコマンド体系を備えています:sde init でプロジェクトを検出してトポロジファイルを生成、sde up で環境起動、sde down でコンテナ停止(ボリュームは保持)、sde shell でワークスペースコンテナの対話型シェル、sde grant push でプッシュ操作を許可。その他、ログ表示、ポートマッピング、ステータス確認、監査ログなどのコマンドが利用可能です。
トポロジファイル(topology.yaml)では、プロジェクト名、ネットワーク設定、サービス(ワークスペース、データベースなど)、資格情報プロバイダーを定義します。例えば、ワークスペースコンテナに Node.js イメージを使用し、ボリュームをマウント、ポートをマッピングし、データベースコンテナを指定できます。出力ルールでは npm レジストリ、GitHub、Anthropic API などのドメインを許可できます。
sde の全体アーキテクチャは、ホスト上の sde CLI、ブローカーデーモン、資格情報ヘルパー、DNS リゾルバーコンテナ、そしてコンテナランタイム上のワークスペースおよびデータベースコンテナで構成されます。DNS コンテナは出力ポリシーを実行し、資格情報ブローカーはホスト上で動作し、Unix ソケットを介してワークスペースと通信します。
sde は GNU GPL v3 ライセンスで提供されており、現在活発に開発が進められています。v1 の目標は、ワークスペース隔離、資格情報ブローカレッジ、出力ポリシー、macOS 上の AWS/GitHub 資格情報統合をカバーすることです。将来的には Linux ランタイム対応と追加のトークンプロバイダーが計画されています。