
Изолированный devcontainer для безопасного запуска Claude Code в режиме обхода. Создан для аудита безопасности и проверки ненадёжного кода.
Песочница для разработки запуска Claude Code с безопасно включённым bypassPermissions. Создана в Trail of Bits для рабочих процессов аудита безопасности.
Запуск Claude с bypassPermissions на вашей хост-машине рискован — он может выполнить любую команду без подтверждения. Этот devcontainer обеспечивает изоляцию файловой системы, так что вы получаете преимущества продуктивности неограниченного Claude без риска для вашей хост-системы.
Предназначен для:
Среда выполнения Docker (одна из):
brew install colima docker && colima startДля терминальной работы (однократная установка):
npm install -g @devcontainers/cli
git clone https://github.com/trailofbits/claude-code-devcontainer ~/.claude-devcontainer
~/.claude-devcontainer/install.sh self-install
Настройки по умолчанию Colima (QEMU + sshfs) консервативны. Для лучшей производительности:
# Stop and delete current VM (removes containers/images)
colima stop && colima delete
# Start with optimized settings
colima start \
--cpu 4 \
--memory 8 \
--disk 100 \
--vm-type vz \
--vz-rosetta \
--mount-type virtiofs
Настройте --cpu и --memory в зависимости от вашего Mac (например, 6/16 для Pro, 8/32 для Max).
| Опция | Преимущество |
|---|---|
--vm-type vz | Apple Virtualization.framework (быстрее, чем QEMU) |
--mount-type virtiofs | в 5-10 раз быстрее файлового ввода-вывода, чем sshfs |
--vz-rosetta | Запуск x86 контейнеров через Rosetta |
Проверьте с помощью colima status — должно показывать "macOS Virtualization.Framework" и "virtiofs".
Выберите шаблон, соответствующий вашему рабочему процессу:
Каждый проект получает свой собственный контейнер с независимыми томами. Лучше всего подходит для разовых проверок, недоверенных репозиториев или когда необходима изоляция между проектами.
Терминал:
git clone <untrusted-repo>
cd untrusted-repo
devc . # Installs template + starts container
devc shell # Opens shell in container
VS Code / Cursor:
Установите расширение Dev Containers:
ms-vscode-remote.remote-containersanysphere.remote-containersНастройте devcontainer (выберите один):
# Option A: Use devc (recommended)
devc .
# Option B: Clone manually
git clone https://github.com/trailofbits/claude-code-devcontainer .devcontainer/
Откройте папку вашего проекта в VS Code, затем:
Cmd+Shift+P (Mac) или Ctrl+Shift+P (Windows/Linux)Родительский каталог содержит конфигурацию devcontainer, и вы клонируете несколько репозиториев внутри. Общие тома для всех репозиториев. Лучше всего подходит для работы с клиентами, связанными репозиториями или текущими задачами.
# Create workspace for a client engagement
mkdir -p ~/sandbox/client-name
cd ~/sandbox/client-name
devc . # Install template + start container
devc shell # Opens shell in container
# Inside container:
git clone <client-repo-1>
git clone <client-repo-2>
cd client-repo-1
claude # Ready to work
Для безголовых серверов или чтобы пропустить интерактивного мастера входа:
claude setup-token # run on host, one-time
export CLAUDE_CODE_OAUTH_TOKEN=sk-ant-oat01-...
devc rebuild # rebuilds with token
Токен передаётся в контейнер. При каждом создании контейнера post_install.py выполняет однократное подтверждение аутентификации, так что claude запускается без мастера входа.
Это обходит проблему постоянного отображения интерактивного мастера настройки Claude Code в контейнерах, даже с действительными учётными данными (#8938).
Если вы не задаёте токен, интерактивный вход работает как прежде.
devc . Установить шаблон + запустить контейнер в текущем каталоге
devc up Запустить devcontainer
devc rebuild Пересобрать контейнер (сохраняет постоянные тома)
devc destroy [-f] Удалить контейнер, тома и образ для текущего проекта
devc down Остановить контейнер
devc shell Открыть zsh-оболочку в контейнере
devc exec CMD Выполнить команду внутри контейнера
devc upgrade Обновить Claude Code в контейнере
devc mount SRC DST Добавить связывание монтирования (хост → контейнер)
devc sync [NAME] Синхронизировать сеансы Claude Code из devcontainers на хост
devc template DIR Скопировать файлы devcontainer в каталог
devc self-install Установить devc в ~/.local/bin
Примечание: Используйте
devc destroyдля очистки Docker-ресурсов проекта. Ручное удаление контейнеров (например,docker rm) оставит сиротские тома и образы, которыеdevc destroyне сможет найти.
/insightsКоманда /insights анализирует историю ваших сеансов, но она читает только из ~/.claude/projects/ на хосте. Сеансы внутри томов devcontainer для неё невидимы.
devc sync копирует журналы сеансов из всех devcontainers (работающих и остановленных) на хост, чтобы /insights могла их включить:
devc sync # Sync all devcontainers
devc sync crypto # Filter by project name (substring match)
Devcontainers автоматически обнаруживаются через метки Docker — не нужно знать имена или идентификаторы контейнеров. Синхронизация инкрементальная, поэтому её можно запускать многократно.
Перетаскивайте файлы с хост-машины на панель обозревателя VS Code — они автоматически копируются в /workspace/. Никакой настройки не требуется.
devc mountЧтобы сделать каталог хоста доступным внутри контейнера:
devc mount ~/drop /drop # Read-write
devc mount ~/secrets /secrets --readonly
Это добавляет связывание монтирования в devcontainer.json и пересоздаёт контейнер. Существующие монтирования сохраняются при обновлениях devc template.
Совет: общая "папка для передачи" полезна для передачи файлов без монтирования всей домашней директории.
Замечание по безопасности: Избегайте монтирования больших каталогов хоста (например,
$HOME). Каждый смонтированный путь доступен для записи изнутри контейнера, если не указан--readonly, что подрывает изоляцию файловой системы, которую обеспечивает этот проект.
По умолчанию контейнеры имеют полный исходящий сетевой доступ. Для более строгой безопасности используйте iptables для ограничения доступа к сети.