
Herramienta CLI ligera que ejecuta agentes de codificación de IA dentro de sandboxes aislados de Bubblewrap con estricto aislamiento del sistema de archivos, la red y las credenciales para proteger contra inyecciones de indicaciones (prompt injections) y ataques a la cadena de suministro.
FLAR es el Restrictor de Agentes Ligero y Rápido. Funciona sobre rocas llamadas gars.
Es una herramienta CLI simple y ligera en Go para ejecutar CLIs de agentes de codificación (como Claude Code, Antigravity, Codex, Copilot y Reasonix) de forma segura dentro de entornos aislados de Bubblewrap (bwrap) aislados.

El propósito es instantáneamente y sin configuración complicada, envolver en bubblewrap a un agente de IA para que solo tenga acceso al proyecto en el que estás trabajando. Esto protege contra inyecciones de instrucciones, así como contra problemas en la cadena de suministro de bibliotecas que el agente pueda incorporar a tu proyecto sin la verificación suficiente (o simplemente por mala suerte). La única información sensible accesible son los propios detalles de autenticación del agente y el historial de chat del proyecto.
La mayoría de los agentes tienen una función de "entorno aislado", pero es bastante porosa y el propio agente puede expandir el alcance de lo que es accesible. Y, por supuesto, las vulnerabilidades de la cadena de suministro no están sujetas al entorno aislado del agente. flar es completamente inmune al agente, y el radio de explosión de los ataques a la cadena de suministro está estrictamente limitado.
Bubblewrap está extremadamente bien probado y se mantiene activamente. Es utilizado por Flatpak y muchos otros proyectos para contenedores ligeros. flar está mucho menos probado, y lo he usado yo durante un par de días.
tmpfs). Las rutas del sistema (/usr, /bin, /lib, /lib64, etc.) se montan como solo lectura desde el anfitrión, asegurando que los paquetes del anfitrión estén disponibles inmediatamente sin necesidad de gestión de imágenes de contenedor.localhost del anfitrión.--dangerously-skip-permissions para Claude/agy o --dangerously-bypass-approvals-and-sandbox para Codex) para que los agentes se ejecuten sin interrupciones de aprobación en tiempo de ejecución. Se puede deshabilitar con -ask.~/.claude/, ~/.codex/, ~/.gemini/ o configuraciones de GitHub CLI) a un directorio temporal montado dentro del directorio home del entorno aislado, dejando los archivos de configuración del anfitrión intactos.--resume/--continue funciona entre ejecuciones, con alcance al proyecto actual para que ningún historial de otro proyecto entre en el entorno aislado. De lo contrario, el historial se bifurca en la primera ejecución de flar para un agente y proyecto determinados. Ver Persistencia y reanudación de sesiones.agy): La CLI de Antigravity almacena su token OAuth en el llavero del sistema operativo en lugar de en un archivo. flar extrae solo ese secreto y lo sirve dentro del entorno aislado a través de un Servicio Secreto privado dentro del proceso, de modo que el agente se autentica sin exponer el resto de tu llavero. Ver Credenciales.Asegúrate de que bwrap (Bubblewrap) esté instalado en tu sistema anfitrión:
# En Fedora/RHEL
sudo dnf install bubblewrap
# En Debian/Ubuntu
sudo apt install bubblewrap
Para compilar flar desde el código fuente:
go build -o `flar` .
Para instalar:
mv `flar` ~/.local/bin/
Ejecuta flar en la carpeta de tu proyecto o especifica la ruta:
flar [flags] [ruta/al/proyecto] [argumentos/instrucciones adicionales del agente...]
-m: Especifica el agente a ejecutar (claude, codex, agy, copilot, reasonix). Por defecto, verifica las configuraciones del anfitrión disponibles o las variables de entorno.-ask: No omitir permisos/aprobaciones (forzando al agente a pedir permiso).-network: Modo de red: isolated (predeterminado) o host.-allow-port: Permitir un puerto TCP local específico (por ejemplo, 8080, 11434) a través del entorno aislado de red. Se puede especificar varias veces.-v: Habilitar registro detallado..flar.json)Puedes configurar opciones por proyecto en <proyecto>/.flar.json o globalmente en ~/.config/flar/config.json:
{
"agent": "claude",
"ask": false,
"network": "isolated",
"allow_ports": [5432, 11434]
}
Debido a que solo se monta una copia temporal de tu configuración, los agentes se ejecutan autenticados utilizando tu sesión anfitriona existente sin tocar los originales. La mayoría de los agentes mantienen su sesión en archivos que flar copia directamente:
~/.claude/ (incluyendo .credentials.json) y ~/.claude.json, el archivo de nivel superior que contiene el estado de incorporación y la identidad de la cuenta. Ambos son necesarios; solo con las credenciales, Claude trata el entorno aislado como una instalación nueva y solicita inicio de sesión.~/.codex/, ~/.copilot/ y la configuración de GitHub CLI.agy)agy es la excepción: no almacena su token en un archivo. Lo mantiene en el llavero del SO, leído a través de la API del Servicio Secreto de freedesktop sobre el bus de sesión de D-Bus. El entorno aislado no tiene bus de sesión, por lo que una configuración ingenua falla con authentication failed or timed out.
flar maneja esto de manera especial:
agy (elemento del llavero service=gemini, username=antigravity) usando secret-tool, y lo escribe en un archivo 0600 en el directorio de configuración temporal.flar --internal-secretsvc) en un socket Unix privado, apuntado por DBUS_SESSION_BUS_ADDRESS. Sirve ese único token y nada más.El agente puede alcanzar exactamente su propio token — no el resto de tu llavero (contraseñas del navegador, secretos de otras aplicaciones, etc.). La implementación habla el protocolo de cable D-Bus directamente, por lo que no necesita gnome-keyring ni dbus-daemon dentro del entorno aislado.
Requisitos y advertencias: