エージェントはあなたとして動く
コーディングエージェントは、あなたのユーザーアカウントで動くプログラムです。エージェント本体も、それが起動するスクリプトやパッケージ、MCPサーバーも、あなたが開けるものは何でも開けます。
ai-jail経由で起動する
コマンドの前に
ai-jailと打ちます。エージェントは専用の名前空間で起動し、プロジェクトは元と同じパスにマウントされます。ホームはマウントされない
エージェントには新しい空のホームディレクトリが渡されます。SSH鍵もクラウドの認証情報も、ブラウザのプロファイルもほかのプロジェクトも、その中には存在しません。
秘密情報、ネットワーク、デバイスは無効
環境変数は許可リストにあるものだけに絞られるので、シェルにあるトークンはシェルの外に出ません。ネットワーク、Dockerソケット、画面、クリップボードはすべて無効です。
タスクに必要なものを開ける
クラウド型のエージェントにはネットワークと自身のログイン情報が必要なので、その2つを有効にします。それ以外は、指定するまで閉じたままです。
壁はハーネス全体を囲む
サンドボックスを内蔵するエージェントは、モデルが実行するコマンドだけをその中に入れます。エージェントのプロセス、ファイル操作ツール、MCPサーバー、フックは外側に残り、あなたのアカウントで動きます。ai-jailはそのすべてを中で起動します。

設定なしで得られるもの
どの機能も、有効にするまでは無効です。プロジェクト外への書き込みはメモリ上に置かれ、セッションが終わると消えます。
ジェイルの中
- プロジェクトディレクトリ。読み書き可能で、パスは実際のまま
/usrにあるシステムのツールチェーン。読み取り専用- 新しいホームディレクトリと専用の
/tmp
手が届かない
~/.ssh、~/.aws、~/.gnupg、ブラウザのプロファイル- シェル環境にあるトークンとAPIキー
- ほかのプロセス、ホストのIPC、
ptraceやbpfなどのカーネルインターフェース
指定するまで無効
--network--agent-state、エージェント自身のログイン情報--ssh、--gpu、--display、--dockerなど
複数のカーネル層を、小さなバイナリ1つで
Linuxでは、bubblewrapが名前空間とマウントを組み立て、Landlockがファイルシステムのルールをカーネル内でもう一度適用し、seccompが危険なシステムコールを止め、リソース制限が暴走したプロセスを抑えます。macOSでは、同じポリシーがsandbox-execのプロファイルになります。
デーモンもrootも不要
ai-jailはRust製の単一バイナリで、エージェントを起動し、エージェントと一緒に終了します。バックグラウンドに残るものはなく、sudoを打つ場面もありません。
イメージは使わず、手元のツールチェーンで
エージェントは、手元のマシンにすでにあるコンパイラやランタイムを使います。コンテナイメージをビルドしたり更新し続けたりする必要はありません。
リポジトリ側からは緩められない
プロジェクト内の.ai-jailファイルは、サンドボックスを厳しくできても緩めることはできません。緩められるのは、あなた自身のグローバル設定ファイルとフラグだけです。
最初によく聞かれる質問
エージェントは遅くなりますか?
どのエージェントに対応していますか?
ai-jail bashを使えば、ジェイルの中でシェルを開いて様子を確かめられます。Windowsで動きますか?
エージェントにインターネットが必要です。それでもジェイルは役に立ちますか?
--networkを有効にしても、エージェントが読めるのはプロジェクトだけです。鍵やホームのほかのファイルは、送ろうにもそこにありません。ただし、読めるものは送れます。プロジェクト内の秘密情報をマスクしておくことが大事なのはそのためです。マスクする方法を見る。無料ですか?
エージェントを檻の中に
ai-jailは単一のバイナリで、デーモンもroot権限も要りません。いつものコマンドの前に1語足すだけです。
brew tap akitaonrails/tap && brew install ai-jailai-jail claude