Zerobox CLI
Песочница для команд и кода от ИИ-агента: запись, сеть и переменные среды закрыты по умолчанию, ключи подставляются только для разрешенных доменов
- 724 ★ репозитория
- Последний коммит
- Apache-2.0
Расширенный доступ
Почему такой уровень
- Выполняет любую переданную команду, а флаги `-A` и `--no-sandbox` снимают изоляцию целиком
- Принимает ключи API в аргументах командной строки, а сетевой прокси подставляет их в запросы к хостам
- Режим `--restore` перезаписывает отслеживаемые файлы в рабочей папке состоянием до запуска
Установка
В терминале, через SkillFoxx CLI
npx skillfoxx add cli/zeroboxОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Выполняет любую переданную команду, а флаги `-A` и `--no-sandbox` снимают изоляцию целиком
- Принимает ключи API в аргументах командной строки, а сетевой прокси подставляет их в запросы к хостам
- Режим `--restore` перезаписывает отслеживаемые файлы в рабочей папке состоянием до запуска
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Zerobox запускает любую команду в изоляции средствами самой системы: на macOS через Seatbelt, на Linux через Bubblewrap, Seccomp и пространства имен. Без разрешений процесс ничего не пишет на диск, не выходит в сеть и получает только базовые переменные среды вроде `PATH` и `HOME`. Разрешения задаются флагами: `--allow-write=.` открывает запись в текущую папку, `--allow-net=api.openai.com` открывает один домен, `--deny-read` и `--deny-write` закрывают отдельные пути и перекрывают разрешения. Типичный вызов выглядит так: `zerobox --allow-write=./dist -- npm run build`. Для ключей есть отдельный путь. При запуске с `--secret OPENAI_API_KEY=...` процесс внутри песочницы видит только заглушку, а настоящее значение сетевой прокси подставляет в запрос к хосту из `--secret-host`. Без `--secret-host` ключ уйдет на любой домен. Флаг `--snapshot` записывает изменения файловой системы за время работы команды, `--restore` откатывает отслеживаемые файлы после выхода, а `zerobox snapshot list`, `diff` и `restore` позволяют разобрать запись позже. Код изоляции взят из песочницы OpenAI Codex. Кроме двоичного файла, пакет дает SDK для Rust, TypeScript и Python с тем же набором разрешений, это удобно, когда вызовы инструментов агента нужно закрывать по одному.
Для кого. Для разработчиков, которые запускают код и команды, написанные ИИ-агентом, на своей машине с macOS или Linux и не хотят поднимать для этого Docker или виртуальную машину.
Подходит, если
- Агент сгенерировал скрипт, и его нужно запустить без доступа к сети и с записью только в одну папку
- Сборку или установку зависимостей надо провести с сетью, но с записью только в `./dist`
- Ключ OpenAI или GitHub должен работать в процессе, но не лежать в его переменных среды
- После `npm install` хочется получить список изменений и откатить их командой `zerobox snapshot restore`
- Вызовы инструментов агента на TypeScript или Python нужно закрывать по одному через SDK
Не подходит, если
- Вы работаете на Windows: поддержка в планах, сейчас доступны только macOS и Linux
- Нужно запустить программу с графическим окном, например Chrome или Firefox: на macOS из-за WindowServer такие приложения в песочнице не работают
- Нужна полная среда с браузером и терминалом для агента: здесь больше подойдет AIO Sandbox в Docker
- Нужен готовый MCP-сервер или скилл: Zerobox выпускает CLI и SDK без интеграции с агентами
Пример запроса к агенту
Запусти сгенерированный скрипт task.py в песочнице Zerobox: запись только в /tmp/output, сеть закрытаОграничения
- Работает на macOS и Linux. Поддержка Windows через ограниченные токены и брандмауэр в планах.
- На Ubuntu 24.04 и новее непривилегированные пространства имен отключены через AppArmor, и для песочницы на Linux их нужно включить. Флаг `--strict-sandbox` завершает работу, если полной изоляции получить не удалось, без него возможен откат на более слабую.
- Флаг `--allow-read` на macOS оставляет открытыми системные пути вроде `/etc`, а `-A` и `--no-sandbox` снимают защиту целиком.
- Секрет без `--secret-host` подставляется для всех доменов. Node.js не учитывает `HTTPS_PROXY` сам, и внутри песочницы с секретами ему нужен аргумент `--use-env-proxy`.
- Накладные расходы около 10 мс и 7 МБ на запуск разработчик измерил на Apple M5 Pro, на другой машине цифры будут иными.
Как отключить. Zerobox вмешивается только в те команды, которые вы запускаете через него: уберите префикс `zerobox --` из вызова, и защита исчезнет. Пакет удаляется тем способом, которым ставился, например `npm uninstall -g zerobox` или `pip uninstall zerobox`. Записи снимков чистит команда `zerobox snapshot clean --older-than=<дни>`.
Частые вопросы
Как запустить код от ИИ-агента в песочнице без Docker?
Поставьте Zerobox и выполните `zerobox -- python3 /tmp/task.py`. Запись и сеть будут закрыты. Чтобы скрипт писал в одну папку, добавьте `--allow-write=/tmp/output`.
Как передать ключ API процессу, чтобы он его не видел?
Используйте `--secret OPENAI_API_KEY=sk-... --secret-host OPENAI_API_KEY=api.openai.com`. Внутри песочницы переменная содержит заглушку, а прокси заменяет ее настоящим значением только в запросах к указанному хосту.
Как откатить изменения, которые сделала команда?
Запустите с `--restore`, и отслеживаемые файлы вернутся к состоянию до запуска после выхода. Или запишите изменения через `--snapshot` и позже выполните `zerobox snapshot diff <id>` и `zerobox snapshot restore <id>`.
Чем Zerobox отличается от Docker-песочницы?
Это один двоичный файл без контейнеров и виртуальных машин, он использует механизмы изоляции самой системы. Автор называет накладные расходы около 10 мс, а песочница из Docker поднимает отдельную среду.
Что делать на Ubuntu 24.04, если песочница не запускается?
В этих версиях AppArmor по умолчанию отключает непривилегированные пространства имен, а Bubblewrap на них опирается. Включите их в настройках системы или запускайте с `--strict-sandbox`, чтобы получить явную ошибку вместо тихого отката на слабую изоляцию.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыКоманда safehouse запускает Claude Code, Codex и другие агенты в песочнице macOS: файлы закрыты по умолчанию, нужные папки открываются флагами
CLI-песочница для AI-агентов без контейнеров и демонов: запускает Claude Code, Codex или OpenCode с ограниченным доступом к файлам, сети и учетным данным
Fence запускает команды и агентов вроде Claude Code в песочнице: сеть блокирована по умолчанию, доступ к файлам и команды задает конфигурация
CLI с политиками, который перехватывает опасные команды AI-агентов вроде rm -rf, force push или чтения .env до их выполнения
AgentShield проверяет папку .claude на ключи в открытом виде, широкие разрешения, опасные хуки и небезопасные MCP-серверы и ставит оценку от A до F
VibeKit запускает Claude Code, Codex и другие CLI-агенты через прокси: вымарывает секреты в ответах, ведет журнал сессий, по флагу прячет агента в Docker
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| Zerobox (эта запись) | нет | 724 | ||
| Fence | да | 999 | запускает команды и агентов вроде Claude Code в песочнице: сеть закрыта по умолчанию, доступ к файлам и команды задает конфигурация | |
| AIO Sandbox | нет | ключ необязателен | 6 217 | Docker-контейнер с браузером, терминалом, файлами, VS Code и MCP-сервисами внутри для изоляции действий агента |
| 2password | нет | 305 | обертка над 1Password CLI |
Коротко о README
В репозитории лежат исходники на Rust с отдельными крейтами для снимков, протокола и профилей, пакеты для npm по платформам и SDK для Python. Обзор начинается с таблицы способов установки, примеров запуска и схемы работы песочницы, затем идут разделы о секретах, переменных среды и платформах. В папке `examples` есть три примера агентов с Vercel AI SDK и Vercel Workflow, в `bench` скрипт замеров. Лицензия Apache-2.0.