Skip to content

BlueEventHorizon/AI-Sandbox

 
 

Repository files navigation

AI Sandbox

AI コーディングアシスタント(Claude Code、OpenAI Codex)を Docker コンテナ内で安全に実行するための環境です。

ターゲットとなる git プロジェクトを指定してコンテナを起動すると、プロジェクトがコンテナ内にマウントされ、claude / codex コマンドが即座に使えます。gitgh(GitHub CLI)、python3 も標準でインストール済みです。

必要なもの

  • macOS または Linux
  • Docker(macOS の場合は Colima)
  • Git

セットアップ

macOS の場合

# このリポジトリをクローン
git clone <repository-url> && cd AI-Sandbox

# Docker 環境をセットアップ(Docker + Colima + Buildx をインストール、初回のみ)
make setup

# Colima を起動(Mac 再起動後など、Docker が止まっているとき)
make start

Linux の場合

Docker がインストール済みであれば追加セットアップは不要です。

使い方

ターミナルから起動(推奨)

# ターゲットプロジェクトを指定してコンテナを起動
./launch-sandbox.sh ~/projects/my-app

# AI Sandbox リポジトリ直下から Make 経由で起動する場合
make launch-sandbox ~/projects/my-app

# ターゲットプロジェクト側から起動する場合
~/tools/AI-Sandbox/launch-sandbox.sh .

# コンテナ内のシェルに入る
# /workspace $ claude    ← Claude Code が使える
# /workspace $ codex     ← OpenAI Codex が使える
# /workspace $ exit      ← コンテナから抜ける

初回実行時は Docker イメージが自動的にビルドされます(数分かかります)。

VS Code で使う

# ターゲットプロジェクトに .devcontainer/ を配置
./launch-sandbox.sh --vscode ~/projects/my-app

# VS Code でプロジェクトを開く
code ~/projects/my-app
# → 「Reopen in Container」の提案が表示される

オプション

オプション 説明
--rebuild イメージをキャッシュなしで強制再ビルドして起動
--vscode ターゲットに .devcontainer/ を配置(コンテナは起動しない)
-h, --help ヘルプを表示

複数プロジェクトの同時利用

異なるターミナルから異なるプロジェクトを同時に起動できます。各コンテナは独立して動作します。

# ターミナル 1
./launch-sandbox.sh ~/projects/app-A

# ターミナル 2
./launch-sandbox.sh ~/projects/app-B

AI への権限委譲

なぜ AI Sandbox では権限を広げられるか

通常のプロジェクトで Claude Code を使う場合、rm -rfcurl などの操作は誤実行を防ぐために確認プロンプトが表示されます。しかし AI Sandbox ではコンテナがホスト Mac のファイルシステムを隔離しているため、最悪の場合でもターゲットプロジェクトの1ディレクトリしか影響を受けません(Mac のルートは守られます)。

この安全性を活かして、AI Sandbox では AI ツールに以下のフラグが自動付与されます。

  • claude: --dangerously-skip-permissions
  • codex: --dangerously-bypass-approvals-and-sandbox

これにより:

  • 確認プロンプトなしでコードの生成・編集・実行・削除が連続して進む
  • ターゲットプロジェクトに独自の .claude/settings.json があっても制約を受けない
  • AI が自律的に作業を進められるため、複雑なタスクをより短時間で完結できる

コンテナに入ると以下の警告が赤字で表示されます:

⚠️  AI Sandbox: claude は --dangerously-skip-permissions、codex は --dangerously-bypass-approvals-and-sandbox モードで動作します。AI への権限が大幅に委譲されています。

禁止されている操作

コンテナ外に影響する操作のみ禁止しています:

禁止操作 理由
git push --force リモートリポジトリを破壊するため
.env* / SSH 秘密鍵の読み書き 機密情報の漏洩リスク

認証情報の永続化

Claude Code の認証情報(~/.claude/)は Docker Named Volume に保存されます。コンテナを終了・再起動しても認証は保持されるため、毎回ログインする必要はありません。

トラブルシューティング

イメージのビルドに失敗する(macOS)

Colima のメモリ不足が原因の可能性があります。

colima stop
make start
./launch-sandbox.sh --rebuild ~/projects/my-app

Docker が起動していない

# macOS の場合
make start

# 状態確認
colima status

Claude Code / Codex だけ最新版に更新したい

make update-tools

make update-tools は OS パッケージなどのキャッシュを再利用し、Claude Code と Codex の取得レイヤー以降だけを再実行します。更新後は通常どおり任意のターゲットプロジェクトを起動します。

make launch-sandbox ~/projects/my-app

Dockerfile 全体の変更を反映したい

./launch-sandbox.sh --rebuild ~/projects/my-app

# Make 経由の場合
make update-all

共有 Docker イメージ ai-sandbox がキャッシュなしで再ビルドされます。Dockerfile の変更(例: claude / codex の自動付与フラグ、警告文、追加パッケージ)も、既存イメージには自動反映されないため再ビルドが必要です。

再ビルド後は、通常どおり任意のターゲットプロジェクトを起動します。

make launch-sandbox ~/projects/my-app

About

AI コーディングアシスタント(Claude Code、OpenAI Codex)を Docker コンテナ内で安全に実行するための環境です

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Makefile 47.8%
  • Shell 31.3%
  • Dockerfile 20.9%