Agent Safehouse、macOSのローカル agent 向け deny-first サンドボックス

Agent Safehouseは、macOSで local LLM coding agent をより安全に動かすためのオープンソースプロジェクトだ。発想は明快で、通常のagentは開発者アカウントの権限をそのまま引き継いでしまうが、Safehouseはその前提を反転させ、実際に必要なファイルと連携先だけを許可する。ドキュメントではこの設計を deny-first と practical least privilege の組み合わせとして説明している。

実装も意図的に絞られている。Safehouseは Apple の sandbox-exec を包み、初期状態をほぼ deny-all に近づけたうえで、作業中のrepoには read/write、共有ディレクトリには read-only、必要な machine-local override だけを追加する。~/.ssh、cloud credential、無関係なrepoのようなセンシティブな領域は明示的に deny のまま残せる。agentがポリシー外へ出ようとすると、アプリ側ではなく kernel が syscall 自体を拒否する。

導入は single self-contained shell script で始められる。

Claude、Codex、Gemini CLI などの wrapper 例が用意されている。

共有repo設定と machine-local 例外を分ける profile 設計を採っている。

完全な隔離ではなく、実務向け hardening layer だと明確に位置付けている。

このプロジェクトが重要なのは、agent UX より先に containment を扱っている点だ。最近の local agent workflow は shell access、filesystem write、package manager、secret 露出のリスクを同時に抱える。そこで「気をつけて使う」よりも、「最初から触れられる面を減らす」方がはるかに現実的だ。Safehouseは guardrail を後付けのUI設定ではなく、kernel enforcement を前提に置いている。

しかも主張の仕方が過剰ではない。READMEは Safehouse を perfect security boundary とは呼ばず、事故や過剰権限の継承を減らす hardening layer だと説明する。この抑制的な姿勢はむしろ信頼できる。agent時代の防御で先に必要なのは、理想的な完全隔離の宣伝より、普段の開発フローを壊さずにリスクを下げる道具だからだ。

コミュニティ投稿は Hacker News、元プロジェクトは 公式ドキュメント と GitHub repository で確認できる。