Agent Safehouse CLI
Команда safehouse запускает Claude Code, Codex и другие агенты в песочнице macOS: файлы закрыты по умолчанию, нужные папки открываются флагами
- 2 118 ★ репозитория
- Последний коммит
- Apache-2.0
Расширенный доступ
Почему такой уровень
- Инструмент запускает агента как дочерний процесс и сам определяет, какие папки и интеграции тому открыты
- Флаги --enable=`launch-services` и --enable=`shell-init` расширяют доступ: первый позволяет запускать приложения вне песочницы, второй открывает файлы запуска оболочки с возможными ключами
Установка
- Работает в
Ручная установка
brew install eugene1g/safehouse/agent-safehouseТолько macOS. Запуск: safehouse claude --dangerously-skip-permissions.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Инструмент запускает агента как дочерний процесс и сам определяет, какие папки и интеграции тому открыты
- Флаги --enable=`launch-services` и --enable=`shell-init` расширяют доступ: первый позволяет запускать приложения вне песочницы, второй открывает файлы запуска оболочки с возможными ключами
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Agent Safehouse — оболочка на bash над системным sandbox-exec из macOS. Вы пишете safehouse перед командой агента, например safehouse claude --dangerously-skip-permissions, и процесс запускается с политикой «запрещено все, кроме перечисленного». Рабочая папка, откуда вы запустили команду, получает чтение и запись. Домашний каталог целиком агенту не открывается: команда ls $HOME и чтение ~/secret.txt остаются запрещенными, пока вы не выдадите доступ. Политика собирается из модулей-профилей в формате .sb. В репозитории есть профили для языков и сред (Node, Python, Go, Rust, Java и других), для Git, GPG и 1Password, для Docker и `kubectl`, а также для агентов: Claude Code, Codex, Gemini, Cursor Agent, Copilot CLI, Aider, Amp, Goose, OpenCode, Cline и других. Есть профили приложений Claude, Codex, Cursor и VS Code. Дополнительный доступ выдают флаги: --add-dirs для чтения и записи, --add-dirs-ro только для чтения, --enable=docker, `--enable=kubectl` и другие. Файл .safehouse в проекте подгружается после явного --trust-workdir-config. Свои правила добавляют через --append-profile, они загружаются последними и могут сузить доступ.
Для кого. Для разработчиков на macOS, которые запускают агентов с отключенными подтверждениями и хотят ограничить им доступ к файлам и ключам.
Подходит, если
- Вы запускаете claude с --dangerously-skip-permissions и хотите, чтобы агент не мог прочитать ~/.ssh и другие файлы вне проекта
- Агенту нужна общая библиотека рядом с проектом: добавьте ее только на чтение через --add-dirs-ro=/repos/shared-lib
- Рабочее дерево Git лежит рядом с другими: Safehouse определяет рабочее дерево, открывает общий каталог .git и дает читать остальные деревья репозитория
- Нужно разрешить агенту docker или `kubectl` на время одной задачи: включите `--enable=docker` или `--enable=kubectl` только для этого запуска
- Общая настройка проекта не должна содержать личные пути: положите их в локальный файл и подключите через --append-profile
Не подходит, если
- Вы работаете на Linux или Windows: Safehouse использует sandbox-exec и рассчитан только на macOS. Для Linux автор советует `vetto`, `bubblewrap`, `firejail`, nono.sh, `sandlock` и `isolated-agent`
- Нужна строгая граница против целенаправленного злоумышленника: автор называет проект слоем усиления защиты, но не полной границей безопасности
- Нужно запускать агента в изолированном контейнере с собственной веткой Git: для этого нужен другой инструмент
- Вам нужен GUI-агент с широким доступом к системе: придется выдать много исключений, и защита потеряет смысл
Пример запроса к агенту
safehouse --add-dirs-ro=/repos/shared-lib -- claude --dangerously-skip-permissionsОграничения
- Работает только на macOS через sandbox-exec.
- Автор называет проект слоем усиления защиты и оговаривает, что от целенаправленного злоумышленника он полностью не защищает.
- Для Codex с общим фоновым сервером нужен флаг --no-daemon: иначе запуск setuid-утилиты /bin/ps внутри песочницы Seatbelt не пройдет.
- Набор рабочего дерева фиксируется при старте процесса, новые деревья позже сами не откроются.
- Флаг --enable=`launch-services` позволяет процессу в песочнице запускать любые приложения вне ее, включать его стоит осознанно.
Как отключить. Запускайте агента без префикса safehouse. Если ставили через Homebrew, удалите пакет командой `brew uninstall agent-safehouse`. Скрипт, скачанный вручную, достаточно удалить из ~/.local/bin.
Частые вопросы
Как запустить Claude Code в песочнице на macOS?
Поставьте Agent Safehouse командой brew install eugene1g/safehouse/agent-safehouse и добавьте префикс: safehouse claude --dangerously-skip-permissions. Агент получит чтение и запись в текущей папке и не сможет читать остальной домашний каталог.
Как дать агенту доступ к дополнительной папке?
Флаг --add-dirs=/путь открывает папку на чтение и запись, а --add-dirs-ro=/путь только на чтение. Несколько путей разделяются двоеточием. Те же значения можно задать переменными SAFEHOUSE_ADD_DIRS и SAFEHOUSE_ADD_DIRS_RO.
Работает ли Agent Safehouse на Linux?
Нет, проект рассчитан на macOS и опирается на sandbox-exec. В README перечислены альтернативы для Linux: `vetto`, `bubblewrap`, `firejail`, nono.sh, `sandlock` и `isolated-agent`.
Как запустить Codex через Safehouse?
Для версий Codex с общим фоновым сервером добавьте --no-daemon: safehouse -- codex --no-daemon --dangerously-bypass-approvals-and-sandbox. Так интерфейс и сервер остаются в одной песочнице.
Как открыть агенту Docker или `kubectl`?
Добавьте флаг при запуске: `safehouse --enable=docker -- docker ps` дает доступ к сокету Docker, `safehouse --enable=kubectl -- kubectl get pods -A` открывает конфигурацию и кэш `kubectl`. Включайте такие интеграции только на время нужной задачи.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыAgentShield проверяет папку .claude на ключи в открытом виде, широкие разрешения, опасные хуки и небезопасные MCP-серверы и ставит оценку от A до F
CLI с политиками, который перехватывает опасные команды AI-агентов вроде rm -rf, force push или чтения .env до их выполнения
Сканер безопасности для кода от ИИ: секреты, зависимости, MCP и CI, расследование находок с доказательствами и исправления с подтверждением
Fence запускает команды и агентов вроде Claude Code в песочнице: сеть блокирована по умолчанию, доступ к файлам и команды задает конфигурация
CLI-песочница для AI-агентов без контейнеров и демонов: запускает Claude Code, Codex или OpenCode с ограниченным доступом к файлам, сети и учетным данным
Песочница для команд и кода от ИИ-агента: запись, сеть и переменные среды закрыты по умолчанию, ключи подставляются только для разрешенных доменов
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| Agent Safehouse (эта запись) | нет | 2 118 | ||
| nono | нет | 4 634 | кроссплатформенная песочница с ограничением файлов, сети и учетных данных, а Safehouse работает только на macOS | |
| container-use | да | не нужна | 4 078 | каждому агенту дает свой контейнер и ветку Git, а Safehouse ограничивает доступ процесса на вашей машине |
| HOL Guard | да | 971 | перехватывает действия агента и ждет решения, а Safehouse закрывает доступ на уровне системы |
Коротко о README
README предлагает установку через Homebrew или отдельным скриптом safehouse.sh. Он объясняет принцип наименьших привилегий: старт с полного запрета и выдача только нужного. Отдельный раздел описывает, какой доступ к домашнему каталогу есть по умолчанию и как профили разворачивают пути macOS. Дальше показано, как вынести настройки конкретной машины в оболочечную функцию и локальный профиль, как работают рабочего дерева Git и какие инструменты брать на Linux.