Local Bridge — Guía de configuración
Conecta tu máquina local a Arc OS en menos de 90 segundos. Los workers en la nube leen y editan archivos de tu ordenador a través de un único binario — sin Docker, sin Bun, sin cadena de compilación.
Phase 23.2 · Última actualización: 2026-05-14 · Probado en macOS 14+, Ubuntu 22+, Windows 11
Elige tu SO — ve directo a los pasos
| Tu máquina | Abre esta guía |
|---|---|
| Local Bridge — Configuración macOS | |
| Local Bridge — Configuración Linux | |
| Local Bridge — Configuración Windows |
El resto de esta página cubre lo que es común a todas las plataformas: lista de verificación previa, qué hace el bridge en realidad, errores frecuentes, modelo de seguridad y diagnósticos. Léelo una vez; vuelve cuando algo falle.
▶ Mira el tutorial de 90 segundos
🎬 Video placeholder — El embed de Loom estará aquí una vez grabado. Nombre de archivo:
bridge-walkthrough-2026-05.mp4· 90s · narración del CEO · subtítulos en EN. Track: ver lista de medios §1.
┌──────────────────────────────────────────┐
│ ▶ Loom: Bridge Setup in 90 Seconds │
│ (placeholder until recorded) │
└──────────────────────────────────────────┘
Qué tendrás al final
Dos ventanas en paralelo, ambas mostrando "connected":
🖼️ Screenshot placeholder —
media/bridge/success-state.pngEspecificación: pantalla dividida — izquierda = Terminal mostrando✓ Connected to ws://… as <project>, derecha = CRM páginaBridge Setupcon punto verde yOnlinejunto al nombre de tu máquina.
┌─ Terminal ─────────────────────┐ ┌─ Browser: arc-os.co ──────────────┐
│ $ bash install.sh │ │ Bridge Setup │
│ ✓ Quarantine stripped │ │ ● <your-machine> Online │
│ ✓ Token validated │ │ Last seen: just now │
│ ✓ Connected │ │ │
│ Watching ~/projects/<project> │ │ Connected workers can read / │
└─────────────────────────────────┘ └───────────────────────────────────┘
Lista de verificación previa
Antes de empezar, reúne estos datos del CRM:
| Elemento | Dónde encontrarlo | Formato |
|---|---|---|
| Token | Settings → Integrations → Bridge Setup → clic en Copy |
eyJhbG… JWT, ~250 caracteres, TTL 24h |
| Nombre técnico del proyecto | Sidebar → tu proyecto → slug de URL (el que está en minúsculas, no el nombre visible) | minúsculas, solo guiones/guiones bajos |
| Arquitectura de tu SO | macOS: ⌘+Space → "About This Mac" · Win: Settings → System → About · Linux: uname -m |
arm64, x64, aarch64 |
🖼️ Screenshot placeholder —
media/bridge/where-to-find-token.pngEspecificación: páginaSettings → Integrationsdel CRM con el botón "Copy" resaltado con una flecha y círculo rojo. Campo del token parcialmente redactado (mostrar soloeyJhbG...***...xyz).
Paso 0 — Qué estás descargando
El Local Bridge es un único archivo binario que ejecutas en tu ordenador. No hay asistente de instalación, no hay servicio de sistema, no se necesitan permisos de administrador. Descargas un archivo, haces doble clic (o lo ejecutas desde la terminal), y ya está funcionando.
SO diferente = binario diferente. Por eso la página Bridge Setup del CRM muestra 4 botones — cada uno descarga un archivo diferente compilado para ese SO + arquitectura CPU. Si eliges el incorrecto, tu ordenador se negará a ejecutarlo (Exec format error en Linux, damaged en macOS, not a valid Win32 application en Windows).
🖼️ Screenshot placeholder —
media/bridge/bridge-setup-page-4-buttons.pngEspecificación: páginaSettings → Integrations → Bridge Setupdel CRM mostrando 4 botones de descarga en fila: 🍎 macOS (Apple Silicon), 🍏 macOS (Intel), 🐧 Linux (x64), 🪟 Windows (x64). Campo de token arriba con botón Copy. 1280×720, modo claro. Anotación: círculo rojo alrededor del botón 🍎 como ejemplo del usuario.
Tamaño de descarga y tabla de archivos
| Tu ordenador | Haz clic en este botón | Obtienes este archivo | Tamaño |
|---|---|---|---|
| Mac con Apple Silicon (M1/M2/M3/M4/M5) | bridge-darwin-arm64.tar.gz |
~50 MB | |
| Mac antiguo (Intel, anterior a 2020) | bridge-darwin-x64.tar.gz |
~50 MB | |
| Laptop / VM / servidor Linux | bridge-linux-x64.tar.gz |
~50 MB | |
| Linux ARM (Raspberry Pi, AWS Graviton) | bridge-linux-arm64.tar.gz |
~50 MB | |
| PC Windows 10/11 | bridge-windows-x64.exe |
~55 MB |
¿Por qué archivos comprimidos (.tar.gz) en macOS/Linux pero .exe directo en Windows? macOS pone en cuarentena los binarios descargados sin firma con un confuso error de "damaged". El archivo incluye el binario + un pequeño script
install.commandque elimina la cuarentena por ti. Windows usa SmartScreen en su lugar — haces clic en un diálogo, sin archivo comprimido necesario.
Elige tu plataforma — árbol de decisión
flowchart TD
Start[👤 Abre CRM →<br/>Settings → Integrations →<br/>Bridge Setup] --> OS{¿Qué SO<br/>usas?}
OS -->|macOS| Mac[Abre la guía<br/>macOS]
OS -->|Linux| Lin[Abre la guía<br/>Linux]
OS -->|Windows| Win[Abre la guía<br/>Windows]
Mac --> Connect[Pega el token →<br/>nombre del proyecto → Enter]
Lin --> Connect
Win --> Connect
Connect --> Done([✅ Conectado])
¿No sabes qué chip tiene tu Mac? Haz clic en el logo 🍎 en la esquina superior izquierda → About This Mac → busca "Chip: Apple M1/M2/M3/M4/M5" (Apple Silicon) o "Processor: Intel Core …" (Intel). Si no estás seguro: Apple Silicon — todos los Mac vendidos desde noviembre de 2020.
Una vez que esté ejecutándose
🖼️ Screenshot placeholder —
media/bridge/crm-bridge-list.pngEspecificación: página Bridge Setup del CRM mostrando tu máquina en la lista de conectadas — punto verde, nombre de host, proyecto, "last seen: just now", contador de uptime de sesión.
Mantén la ventana de Terminal/PowerShell abierta — cerrarla detiene el bridge.
Cada guía específica de SO muestra cómo ejecutar el bridge en segundo plano (nohup en Unix, Start-Process -WindowStyle Hidden en Windows). Un modo de servicio persistente (launchd / systemd / Windows Service) está en el roadmap — ver Phase 23.4.
Errores frecuentes — referencia visual
| Error | Qué ves | Qué hacer |
|---|---|---|
bridge-darwin-arm64 is damaged |
Diálogo de macOS con botones Papelera/Cancelar | Haz clic en Cancel, ejecuta install.command en su lugar. Ver guía macOS |
install.command can't be opened because Apple cannot check it for malicious software |
Diálogo de primer inicio de macOS | Clic derecho en install.command → Open → Open |
Windows protected your PC |
Diálogo azul de SmartScreen | More info → Run anyway. Ver guía Windows |
Token is required / Invalid token |
El bridge sale con error rojo | Token caducado (TTL 24h). Vuelve a iniciar sesión en el CRM, copia un token nuevo |
Project not found |
El bridge sale | Usa el nombre técnico (slug de URL), no el nombre visible |
| El bridge se reconecta sin parar | Reconnecting in 4s… 8s… 16s… |
El VPS puede estar caído: curl http://62.171.128.248:18888/api/master/health |
search_files devuelve vacío |
La herramienta funciona pero sin resultados | Instala ripgrep para búsqueda de alta calidad; sin él usa un escaneo nativo más lento |
🖼️ Screenshot placeholder —
media/bridge/error-gallery.pngEspecificación: cuadrante compuesto de 4: arriba-izquierda = diálogo "damaged" de macOS, arriba-derecha = diálogo de verificación de install.command, abajo-izquierda = SmartScreen azul de Windows, abajo-derecha = Terminal mostrando✗ Token expired. Cada uno etiquetado con el error de la tabla anterior.
Qué hace el Bridge realmente
El bridge conecta tu máquina local al relay WebSocket de Arc OS. Los workers del CRM pueden entonces llamar a 5 herramientas en sandbox para acceder a tus archivos:
sequenceDiagram
participant W as Worker (cloud)
participant R as Relay (VPS WS)
participant B as Bridge (tu laptop)
participant FS as FS local
W->>R: read_file("./src/index.ts")
R->>B: llamada de herramienta
B->>B: validar ruta (sandbox)
B->>FS: leer archivo
FS-->>B: contenido
B-->>R: respuesta
R-->>W: contenido
Note over W,FS: Las 5 herramientas siguen el mismo bucle.<br/>execute_command muestra primero el banner amarillo.
| Herramienta | Qué hace |
|---|---|
read_file |
Lee el contenido de un archivo |
write_file |
Crea o sobreescribe un archivo |
list_directory |
Lista archivos y carpetas con sus tamaños |
search_files |
Busca en el contenido de archivos (usa ripgrep si está disponible) |
execute_command |
Ejecuta un comando de shell — se muestra en tu terminal con un banner amarillo |
Todas las rutas de archivo están en sandbox en el directorio desde donde lanzaste el bridge. Los workers no pueden escapar de él mediante
../.
Modelo de seguridad
| Capa | Protección |
|---|---|
| Autenticación | WebSocket requiere un JWT válido (TTL 24h, HMAC-SHA256, comparación timingSafeEqual en el servidor) |
| Sandbox de rutas | Todas las operaciones de archivo están restringidas al directorio de inicio; safePath() rechaza .., rutas absolutas, escapes por enlace simbólico |
| Lista blanca de herramientas | Solo se permiten 5 herramientas; tanto cliente como servidor rechazan nombres de herramienta desconocidos |
| Visibilidad de comandos | execute_command muestra un banner amarillo en tu terminal antes de ejecutarse — puedes usar SIGINT para cancelar |
| Caducidad del token | TTL 24h — incluso si se filtra, la ventana de exposición está acotada |
| Reconexión automática | Si cae la conexión → backoff exponencial 2s → 4s → 8s → … → tope en 30s |
Avanzado — flags y entorno
Para scripts de CI o flujos de trabajo basados en variables de entorno:
# Linux / macOS — variable de entorno
CRM_TOKEN="eyJhbG..." ./bridge-linux-x64 --project <project>
# Windows PowerShell
$env:CRM_TOKEN = "eyJhbG..."
.\bridge-windows-x64.exe --project <project>
# Ejecutar desde el código fuente (requiere Bun ≥ 1.0)
CRM_TOKEN="eyJhbG..." bun scripts/bridge.ts --project <project>
| Flag | Por defecto | Descripción |
|---|---|---|
--project <name> |
(prompt interactivo) | Nombre del proyecto al que conectarse |
--server <url> |
ws://62.171.128.248:18888/ws/local-bridge |
URL del relay WebSocket |
--help, -h |
— | Mostrar ayuda |
Diagnósticos
¿Atascado? Ejecuta estos en orden:
# 1. ¿El VPS es accesible?
curl -s http://62.171.128.248:18888/api/master/health
# Esperado: {"status":"ok","children":N,...}
# 2. ¿Está registrado tu bridge? (reemplaza <token>)
curl -s -H "Authorization: Bearer <token>" \
http://62.171.128.248:18888/api/internal/bridges
# Esperado: lista JSON que incluye tu nombre de host
Si ambos tienen éxito pero el bridge sigue reconectándose → el problema está entre el bridge y el relay (firewall, VPN, proxy corporativo). Prueba WebSocket directamente:
# requiere `wscat` — npm install -g wscat
wscat -c "ws://62.171.128.248:18888/ws/local-bridge?token=<token>"
Compilar desde el código fuente (desarrolladores)
# Una sola plataforma
bash scripts/build-bridge.sh linux
# Las 4 plataformas
bash scripts/build-bridge.sh
Los resultados se guardan en dist/bridge-{platform} y se suben al CRM como los binarios servidos en la página Bridge Setup.
Referencia
- API:
/api/internal/bridges— listar bridges conectados - Arquitectura: Phase 23 — Local Gateway
- Código fuente:
clients/bridge/en el repositorio GitHub - Guías por SO: macOS · Linux · Windows
Mantenido por el equipo de Arc OS. Si te has atascado donde esta guía no ayudó, es un bug — envía un DM al CEO o publica en @arcos_beta_feedback.