Fence CLI

Fence запускает команды и агентов вроде Claude Code в песочнице: сеть блокирована по умолчанию, доступ к файлам и команды задает конфигурация

  • 999 ★ репозитория
  • Последний коммит
  • Apache-2.0
CLIОфициальный

Расширенный доступ

Почему такой уровень

  • Запускает любую переданную команду в песочнице на вашей машине, включая установку зависимостей и сборочные скрипты
  • Сетевой мост на Linux через socat пропускает трафик к доменам, которые вы сами разрешили в конфигурации
  • Команда fence import переносит и сохраняет действующие разрешения Claude Code в свой конфигурационный файл
Все причины и проверки

fencesandbox/fence

Установка

Ручная установка

brew tap fencesandbox/tap && brew install fencesandbox/tap/fence

Способ для macOS. На Linux дополнительно нужны bubblewrap и socat, bpftrace опционален.

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Запускает любую переданную команду в песочнице на вашей машине, включая установку зависимостей и сборочные скрипты
  • Сетевой мост на Linux через socat пропускает трафик к доменам, которые вы сами разрешили в конфигурации
  • Команда fence import переносит и сохраняет действующие разрешения Claude Code в свой конфигурационный файл

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Fence — обертка командной строки, которая оборачивает любую команду в песочницу перед запуском: на macOS через встроенный `sandbox-exec`, на Linux через `bubblewrap`. По умолчанию весь исходящий сетевой доступ блокирован, список разрешенных доменов, пути для чтения и записи файлов и запрещенные команды вроде `git push` или `npm publish` задаются в файле `fence.jsonc`, который Fence ищет сначала в текущей папке и ее родителях, а если не находит, в `~/.config/fence/fence.jsonc`. Команда `fence config show` печатает всю цепочку наследования конфигурации и итоговый объединенный результат в формате JSON, а `fence config init` создает стартовый файл с базовыми настройками. Готовые шаблоны конфигурации под конкретный сценарий подключаются флагом `-t`, например `fence -t code -- claude` запускает Claude Code с настройками шаблона code. Отдельно есть фильтрация SSH-команд: можно ограничить, к каким хостам и какими командами агент может подключаться по SSH. Режим мониторинга `-m` в реальном времени показывает заблокированные попытки обращения к сети или файлам, а на Linux с установленным `bpftrace` добавляет видимость нарушений на уровне файловой системы. Команда `fence import --claude --save` переносит текущие разрешения Claude Code в конфигурацию Fence, а любую команду Fence можно собрать и использовать как библиотеку Go, а не только как отдельный исполняемый файл.

Для кого. Для разработчиков, которые запускают кодинг-агентов и непроверенные скрипты (сборки, установку пакетов, незнакомые репозитории) и хотят ограничить им сеть, файлы и опасные команды дополнительным слоем сверх разрешений самого агента.

Подходит, если

  • Нужно запустить Claude Code, Codex или другого агента с дополнительным ограничением сети и файловой системы помимо его собственных разрешений
  • Нужно безопасно прогнать установку пакетов или сборочный скрипт из незнакомого репозитория без доступа в сеть по умолчанию
  • Нужно заблокировать конкретные опасные команды вроде git push или npm publish независимо от разрешений самого агента
  • Нужно видеть в реальном времени, что агент пытался сделать за пределами разрешенного: сеть, файлы, команды

Не подходит, если

  • Нужна изоляция уровня виртуальной машины с отдельным ядром: Fence использует sandbox-exec на macOS и bubblewrap на Linux, это песочница процесса, а не отдельная система
  • На Linux не установлены bubblewrap и socat: без них сетевая изоляция и мост для разрешенных доменов не заработают
  • Нужна защита от агента с правами администратора или от уязвимости в самом ядре: песочница ограничивает обычный процесс, а не привилегированный доступ

Пример запроса к агенту

Запусти установку зависимостей проекта через fence с шаблоном code, чтобы сеть и файлы вне проекта были заблокированы

Ограничения

Лицензия Apache-2.0.

  • На Linux кроме самого Fence нужны `bubblewrap` для песочницы и `socat` для сетевого моста, а `bpftrace` опционален и нужен только для видимости нарушений файловой системы в режиме мониторинга.
  • Песочница ограничивает обычный процесс через sandbox-exec на macOS и bubblewrap на Linux, это не замена виртуальной машине с отдельным ядром.
  • Проект перенесен из `github.com/Use-Tusk/fence`: установленный ранее через Homebrew из старого крана нужно переставить на новый командами `brew untap` и `brew tap fencesandbox/tap`, иначе обновления не придут.
  • Фильтрация SSH ограничивает, к каким хостам и какими командами можно подключаться, но не проверяет содержимое уже установленного соединения после разрешенного запроса.
  • Конфигурация ищется по цепочке: явный путь из --settings, затем fence.jsonc в текущей папке и родительских папках, затем ~/.config/fence/fence.jsonc, и ошибка в любом файле этой цепочки отражается в выводе fence config show.

Как отключить. Удалите бинарник (`brew uninstall fencesandbox/tap/fence` или удаление файла после go install) и файл конфигурации `fence.jsonc` или `~/.config/fence/fence.jsonc`, если он не нужен для других целей.

Частые вопросы

Блокирует ли Fence сеть по умолчанию?

Да, без настроенных разрешенных доменов весь исходящий сетевой доступ запущенной команды заблокирован. Нужные домены добавляются в network.allowedDomains конфигурационного файла, остальная сеть остается закрытой.

Можно ли использовать Fence вместе с Claude Code без ручной настройки правил?

Да, команда fence import --claude --save переносит текущие разрешения Claude Code в формат конфигурации Fence и сохраняет их. Шаблон code, который подключается флагом -t code, тоже рассчитан на запуск кодинг-агентов с готовыми настройками.

Как Fence блокирует опасные команды вроде git push?

Список запрещенных команд задается в поле command.deny конфигурационного файла, например {"command": {"deny": ["git push", "npm publish"]}}. Команда из этого списка не выполняется внутри песочницы независимо от того, какие права дал сам агент.

Что показывает режим мониторинга -m?

Он в реальном времени печатает заблокированные попытки обращения к сети, файлам или запрещенным командам, а вывод можно направить в отдельный файл флагом --fence-log-file и читать tail -f. На Linux с установленным bpftrace к этим данным добавляется видимость нарушений на уровне файловой системы.

Fence заменяет виртуальную машину или контейнер Docker?

Нет, это песочница процесса через sandbox-exec на macOS и bubblewrap на Linux, без отдельного ядра и образа. Для изоляции на уровне ядра или полного контейнера нужен отдельный инструмент, Fence решает более легкую задачу — ограничить обычный процесс на той же машине.

Обсуждение

Вопросов и отзывов пока нет.

Команда safehouse запускает Claude Code, Codex и другие агенты в песочнице macOS: файлы закрыты по умолчанию, нужные папки открываются флагами

CLIРасширенный доступ2,1 тыс.Звезды репозитория

AgentShield проверяет папку .claude на ключи в открытом виде, широкие разрешения, опасные хуки и небезопасные MCP-серверы и ставит оценку от A до F

CLIРасширенный доступ1,3 тыс.Звезды репозитория

Набор для авторизованного багбаунти: 50 субагентов, 26 команд и 2 MCP-сервера площадок багбаунти для Claude Code, Codex и еще пяти агентов

ПлагинШирокий доступ1 тыс.Звезды репозитория

Песочница для команд и кода от ИИ-агента: запись, сеть и переменные среды закрыты по умолчанию, ключи подставляются только для разрешенных доменов

CLIРасширенный доступ724Звезды репозитория

CLI с политиками, который перехватывает опасные команды AI-агентов вроде rm -rf, force push или чтения .env до их выполнения

CLIРасширенный доступ6 тыс.Звезды репозитория

CLI по безопасности для кодовых агентов: сканирование секретов, политики на команды, pre-commit хуки, аудит сторонних скиллов

CLIРасширенный доступ27Звезды репозитория

Сравнение с похожими

Записи с тем же главным запросом: чем они отличаются.

ЗаписьОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
Fence (эта запись)да999
AIO Sandboxнетключ необязателен6 217полноценный докер-контейнер с браузером, терминалом и VS Code внутри, а не обертка команды песочницей на своей машине
Zeroboxнет724песочница для команд и кода от ИИ-агента

Коротко о README

Описание репозитория открывается коротким определением и примерами базового использования: блокировка сети, запуск с подстановкой оболочки, режим отладки, запуск по шаблону. Дальше идет раздел конфигурации с примером файла fence.jsonc и описанием цепочки наследования настроек, после него раздел переноса правил из Claude Code и список возможностей по пунктам. В конце короткий раздел Attribution: автор указывает, что проект вдохновлен экспериментальным sandbox-runtime от Anthropic.

Бейдж для README

Сообщить о проблеме

Foxx AIFence
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.