エージェントセーフハウス – macOSネイティブのサンドボックスによるローカルエージェントの保護
概要
Safehouseは、macOS向けのローカルエージェント用サンドボックス。
デフォルト拒否型アクセスモデルで安全性を確保。
シェルスクリプト一つで導入、追加依存なし。
プロジェクトディレクトリのみアクセス許可、他はカーネルレベルで遮断。
エージェントの誤動作や情報漏洩を未然に防止。
Safehouse: macOS向けローカルエージェントサンドボックス
- Safehouseは、macOSネイティブなサンドボックス環境を提供
- LLMや各種エージェントの誤動作リスクをカーネルレベルで遮断
- デフォルト拒否型アクセスモデルを採用し、明示的許可がない限りアクセス不可
- エージェントはユーザー権限を継承せず、Safehouseが明示的に許可したディレクトリのみアクセス可能
- プロジェクトディレクトリ(デフォルトはGitルート)には読み書きアクセスを自動付与
- ツールチェーンには読み取り専用アクセスを付与
- SSH鍵、他リポジトリ、個人ファイル等はカーネルレベルで完全遮断
導入手順
- シェルスクリプト一つで導入可能、追加依存やビルド不要
- BashとmacOSのみで動作
- インストール例
-
mkdir -p ~/.local/bin curl -fsSL https://raw.githubusercontent.com/eugene1g/agent-safehouse/main/dist/safehouse.sh -o ~/.local/bin/safehouse chmod +x ~/.local/bin/safehouse
-
- 任意のエージェントをSafehouse内で実行
-
cd ~/projects/my-app safehouse claude --dangerously-skip-permissions
-
サンドボックスの動作検証
- 機密情報へのアクセスはカーネルが遮断
- 例:SSH秘密鍵の読み取り試行→Operation not permitted
-
safehouse cat ~/.ssh/id_ed25519
-
- 他プロジェクトのリスト表示→Operation not permitted
-
safehouse ls ~/other-project
-
- 現在のプロジェクト内操作は問題なく動作
-
safehouse ls .
-
- 例:SSH秘密鍵の読み取り試行→Operation not permitted
シェル関数による自動化
- シェル設定ファイルに関数追加で、全エージェントを自動的にSafehouse内で実行
- 例:
~/.zshrcまたは~/.bashrcに追加-
safe() { safehouse --add-dirs-ro=~/mywork "$@"; } claude() { safe claude --dangerously-skip-permissions "$@"; } codex() { safe codex --dangerously-bypass-approvals-and-sandbox "$@"; } amp() { safe amp --dangerously-allow-all "$@"; } gemini() { NO_BROWSER=true safe gemini --yolo "$@"; }
-
- 例:
- 通常はサンドボックス内がデフォルト
- サンドボックス外で実行したい場合は
command claude等で関数をバイパス
特徴まとめ
- ローカルエージェントの安全実行環境
- 明示的なアクセス制御による誤動作・情報漏洩防止
- 導入・運用が非常にシンプル
- macOSユーザー向けの最適なサンドボックスソリューション