
Легковесный CLI-инструмент, который запускает ИИ-агентов кодирования в изолированных песочницах Bubblewrap со строгой изоляцией файловой системы, сети и учетных данных для защиты от инъекций в подсказки и атак на цепочку поставок.
FLAR — это Fast Light Agent Restrictor. Работает на камнях, называемых gars.
Это простой, легковесный CLI-инструмент на Go для запуска CLI-агентов кодирования (таких как Claude Code, Antigravity, Codex, Copilot и Reasonix) безопасно внутри изолированных песочниц Bubblewrap (bwrap).

Цель — мгновенно и без сложной конфигурации обернуть AI-агента в bubblewrap, чтобы он имел доступ только к тому проекту, над которым вы работаете. Это защищает от инъекций промптов, а также от проблем с цепочками поставок в библиотеках, которые агент может загрузить в ваш проект без достаточной проверки (или просто из-за невезения). Единственная доступная конфиденциальная информация — это собственные данные аутентификации агента и история чата для данного проекта.
У большинства агентов есть функция «песочницы», но она довольно пористая, и сам агент может расширить область доступного. И, конечно, уязвимости цепочки поставок не подчиняются песочнице агента. flar полностью непроницаем для агента, а радиус поражения атак на цепочку поставок жёстко ограничен.
Bubblewrap крайне хорошо протестирован и активно поддерживается. Он используется в Flatpack и многих других проектах для лёгких контейнеров. flar гораздо менее протестирован и используется мной в течение пары дней.
tmpfs). Системные пути (/usr, /bin, /lib, /lib64 и т. д.) монтируются только для чтения с хоста, что обеспечивает немедленную доступность пакетов хоста без управления образами контейнеров.localhost хоста.--dangerously-skip-permissions для Claude/agy или --dangerously-bypass-approvals-and-sandbox для Codex), чтобы агенты работали без прерываний на утверждение во время выполнения. Можно отключить с помощью -ask.~/.claude/, ~/.codex/, ~/.gemini/ или конфигурации GitHub CLI) во временную директорию, смонтированную внутри домашней директории песочницы, не затрагивая файлы конфигурации хоста.--resume/--continue работает при повторных запусках — с областью действия только для текущего проекта, чтобы никакая история другого проекта не попадала в песочницу. В противном случае история разветвляется при первом запуске flar для данного агента и проекта. См. Сохранение и возобновление сеансов.agy): CLI Antigravity хранит свой OAuth-токен в связке ключей ОС, а не в файле. flar извлекает только этот один секрет и обслуживает его внутри песочницы через частную, внутрипроцессную службу Secret Service — так что агент аутентифицируется, не раскрывая остальную часть вашей связки ключей. См. Учётные данные.Убедитесь, что bwrap (Bubblewrap) установлен на вашей хост-системе:
# На Fedora/RHEL
sudo dnf install bubblewrap
# На Debian/Ubuntu
sudo apt install bubblewrap
Чтобы собрать flar из исходников:
go build -o `flar` .
Чтобы установить:
mv `flar` ~/.local/bin/
Запустите flar в папке вашего проекта или укажите путь:
flar [flags] [path/to/project] [extra agent args/prompts...]
-m: Укажите агента для запуска (claude, codex, agy, copilot, reasonix). По умолчанию проверяет доступные конфигурации хоста или переменные окружения.-ask: Не пропускать разрешения/утверждения (заставляя агента запрашивать разрешение).-network: Режим сети: isolated (по умолчанию) или host.-allow-port: Разрешить определённый локальный TCP-порт (например, 8080, 11434) через изолированную сетевую песочницу. Можно указывать несколько раз.-v: Включить подробное логирование..flar.json)Вы можете настроить параметры для каждого проекта в <project>/.flar.json или глобально в ~/.config/flar/config.json:
{
"agent": "claude",
"ask": false,
"network": "isolated",
"allow_ports": [5432, 11434]
}
Поскольку монтируется только временная копия вашей конфигурации, агенты запускаются аутентифицированными, используя ваш существующий сеанс на хосте, не трогая оригиналы. Большинство агентов хранят свой сеанс в файлах, которые flar копирует напрямую:
~/.claude/ (включая .credentials.json) и ~/.claude.json — файл верхнего уровня, содержащий состояние установки и идентификацию учётной записи. Оба обязательны; только с учётными данными Claude воспринимает песочницу как свежую установку и запрашивает вход.~/.codex/, ~/.copilot/ и конфигурация GitHub CLI.agy)agy является исключением: он не хранит свой токен в файле. Он хранит его в связке ключей ОС, доступной через freedesktop Secret Service API через сеансовую шину D-Bus. В песочнице нет сеансовой шины, поэтому наивная настройка завершается ошибкой authentication failed or timed out.
flar обрабатывает это особым образом:
agy (элемент связки ключей service=gemini, username=antigravity) с помощью secret-tool и записывает его в файл с правами 0600 во временную директорию конфигурации.flar --internal-secretsvc) на частном Unix-сокете, на который указывает DBUS_SESSION_BUS_ADDRESS. Он обслуживает только этот один токен и ничего больше.Агент может получить доступ ровно к своему собственному токену — а не к остальной части вашей связки ключей (пароли браузера, секреты других приложений и т. д.). Реализация напрямую использует проводной протокол D-Bus, поэтому ей не нужны gnome-keyring или dbus-daemon внутри песочницы.
Требования и оговорки:
secret-tool (libsecret), установленный на хосте. Если он отсутствует или токен не найден, flar пропускает мост, и agy возвращается к обычному запросу входа.