
Aislamiento adecuado para codificación con agentes y navegación web
<p align="center"> <img src="https://assets.kitploit.com/production/public/readmes/12434/34941ab5b4f1bafbb04da6cb0f3c974b96fb7d4e24eed8262c7c52d88db550dc.png" width="128" height="128" alt="Bromure icon"> <img src="https://assets.kitploit.com/production/public/readmes/12434/bc6a2ba75157aec6eac22ffc30fe246e2731fb36148f1553060ad9cb39086139.png" width="128" height="128" alt="Bromure Agentic Coding icon"> </p> <h1 align="center">Bromure</h1> <p align="center"> Computación segura y efímera en máquinas virtuales Linux desechables sobre macOS. </p> <h2 align="center"> → Todos los detalles, capturas de pantalla y descargas en <a href="https://bromure.io">bromure.io</a> </h2> --- Este repositorio incluye dos aplicaciones hermanas, ambas construidas sobre [Virtualization.framework](https://developer.apple.com/documentation/virtualization) de Apple: - **Bromure** — cada sesión de navegador se ejecuta en una máquina virtual Linux desechable. Cierra la ventana y la máquina virtual se destruye. - **Bromure Agentic Coding** — un entorno aislado para agentes de codificación con IA (Claude Code, Codex, Grok, Kimi Code, Oh My Pi). Un proxy MITM del lado del host intercambia credenciales falsas por las reales en el tráfico, de modo que los secretos nunca entran en la máquina virtual; después añade escaneo de cadena de suministro, detección de inyección de prompts, protección de PII, un panel multimodelo, inferencia local y acceso remoto — todo aplicado en ese único límite. <details> <summary><strong>Cómo se compara Bromure Agentic Coding</strong></summary> Aislamiento, mantener los secretos fuera del agente, acotar su uso, escanear la cadena de suministro, detectar la inyección de prompts: la mayoría de las herramientas elige una. Bromure hace las cinco en un único límite y luego añade lo que un bróker de secretos nunca podría: un panel de modelos, inferencia local y una forma de entrar desde cualquier lugar. Aquí está el mismo modelo de amenazas aplicado a las herramientas que la gente suele usar, y dónde se detiene cada una. Hay una matriz de características más detallada disponible en [bromure.io/en/feature-matrix](https://bromure.io/en/feature-matrix). | Protección | Dev Container<br><sub>VS Code</sub> | nono<br><sub>sandbox de kernel</sub> | agent-vault<br><sub>octokraft</sub> | Agent Vault<br><sub>Infisical</sub> | Docker Sandboxes<br><sub>microVM</sub> | Capsem<br><sub>VM aislada de la red</sub> | **Bromure**<br><sub>Agentic Coding</sub> | | --- | --- | --- | --- | --- | --- | --- | --- | | **Seguridad** | | | | | | | | | **Límite de aislamiento**<br><sub>Dónde se detiene el radio de impacto</sub> | 🟡 Mismo contenedor, kernel compartido | 🟡 Listas de permitidos del kernel, sin kernel propio | ❌ El agente se ejecuta en el lugar | ❌ Solo proxy; agente sin caja | ✅ microVM, kernel propio | ✅ VM de hardware, kernel propio | ✅ VM de hardware, kernel propio | | **Mantener los secretos fuera del agente**<br><sub>¿Puede llegar a leer la credencial real?</sub> | ❌ Reenvía el agente SSH + credenciales de git | 🟡 Bloquea archivos de claves; hace proxy de algunos | ✅ Canalizado; sin ruta de lectura | ✅ El proxy adjunta en el tráfico | ✅ El proxy del host inyecta cabeceras | ❌ Las claves API reales viven en la VM | ✅ Stub intercambiado en el tráfico | | **Alcance y aprobación de credenciales**<br><sub>Límites por uso, solo lectura, caducidad, consentimiento</sub> | ❌ Sin alcance por uso | 🟡 Flujo de aprobación + filtro de egreso | 🟡 TTL por secreto; bloquea shells | 🟡 Filtro de egreso por endpoint | 🟡 Lista de dominios permitidos; el código dentro de la VM aún puede usarla | 🟡 Reglas de egreso por dominio + método/ruta | ✅ Consentimiento por destino + TTL | | **Escaneo de cadena de suministro**<br><sub>Detectar paquetes maliciosos / vulnerables</sub> | ❌ Sin escaneo de registros | ❌ Solo firma, sin escaneo de paquetes | ❌ Fuera de alcance | ❌ Fuera de alcance | ❌ Sin escaneo de paquetes | ❌ Sin escaneo de paquetes | ✅ Age-gate, OSV, socket.dev, Depi | | **Detección de inyección de prompts**<br><sub>Escaneo de contenido no confiable y archivos de reglas</sub> | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ PromptGuard + ModernBERT | | **Protección de PII**<br><sub>Evitar que los datos personales lleguen al proveedor del modelo</sub> | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Intercambiado en el dispositivo, restaurado en las respuestas | | **Registro de auditoría**<br><sub>Registrar lo que hizo el agente</sub> | ❌ Solo registros del contenedor | 🟡 Auditoría local inmutable | ❌ | 🟡 Registro de solicitudes | 🟡 Registro de solicitudes | 🟡 Cuerpos HTTP completos en SQLite | ✅ Traza de sesión completa, cifrada | | **Inventario de cadena de suministro** <sub>(Enterprise)</sub><br><sub>Un registro de cada paquete obtenido</sub> | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Cada dependencia + veredicto, consultable | | **Productividad** | | | | | | | | | **Equipos de agentes**<br><sub>Muchos agentes en una tarea, comunicándose entre sí</sub> | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Salas, Switchboard, delegación con @ | | **Uso de tokens** <sub>(Enterprise)</sub><br><sub>Qué archivos consumen más tokens</sub> | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Por archivo, repositorio y modelo | | **Fusión multimodelo**<br><sub>Un panel de modelos, evaluados y sintetizados</sub> | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Panel + juez, en el tráfico | | **Automatizaciones**<br><sub>Ejecuciones del agente según programación o eventos de GitHub / Linear</sub> | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Programación, GitHub, Linear, encadenadas | | **Modelos locales**<br><sub>Cualquier proveedor, o inferencia en tu propio hardware</sub> | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ MLX en el dispositivo + cualquier proveedor | | **Kubernetes local**<br><sub>Clústeres y registros junto al sandbox</sub> | 🟡 DIY mediante Docker-in-Docker | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Clústeres k3s + registro privado | | **Navegador agéntico**<br><sub>Un navegador que el agente controla para probar su trabajo</sub> | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Chromium aislado, controlado por el agente | | **Accesible desde cualquier lugar**<br><sub>Conectarse al sandbox de forma remota</sub> | 🟡 VS Code remoto | ❌ | ❌ | ❌ | 🟡 docker exec, local | ❌ | ✅ Mac, iPhone, iPad, CLI o SSH | ✅ Completo — integrado, aplicado · 🟡 Parcial — limitado u opcional · ❌ Ninguno — no abordado > Ocultar un token no es lo mismo que gobernar su uso. Docker Sandboxes mantiene el valor en bruto fuera de la VM, pero su proxy sigue adjuntando esa credencial a cualquier solicitud saliente que haga el sandbox, de modo que un paquete comprometido instalado de forma lateral puede gastarla contra un dominio de la lista de permitidos sin llegar a verla. Solo Bromure escanea el paquete antes de que se ejecute y controla cada uso — consentimiento, solo lectura, un TTL — aplicando los cinco controles en un único límite que el agente no puede eludir. Ese mismo límite es donde se conectan Fusion, la inferencia local y el acceso remoto. <sub>Recopilado de la documentación pública de cada proyecto, junio de 2026. Aquí, agent-vault se refiere a [octokraft/agent-vault](https://octokraft.github.io/agent-vault/) (inyección de secretos basada en tuberías), distinto del Agent Vault de Infisical (proxy de credenciales HTTP). Docker Sandboxes es una vista previa experimental cuyas credenciales intermediadas siguen siendo utilizables por cualquier cosa dentro de la VM. El inventario de paquetes de toda la flota y los resúmenes de uso de tokens de Bromure se muestran en Bromure Enterprise Manager. Estas herramientas avanzan rápido — ¿ves algo desactualizado? Abre un issue.</sub> </details> <details> <summary><strong>Cómo se compara Bromure Web</strong></summary> Todo navegador seguro vigila la web. Bromure la aísla. Talon e Island refuerzan Chromium en tu máquina. Menlo aísla la web — en su nube. Bromure ejecuta cada sesión en una VM desechable en tu propio Mac: aislamiento real, localmente. Hay una matriz de características más detallada disponible en [bromure.io/en/feature-matrix](https://bromure.io/en/feature-matrix). | Capacidad | Talon<br><sub>Prisma Access Browser</sub> | Island<br><sub>Enterprise Browser</sub> | Menlo<br><sub>Aislamiento remoto</sub> | **Bromure**<br><sub>Web</sub> | | --- | --- | --- | --- | --- | | **Aislamiento y contención** | | | | | | Aísla el código web no confiable de tu sistema operativo real | ❌ | ❌ | ✅ | ✅ | | El host permanece seguro si se explota el navegador | 🟡 | ❌ | ✅ | ✅ | | Sesiones desechables que no dejan rastro | 🟡 | ❌ | ✅ | ✅ | | Aislamiento que se ejecuta localmente, no en la nube de un proveedor | ❌ | ❌ | ❌ | ✅ | | **Controles de dispositivo y datos** | | | | | | Cámara web y micrófono reales dentro de una sesión segura | ✅ | 🟡 | 🟡 | ✅ | | Controles de descarga y carga | ✅ | ✅ | ✅ | ✅ | | Escaneo de malware de las descargas | ✅ | 🟡 | ✅ | ✅ | | Controles de copiar-pegar y capturas de pantalla | 🟡 | ✅ | 🟡 | ✅ | | Bloquea la salida de datos hacia impresoras locales, NAS y USB | 🟡 | 🟡 | 🟡 | ✅ | | **Protección web** | | | | | | Detección de phishing | ✅ | ✅ | ✅ | 🟡 | | Filtrado web por URL y categoría | ✅ | ✅ | ✅ | 🟡 | | VPN por sesión integrada y enmascaramiento de IP | 🟡 | ❌ | 🟡 | ✅ | | Gobernanza de extensiones del navegador | ✅ | ✅ | 🟡 | 🟡 | | **Gestión empresarial** | | | | | | Consola central y perfiles gestionados | ✅ | ✅ | ✅ | ✅ | | Registro de sesiones y traza de auditoría completa | ✅ | ✅ | ✅ | ✅ | | Exportación a SIEM y OpenTelemetry | ✅ | ✅ | ✅ | ✅ | | Aplicar el uso mediante Okta, Workspace o Entra | ✅ | ✅ | ✅ | ✅ | | Acceso revocado automáticamente cuando se da de baja a un usuario | 🟡 | ✅ | 🟡 | ✅ | | DLP consciente del contenido y saneamiento de archivos | ✅ | ✅ | ✅ | 🟡 | | BYOD y dispositivos no gestionados | ✅ | ✅ | ✅ | ✅ | | **Plataforma y modelo** | | | | | | Se ejecuta en todas las plataformas principales | ✅ | ✅ | ✅ | 🟡 | | Código abierto y de uso gratuito | ❌ | ❌ | ❌ | ✅ | | Se ejecuta en el dispositivo sin nube por puesto | 🟡 | 🟡 | ❌ | ✅ | ✅ Integrado · 🟡 Parcial o limitado · ❌ No ofrecido > Talon e Island convierten el navegador en una puerta de entrada mejor vigilada, pero sigue ejecutándose en tu sistema operativo real. Menlo añade aislamiento real y luego enruta cada página a través de su nube. Bromure es el único que sella cada sesión en una VM desechable en tu propia máquina: nada llega a tu Mac, nada sale de tu dispositivo, y cerrar la ventana lo borra todo. <sub>Recopilado de la documentación pública de productos (Palo Alto Networks, Island, Menlo Security) en junio de 2026. Parcial marca capacidades que son limitadas, opcionales, condicionadas por licencia o — en el caso de la detección de phishing de Bromure — aún en beta.</sub> </details> ## Compilación ```bash ./build.sh # browser app ./build.sh bromure-ac # agentic-coding app swift test # tests ``` Los resultados se generan en `.build/arm64-apple-macosx/release/`. ## Arquitectura Tres objetivos SPM: | Objetivo | Ruta | Notas | | --------------- | ------------------------- | --------------------------------------------------------------- | | `bromure` | `Sources/Browser/` | Aplicación de navegador + SwiftUI + gestión de ventanas AppKit | | `bromure-ac` | `Sources/AgentCoding/` | Aplicación de codificación agéntica + proxy MITM + conexión de credenciales en la nube | | `SandboxEngine` | `Sources/SandboxEngine/` | Ciclo de vida de VM compartido, gestión de imágenes, puentes virtio | Ambas aplicaciones precalientan un grupo de VMs en segundo plano para que las nuevas sesiones se abran en menos de un segundo. La comunicación invitado ↔ host se realiza a través de vsock (portapapeles, transferencia de archivos, proxy MITM). ## Requisitos - macOS 14 (Sonoma) o posterior - Apple Silicon (M1 o más reciente) — `Virtualization.framework` solo admite VMs invitadas ARM64 en hosts Apple Silicon. ## Autor - [Renaud Deraison](https://www.linkedin.com/in/rderaison/) (prompting) - [Claude + Opus 4.7](https://www.anthropic.com) (implementación)