Máquinas

Una máquina es la unidad de aislamiento de Bromure Agentic Coding: una VM de Ubuntu con su propio disco de sistema, su propia carpeta personal persistente, sus propias credenciales y sus propias políticas de seguridad. Cada sesión corre en una máquina. Una máquina de borrador puede correr de par en par con una clave de API desechable mientras una orientada a producción registra cada intercambio con la IA y pregunta antes de cada escritura destructiva, y las dos nunca comparten un byte.

Una máquina se llama espacio de trabajo en el editor de ajustes, en algunos menús (Nuevo espacio de trabajo…, Eliminar espacio de trabajo) y en la línea de comandos; en el código y el JSON exportado es un perfil. Todo es lo mismo. Este capítulo cubre las máquinas en sí: dónde se listan, cómo arrancan y paran, cómo las creas, rebobinas, restableces y eliminas, y qué puedes hacer directamente en una: abrir terminales, ver varias en la Cuadrícula, recorrer archivos y pegar archivos dentro. Los ajustes de cada máquina están documentados en Referencia de ajustes. El modelo de aislamiento está en Conceptos y arquitectura.

Las máquinas son persistentes. El disco de sistema y la carpeta personal sobreviven a cada reinicio. Solo acciones deliberadas (Restablecer el disco, Borrar carpeta personal…, Eliminar espacio de trabajo) o un borrado forzado tras una alerta de exfiltración de credenciales destruyen datos. Parar una máquina solo decide qué hace su VM después: seguir corriendo, suspenderse, o apagarse.

Nota: la mayor parte del tiempo no necesitas gestionar máquinas en absoluto. Iniciar una sesión en una máquina apagada o suspendida la despierta, y la máquina de una sesión en pausa arranca de nuevo con tu siguiente mensaje. Este capítulo es para cuando quieras mirar bajo el capó.

La sección Máquinas virtuales

Las máquinas viven en la sección Máquinas virtuales al pie de la barra lateral, bajo Sesiones, Tareas y Automatizaciones. Está plegada por omisión; haz clic en su título para desplegarla. Cuando la barra lateral es estrecha, el título dice VM.

La ventana principal con la sección Máquinas virtuales desplegada al pie de la barra lateral: un distintivo verde que muestra 2 en ejecución y un recuento de 3, un botón +, luego el nodo Cuadrícula y las filas Payments API y Web app, cada una con un botón + y un botón ⋯. El escenario muestra la pantalla de nueva sesión.

La cabecera de la sección lleva:

  • un distintivo verde con el número de máquinas en ejecución o arrancando;
  • el número total de máquinas;
  • un botón + (ayuda Nuevo espacio de trabajo) que crea una máquina. Option-clic en él para importar primero los ajustes desde los archivos de configuración de tu Mac (ver Crear una máquina).

Desplegada, la sección lista, de arriba abajo:

EntradaQué es
CuadrículaUn escenario que coloca terminales vivos en mosaico. Ver La Cuadrícula.
Una fila por máquinaLa máquina, sus pestañas de terminal mientras corre, y un nodo Docker mientras haya al menos un contenedor corriendo en ella.
KubernetesTus clústeres de Kubernetes, una fila cada uno. Solo aparece cuando existe un clúster. Ver Clústeres de Kubernetes y registros.
RegistrosTus registros de contenedores privados. Solo aparece cuando existe un registro. Ver Clústeres de Kubernetes y registros.
MensajeríaLa VM del conector de mensajería, una vez que lo has configurado. Ver Centralita y mensajería.

Los clústeres, los registros y el conector también son VM gestionadas, pero no son máquinas: no corres sesiones en ellos, y tienen sus propios paneles.

Las filas de máquina

Cada fila de máquina muestra, de izquierda a derecha:

  • Una baldosa teñida. Un glifo de bastidor de servidores en el Color de la máquina (fijado en los ajustes General), con un pequeño punto de estado de ejecución en su esquina.
  • El nombre. Un triángulo rojo de advertencia le sigue cuando la máquina ha sido marcada como comprometida por el detector de fuga de credenciales; una máquina así se niega a arrancar hasta que se borra (ver Credenciales).
  • Una etiqueta de estado bajo el nombre: Apagada, Arrancando… o Suspendida. Una máquina en ejecución no muestra etiqueta.
  • Botones. Mientras la máquina corre, + abre una pestaña de terminal nueva (Nueva pestaña (⌘T)), y pasar el cursor por la fila revela Sacar a su propia ventana y Cerrar esta VM. El botón ⋯ abre el menú de la máquina en todas las filas.

Haz clic en el nombre de una máquina para mostrar su panel. Haz clic en una de sus pestañas para mostrar ese terminal en el escenario.

EstadoPuntoSignificado
ApagadaGrisNo está en ejecución. Sin RAM ni CPU en uso; solo existen sus discos.
Arrancando…Naranja, palpitanteLa VM está arrancando.
En ejecuciónVerdeArrancada. Sus terminales y sus agentes están vivos.
SuspendidaAmarilloRAM guardada en disco. Retoma donde se quedó.

Las pestañas de agente son sesiones

Las pestañas de una máquina en ejecución son las ventanas tmux de dentro: las pestañas de agente en las que corren tus sesiones, más cualquier terminal que abras tú. Cualquier agente de código que inicies en un terminal de máquina (escribiendo claude, codex y así), y cada agente iniciado por una tarea de código o una automatización, aparece también como sesión en la lista Sesiones de la barra lateral. Puedes alternar entre el chat de un agente y su pestaña de terminal con la píldora Linux (⌥⌘U); ver El inicio de las sesiones.

Sesiones de una máquina eliminada

Cuando eliminas una máquina, sus sesiones se quedan en la barra lateral, atenuadas, con el estado Máquina eliminada. En el pliegue Archivadas se agrupan, junto con cualquier sesión cuya carpeta haya desaparecido, en una sola línea, "1 sesión cuya máquina o carpeta ha desaparecido" o "N sesiones cuya máquina o carpeta ha desaparecido", con un botón Eliminar que elimina esas conversaciones.

El panel de la máquina

El panel es el cuadro de mandos de una máquina. Ábrelo:

  • haciendo clic en el nombre de la máquina en la sección Máquinas virtuales;
  • eligiendo Detalles de la máquina en el menú de máquina de la barra de herramientas, o en el menú contextual de la cápsula de máquina de una sesión;
  • eligiendo la máquina bajo Máquinas en la paleta ⌘K.

Arriba están la baldosa de la máquina, su nombre, una píldora de estado (En ejecución, Arrancando, Suspendida o Apagada) y su dirección IP. A la derecha está la barra de acciones: Nuevo terminal, Suspender, Reiniciar y Apagar mientras la máquina corre, o Iniciar / Reanudar en caso contrario.

Debajo, cinco tarjetas informan de los recursos:

TarjetaApagada o suspendidaEn ejecución
CPU—Carga de CPU en vivo, con una curva.
MemoriaRAM asignada, p. ej. 8 GB (asignada)Memoria en uso, de la asignación.
vCPUsNúmero de núcleos (núcleos)El mismo número, con la carga media del invitado.
DiscoEspacio que el disco de sistema ocupa en el Mac ((anfitrión))Uso de disco tal como lo informa el sistema de archivos del invitado.
Tiempo activo—Tiempo desde el arranque.

La memoria viene de los ajustes Recursos de la máquina. Los valores se refrescan cada 1,5 segundos aproximadamente; ceros justo después del arranque significan que el invitado aún no ha informado.

Mientras la máquina corre, una tarjeta Puertos en escucha lista los sockets alcanzables desde fuera de la VM como puntos <IP-VM>:<puerto>; haz clic en uno para copiarlo. Los servicios que parecen HTTP reciben además un botón de globo que expone ese servicio a internet a través de un túnel rápido de Cloudflare. La primera vez, un diálogo titulado ¿Exponer servicios a internet vía Cloudflare Tunnel? explica la descarga única (unos 18 MB) y te pide Aceptar y exponer.

Una tarjeta Configuración recapitula los ajustes que más importan antes de arrancar: una fila por agente con dónde corre, Guardarraíles, Análisis de inyección de prompt y Carpetas compartidas.

El menú de la máquina en la barra de herramientas

Cuando una sesión o una pestaña de máquina está en el escenario, la barra de herramientas muestra una cápsula con el color y el nombre de la máquina. Haz clic en ella para todo lo relativo a esa máquina:

ElementoQué hace
Ajustes…Abre el editor de ajustes de la máquina.
Detalles de la máquinaMuestra el panel.
Copiar dirección IP (…)Copia la dirección IP de la máquina. Solo mientras corre.
Inspeccionar trazaAbre el Inspector de trazas para esta máquina (también ⇧⌘I).
Sacar a su propia ventanaMueve la máquina a una ventana propia (ver Sacar y volver a acoplar).
ReiniciarApaga la máquina limpiamente y la arranca de nuevo, tras una confirmación ¿Reiniciar «…»?. Mantén ⌥ al elegirlo — el elemento pasa a Forzar el reinicio — para cortar la corriente al instante en su lugar. Ver Reiniciar una máquina.

Cuando la máquina de la sesión no está en ejecución, el menú empieza con "No está en ejecución — arranca con tu siguiente mensaje" y solo ofrece Ajustes… y Detalles de la máquina.

En la pestaña de terminal propia de una máquina, la barra de herramientas muestra también el rayo de Fusion y, cuando la máquina usa un modelo en el dispositivo, un distintivo de motor (ver Modelos y proveedores). Los botones de globo (⌃⌘B) y Archivos (⌃⌘E) alternan el navegador y el panel Archivos.

Arrancar y parar

Arrancar una máquina

Una máquina arranca cuando:

  • inicias una sesión en ella, o envías un mensaje a una sesión en pausa que esté ahí;
  • haces clic en Iniciar (o Reanudar) en su panel, o lo eliges en su menú ⋯;
  • haces clic en Iniciar en una de sus celdas de reserva en la Cuadrícula;
  • una automatización o una tarea de código la necesita (ver Automatizaciones);
  • inicias sesión en tu Mac y Iniciar esta VM al iniciar sesión está activado en sus ajustes General;
  • ejecutas bromure-cli vm run (ver CLI, API y MCP).

Qué arranca

  • Primer lanzamiento. La app hace el disco de sistema de la máquina (disk.img) como un clon APFS de copia en escritura de la imagen base compartida de Ubuntu. El clon es instantáneo y no ocupa espacio hasta que el invitado escribe en él. Se crea la imagen de la carpeta personal, y la VM arranca con la RAM fijada en sus ajustes de Recursos.
  • Lanzamientos posteriores. Se reutilizan el mismo disco de sistema y la misma carpeta personal, así que todo lo que instalaste sigue ahí.
  • Una máquina suspendida. Se restaura la instantánea de RAM guardada en lugar de arrancar, y la máquina retoma donde estaba, pestañas incluidas.

Cada arranque con éxito toma además un punto de retorno de la carpeta personal (ver Rebobinar la carpeta personal).

Por omisión, cada máquina se une a la red NAT privada de Bromure, recibe una dirección estable, y puede alcanzar las otras máquinas y la VM del navegador. Hay un modo Puenteado por máquina en los ajustes General.

La pantalla de arranque

Mientras una máquina arranca, una superposición animada cubre su terminal: el nombre de la máquina sobre una barra de progreso de escaneo, a veces con una línea de estado. Solo aparece si el arranque tarda más de 0,4 segundos y se desvanece en cuanto el primer terminal está listo. Una máquina que todavía usa la antigua carpeta personal en carpeta compartida se traslada a una imagen ext4 privada en su siguiente arranque; la superposición muestra entonces un progreso determinado, por ejemplo "MOVIENDO LA CARPETA PERSONAL — 42 % DE 7,9 GB".

Si no aparece ningún terminal en 30 segundos, la superposición se convierte en un panel INMERSIÓN FALLIDA ("«…» nunca devolvió un terminal tras 30 segundos. La VM puede estar atascada, o su disco de sistema puede estar dañado.") con dos botones:

  • Seguir esperando reinicia la espera de 30 segundos.
  • Restablecer disco del sistema… vuelve a clonar el disco de sistema de la máquina desde la imagen base. Tu carpeta personal sobrevive.

Si el arranque se detiene porque el disco de sistema falló su comprobación de sistema de archivos, la superposición muestra en su lugar un panel ERROR DE DISCO, con Reparar disco (reproduce el diario del disco en su sitio) y Restablecer disco del sistema…. Tu carpeta personal sobrevive en cualquier caso. Ver Resolución de problemas si los arranques siguen fallando.

Preguntas antes de un arranque

Un inicio puede venir precedido de una de estas:

PreguntaCuándoOpciones
Hay disponible una imagen base más reciente.La imagen base de tu Mac es más nueva que la de la que se clonó el disco de sistema de esta máquina.Sí, actualizar restablece el disco de sistema desde la nueva base y luego arranca (tu carpeta personal queda intacta). No arranca tal cual y no vuelve a preguntar hasta que salga otra imagen base. Recordármelo más tarde arranca tal cual y vuelve a preguntar en el primer arranque después de un día. La respuesta se recuerda por máquina.
Máquina comprometidaUna ejecución anterior se marcó por exfiltración de credenciales.Confirma un borrado del disco de sistema, la carpeta personal y el estado guardado antes de arrancar. Los ajustes, los tokens y las claves SSH se conservan. Ver Credenciales.
Modelo aún descargándoseUn modelo en el dispositivo que la máquina necesita no ha terminado de descargarse.El inicio se rechaza hasta que termine.

Cuando no hay nadie para responder (una automatización, una tarea de código, un inicio al iniciar sesión), una actualización de imagen base pendiente se omite y la máquina arranca tal cual; una máquina comprometida no arranca hasta que la inicies tú.

Parar una máquina

Desde el menú ⋯ de la máquina o su panel:

  • Suspender guarda la RAM de la VM en disco y la para. Reanudar retoma exactamente donde estaba. Sin confirmación, ya que no se pierde nada.
  • Apagar apaga la VM tras una confirmación ("Apaga la VM y detiene todo lo que corre dentro. El disco de sistema se conserva; el trabajo en curso en los procesos en ejecución se pierde."). El siguiente inicio es un arranque completo.
  • Reiniciar — ver Reiniciar una máquina.

Ejecutar reboot dentro del invitado también funciona: la app lo nota y arranca la máquina de nuevo en su sitio.

Reiniciar una máquina

Reiniciar es igual en todos los sitios donde se ofrece — el menú ⋯ de la fila de la máquina, el panel de la máquina y el menú de máquina de la barra de herramientas — y en un cliente pesado igual que en este Mac:

  1. ¿Reiniciar «…»? pide confirmación: "Apaga la máquina limpiamente y la arranca de nuevo. Todo lo que corre dentro se detiene."
  2. Se le pide a la máquina que se apague, como pulsar su botón de encendido, para que sus sistemas de archivos se vacíen y sus servicios se detengan. Si no se ha apagado tras 15 segundos (60 segundos para un nodo de Kubernetes o un registro), se le corta la corriente.
  3. Arranca de nuevo — nunca desde un estado guardado — exactamente como un inicio, con los ajustes actuales (Preferencias › Modelos incluidos).

Reinicio forzado. Mantén ⌥ (Option) mientras eliges Reiniciar: en el menú de máquina de la barra de herramientas el elemento dice Forzar el reinicio mientras ⌥ está pulsado. La confirmación pasa a ¿Forzar el reinicio de «…»?, y a la máquina se le corta la corriente al instante — como tirar del enchufe — antes del arranque nuevo. Todo lo que no esté guardado dentro se pierde, así que resérvalo para una máquina que no responde a un reinicio normal.

Desde la línea de comandos, bromure-cli vm reboot <máquina> hace el reinicio limpio y --hard el forzado (ver CLI, API y MCP).

Las sesiones de una máquina parada o suspendida no se pierden. Aparecen en pausa y continúan con tu siguiente mensaje, que arranca la máquina de nuevo. Para lo que pasa cuando cierras una máquina en su lugar, ver Cerrar una máquina.

El menú ⋯

El botón ⋯ de una fila de máquina se adapta al estado de la máquina:

ElementoCuándoQué hace
IniciarApagadaArranca la máquina.
ReanudarSuspendidaRestaura el estado guardado.
Apagar · Suspender · ReiniciarEn ejecución o arrancandoVer Parar una máquina.
Añadir worktrees a la cuadrículaEn ejecuciónAñade cada pestaña de worktree de esta máquina a la Cuadrícula.
Editar…SiempreAbre el editor de ajustes.
DuplicarSiempreCopia la máquina.
Rebobinar la carpeta personal…SiempreDevuelve la carpeta personal a un arranque anterior.
Restablecer el discoSiempreVuelve a clonar el disco de sistema desde la imagen base.
Eliminar espacio de trabajoSiempreElimina la máquina.

Editar y renombrar

Editar… (o Ajustes… en el menú de máquina de la barra de herramientas, o Ajustes de «…»… en ⌘K y en los menús de una sesión) abre el editor de ajustes, titulado con el nombre de la máquina. Cambia lo que quieras y haz clic en Guardar. Para renombrar una máquina, cambia Nombre en el panel General. Solo hay una ventana de editor abierta a la vez. Los paneles están documentados en Referencia de ajustes.

Duplicar

Duplicar hace una copia completa al instante, con el nombre del original y copia añadido (por ejemplo Web app copia). No hay confirmación. La copia recibe todos los ajustes y credenciales, el disco de sistema y la carpeta personal, clonados con copia en escritura donde es posible, así que no ocupa espacio extra hasta que las dos divergen. Tres cosas no se copian: el estado de RAM guardado (la copia arranca de nuevo), la disposición de pestañas, y la dirección MAC de red (la copia se une a la red como una máquina distinta).

Rebobinar la carpeta personal

Cada vez que una máquina arranca con éxito, Bromure guarda un punto de control de copia en escritura de su imagen de carpeta personal. La escalera guarda los últimos arranques, luego uno al día durante una semana, luego uno a la semana durante un mes. Los puntos de control no cuestan nada de crear, pero ocupan espacio de disco real a medida que la carpeta personal se aleja de ellos.

Rebobinar la carpeta personal… abre una hoja que lista esos puntos de retorno.

La hoja Rebobinar la carpeta personal de «Web app», explicando que cada punto es la carpeta personal tal como estaba cuando empezó ese arranque. Muestra Aún sin puntos de retorno, un aviso de que la máquina está en ejecución con un botón Apagar, y Cancelar más un botón Rebobinar desactivado.

Cada punto muestra su fecha, cuánto hace que fue, y su tamaño. Elige uno y haz clic en Rebobinar. El siguiente inicio arranca desde esa carpeta personal. La carpeta personal tal como está ahora se guarda primero como un punto nuevo, así que un rebobinado puede deshacerse él mismo desde la misma lista.

La máquina debe estar apagada, porque la imagen de la carpeta personal se cambia entera. Mientras corre, la hoja dice "La máquina está en ejecución: su carpeta personal no se puede cambiar mientras está en uso. Apágala primero." con un botón Apagar, y Rebobinar sigue desactivado. Una máquina que nunca ha arrancado muestra "Aún sin puntos de retorno: se toma uno cada vez que esta máquina arranca."

El mismo retorno está disponible como Restaurar carpeta personal… en el panel Recursos, junto a Borrar carpeta personal…, que vacía la carpeta personal por completo.

Restablecer el disco de sistema

Restablecer el disco (también Restablecer a la base… en el panel Recursos) vuelve a clonar el disco de sistema de la máquina desde la imagen base actual. La confirmación, ¿Restablecer el disco de sistema de «…» a la base?, lista lo que se va: todo lo que instalaste con sudo apt install, los cambios en /etc, /var, /usr, /opt, y la configuración de todo el sistema. Tu carpeta personal queda intacta: proyectos, dotfiles, claves .ssh, npm-global, .cargo y el historial del shell sobreviven todos. Confirma con Restablecer a la base.

Un restablecimiento también descarta el estado de RAM guardado y la disposición de pestañas, así que el siguiente arranque es limpio. Se rechaza con Cierra «…» primero. mientras la máquina corre.

Nota: un punto de control y una suspensión responden preguntas distintas. La suspensión guarda el estado en ejecución para que puedas reanudarlo. Un punto de control guarda la carpeta personal tal como estaba en un arranque que sabemos bueno para que puedas devolver un entorno roto hacia atrás. Un estado de suspensión guardado se descarta cada vez que el disco al que pertenece se restablece o se rebobina.

Eliminar una máquina

Eliminar espacio de trabajo (también Espacios de trabajo › Eliminar, que elimina la máquina del escenario — la máquina de la sesión mientras se muestra una sesión — y está desactivado cuando el escenario no muestra una máquina única, como una sala, un tablero o la pantalla de nueva sesión) pregunta ¿Eliminar el espacio de trabajo «…»? — "Quita su disco, sus ajustes y su clave SSH. La carpeta del anfitrión montada queda intacta." Confirma con Eliminar.

Esto elimina toda la carpeta de la máquina bajo ~/Library/Application Support/BromureAC/profiles/: sus ajustes, secretos cifrados, disco de sistema, imagen de carpeta personal, puntos de control y claves SSH del lado del anfitrión. También quita la máquina de la lista de acceso de cualquier clúster de Kubernetes. Las carpetas del anfitrión que compartiste dentro de la máquina viven en tu Mac y se dejan como están.

Advertencia: eliminar una máquina no se puede deshacer. No hay papelera. Todo lo que quieras conservar debería estar en una carpeta compartida del anfitrión, o confirmado y empujado, antes de eliminar.

Crear una máquina

Puedes crear una máquina desde:

  • el + de la cabecera Máquinas virtuales;
  • Espacios de trabajo › Nuevo espacio de trabajo… (⇧⌘N);
  • Espacios de trabajo › Nuevo espacio de trabajo desde mis configs… (⇧⌥⌘N), u Option-clic en el +;
  • Nueva máquina… al final de la lista de la etiqueta Máquina en la pantalla de nueva sesión;
  • Nueva máquina… en la paleta ⌘K.

Cada uno de estos abre el editor de ajustes, titulado Nuevo espacio de trabajo, rellenado desde tus valores por omisión en Preferencias y con un nombre libre como Espacio de trabajo por omisión o Espacio de trabajo por omisión 2. Dale un Nombre en el panel General, cambia lo demás que necesites, y haz clic en Crear (o Cancelar). Nuevo espacio de trabajo desde mis configs… ejecuta primero la importación de credenciales del asistente de configuración, para que la máquina nueva arranque con las credenciales encontradas en tu Mac.

Todos los agentes están disponibles en todas las máquinas, y una máquina usa los modelos fijados en Preferencias › Modelos salvo que le des los suyos en su panel Modelos. Ver Modelos y proveedores.

Consejo: la mayoría de los cambios del editor se aplican cuando haces clic en Crear o Guardar. Unos pocos tienen efecto al instante porque tocan estado compartido y no los ajustes propios de la máquina: las descargas de modelos, los inicios de sesión OAuth de MCP, y las importaciones de claves SSH.

Terminales y pestañas de máquina

Dentro de una máquina, cada terminal es una ventana de una sesión de tmux. tmux es la fuente de verdad: la app refleja las ventanas de la máquina como pestañas bajo su fila, así que una máquina puede seguir corriendo sin ninguna ventana abierta, estar sacada, o estar reflejada desde otro Mac (ver Acceso remoto y clientes) sin molestar a sus agentes.

Cuando el terminal de una máquina está en el escenario, estos atajos actúan sobre sus pestañas:

AtajoAcción
⌘TNueva pestaña (también + en la fila de la máquina, y Espacios de trabajo › Nueva pestaña)
⌘WCerrar la pestaña. Cerrar la última pestaña cierra la máquina (ver Cerrar una máquina).
⌘1 – ⌘9Ir a la pestaña con ese número. Los números aparecen junto a las nueve primeras pestañas de la máquina seleccionada.
⌘DAñadir este terminal a la Cuadrícula y mostrar la Cuadrícula (Espacios de trabajo › Añadir terminal a la cuadrícula)

⌘N sigue iniciando una sesión nueva. Cuando en el escenario hay una sesión y no un terminal, ⌘1 – ⌘9 y ⌘W actúan sobre sesiones; ver El inicio de las sesiones.

Las etiquetas de pestaña muestran el programa en primer plano (claude, codex, un shell…). El icono de cada pestaña lleva el punto de estado del agente: naranja y palpitante mientras trabaja, verde cuando ha terminado, rojo cuando te necesita.

Pestañas de worktree

Una pestaña de worktree es un agente corriendo en su propio worktree de git: otra rama del mismo repositorio extraída en su propia carpeta. Para las conversaciones de agente, las sesiones de rama son la forma habitual de hacer esto. En las pestañas de terminal de una máquina, los comandos clásicos de worktree siguen ahí.

Haz clic derecho en una pestaña para:

  • Nuevo worktree… (⇧⌘G, Espacios de trabajo › Nuevo worktree). Se muestra desactivado como Nuevo worktree… (No está en un repo git) cuando la pestaña no está en un repositorio. Abre un diálogo, "Crea un worktree de git ramificado del commit actual de esta pestaña y abre en él un agente anidado.", con un nombre de tarea, el agente (claude, codex, grok, kimi u omp) y un prompt inicial opcional. La rama se llama wt/<slug> según el nombre de la tarea.
  • Nueva automatización…, que abre el editor de automatizaciones con la máquina y la carpeta de esta pestaña (ver Automatizaciones).
  • En una pestaña de worktree: Fusionar… (⇧⌘M, Espacios de trabajo › Fusionar worktree), Adjuntar un terminal (un shell simple en la carpeta del worktree) y Descartar worktree (quita la copia y elimina su rama, tras preguntar).
  • En una pestaña de fusión que dio conflictos: Que el agente resuelva los conflictos.

Fusionar… te deja elegir dónde fusionar: el worktree padre (por omisión), o cualquier ancestro hasta la raíz del repositorio, marcado ⚠︎ salta intermedios cuando salta un nivel. Si la máquina tiene una credencial de GitHub, Crear pull request empuja la rama y hace que el agente abra una pull request en su lugar. Los conflictos ponen al agente en la pestaña de fusión para resolverlos. Solo se fusiona el trabajo confirmado; los cambios sin confirmar se pierden cuando descartas el worktree.

Las pestañas de worktree se anidan bajo la pestaña de la que se ramificaron, hasta seis niveles de profundidad. Cuando el panel Archivos muestra un repositorio en una pestaña de máquina, una barra bajo su cabecera ofrece Nuevo worktree…, y Fusionar y Eliminar cuando la pestaña es ella misma un worktree.

Apariencia del terminal

Los terminales de máquina son terminales nativos, dibujados por la GPU. Su tipografía, colores, cursor y opacidad de ventana vienen de los ajustes de Apariencia de la máquina y se aplican en cuanto guardas. Solo se usan tipografías de ancho fijo; cualquier otra recae en Menlo. Con una opacidad por debajo de 1,0 el área del terminal es cristal esmerilado sobre el escritorio (la opacidad está limitada a 0,3–1,0). ⌘+, ⌘− y ⌘0 amplían la tipografía, igual que un pinzamiento en el trackpad y un doble toque con dos dedos para restablecer.

Estos ajustes se aplican solo a los terminales. La vista de chat de una sesión tiene su propio aspecto.

La Cuadrícula

La Cuadrícula coloca en mosaico hasta 25 terminales vivos (como mucho 5 × 5), de cualquier mezcla de máquinas, para que puedas ver varios agentes a la vez. Cada celda es su propia vista viva de esa ventana tmux, independiente del escenario propio de la máquina, así que los dos pueden estar abiertos.

  • Muéstrala haciendo clic en el nodo Cuadrícula en la parte superior de la sección Máquinas virtuales, o en el botón de cuadrícula del riel plegado. Sus terminales miembros se listan bajo el nodo; haz clic en uno para enfocar su celda.
  • Añade terminales arrastrando la fila de una pestaña sobre el nodo Cuadrícula ("Arrastra terminales aquí para verlos lado a lado"), pulsando ⌘D en un terminal, o con Añadir worktrees a la cuadrícula en el menú ⋯ de una máquina.
  • Los terminales nuevos se unen por sí mismos. Cada terminal abierto después de que una máquina esté lista (una pestaña de agente, un worktree, un terminal simple) se añade al final. Cuando la Cuadrícula está llena, la celda más antigua se va para hacer sitio. Haz clic derecho en el nodo Cuadrícula para activar o desactivar Añadir los terminales nuevos automáticamente. Reordenar las celdas a mano lo desactiva; la disposición es entonces tuya.
  • Celdas. La cabecera de cada celda muestra un punto de estado, el nombre de la máquina y la etiqueta de la pestaña, con los botones Abrir en el espacio de trabajo y Quitar de la cuadrícula — el terminal sigue corriendo y un asa para arrastrar la celda a otro sitio. Clic derecho en la cabecera para las mismas acciones, o en un miembro bajo el nodo Cuadrícula para Quitar de la cuadrícula.
  • Zoom. Haz doble clic en una celda, o pulsa ⌘↩ en la celda enfocada, para que llene el escenario. Hazlo otra vez para reducir. Esc no reduce, porque los agentes usan Esc.

Las celdas de una máquina apagada o suspendida se quedan como marcadores con Apagada o Suspendida y un botón Iniciar. Las celdas cuyo terminal desapareció de una máquina en ejecución se quitan. La Cuadrícula, incluido el ajuste de añadido automático, se conserva entre reinicios en ~/Library/Application Support/BromureAC/grid-layout.json.

Sacar y volver a acoplar

Sacar a su propia ventana (menú de máquina de la barra de herramientas, o el botón de sacar en una fila de máquina) mueve una máquina en ejecución a una ventana propia; sus pestañas se convierten en una tira de píldoras en la barra de título de esa ventana. La ventana sacada tiene su propia barra de herramientas: la dirección IP (haz clic para copiar), un botón de carpeta que lista las carpetas del anfitrión compartidas dentro de la máquina, reiniciar, traza, ajustes, y Devolver esta VM a la ventana principal para volver a acoplarla.

El panel Archivos

El panel Archivos es un explorador de archivos a la derecha del escenario. Alternalo con ⌃⌘E o con el botón Archivos de la barra de herramientas.

Muestra:

  • la carpeta de la sesión del escenario, esté su agente en marcha o no (en una sala, la sesión de la celda enfocada);
  • en la pestaña de terminal de una máquina, la carpeta actual de esa pestaña (la raíz del repositorio cuando está en uno).

Moverte entre sesiones o pestañas mueve el panel contigo. Sin nada que mostrar, dice "Ninguna sesión seleccionada".

Recorrer

  • La cabecera nombra la carpeta mostrada. ↑ (Subir a la carpeta contenedora) va a la carpeta superior; haz doble clic en una carpeta, o clic derecho y elige Mostrar esta carpeta, para entrar en ella.
  • Los archivos se colorean según su estado git con distintivos de una letra (M, A, U, D, R, !), y las carpetas que contienen cambios llevan un punto. Esto funciona para el repositorio propio de la carpeta y para los repositorios anidados dentro, así que recorrer tu carpeta personal sigue mostrando los cambios de cada proyecto. Las carpetas con cambios se despliegan por sí solas una vez.
  • Una píldora cuenta los archivos cambiados. El botón de filtro cambia a Mostrar solo los archivos cambiados, y el botón de actualizar recarga (el panel también se actualiza cada 4 segundos mientras está visible).
  • Haz clic en un archivo para abrir una vista de detalle con las pestañas Diff y Archivo: un diff coloreado con recuentos +/−, o una previsualización (Markdown renderizado, código resaltado). Un botón de sacar abre el detalle en su propia ventana, que sigue tu selección.

Cuando el archivo mostrado pertenece al agente del escenario, el diff hace brotar burbujas de comentario en su margen: comenta líneas, luego Enviar al agente para entregar los comentarios a ese agente en un solo mensaje. La ventana de revisión hace lo mismo sobre todo un cambio.

Mover archivos dentro y fuera

  • Hacia fuera. Arrastra un archivo al Finder, o haz clic derecho y elige Guardar en Descargas. Copiar ruta copia su ruta dentro de la máquina.
  • Hacia dentro. Suelta archivos desde el Finder en cualquier punto del panel para copiarlos a la carpeta mostrada. Una carpeta vacía dice "Carpeta vacía: suelta archivos aquí para añadir alguno."

Las transferencias van por el canal propio de la máquina, no por una carpeta compartida, así que funcionan en cualquier máquina, incluso remota. La máquina debe estar en ejecución.

Cuándo se abre por sí mismo

  • Para una sesión: la app comprueba las carpetas de las sesiones en ejecución cada diez segundos aproximadamente. La primera vez que la sesión del escenario tiene cambios (trabajo sin confirmar en un repositorio; en cualquier otra carpeta, archivos escritos desde que empezó la sesión), el panel Archivos se abre. Si lo cierras, sigue cerrado hasta que la carpeta esté limpia otra vez (tras un commit, digamos) y luego cambie de nuevo.
  • En una pestaña de máquina: entrar en un repositorio git abre el panel, y salir de él a una carpeta que no lo sea lo cierra. Cerrarlo a mano gana hasta que pases a otro repositorio.

Nota: el panel Archivos nunca edita el contenido de los archivos. Lista hasta 20.000 archivos (más allá el árbol se trunca), previsualiza archivos de hasta 512 KB y diffs de hasta 1 MB.

El portapapeles y el pegado de archivos

El portapapeles cruza a los terminales de máquina a través del propio terminal; no hay nada que configurar.

  • Invitado → Mac. Copiar dentro del invitado (el modo copia de tmux, o cualquier programa que use OSC 52) aterriza en el portapapeles del Mac. Soltar una selección de ratón en tmux la copia.
  • Mac → invitado. ⌘V pega el portapapeles del Mac como texto (pegado entre corchetes).
  • Seleccionar. Un arrastre de ratón selecciona texto; ⌘C lo copia. Seleccionar solo nunca copia.

Pegar y soltar archivos

Cuando el portapapeles contiene archivos en lugar de texto, ⌘V en un terminal de máquina se convierte en una transferencia de archivos. Lo mismo pasa cuando arrastras archivos sobre el terminal. Cada archivo se copia dentro de la máquina bajo /home/ubuntu/.bromure/pastes/, y su ruta en la máquina se escribe en su lugar, para que el agente pueda leerlo del disco.

  • Cualquier archivo normal vale: imágenes, PDF, archivos comprimidos, cualquier cosa. Un archivo copiado conserva su nombre, con una marca de tiempo como prefijo y con los caracteres que un shell necesitaría entrecomillar sustituidos por _. Un bitmap en el portapapeles (una captura de pantalla, un "Copiar imagen" de un navegador) se convierte en un archivo clipboard-<marca>-<id>.png.
  • Hasta 512 MB en un pegado. Cualquier cosa más grande, una selección que incluya una carpeta, o un portapapeles que también lleve texto, se pega como texto como siempre, así que el ⌘V ordinario nunca se secuestra.
  • Una etiqueta aparece en el cursor con el progreso de la subida, se queda un momento cuando acaba (roja si falló), y se va con tu siguiente pulsación.
  • Los archivos pegados viven en la imagen de la carpeta personal, así que sus rutas sobreviven a un reinicio. Los archivos de más de 7 días se limpian dentro de la máquina.

En el chat de una sesión, los archivos soltados y pegados se convierten en adjuntos; ver El chat.

Consejo: los enlaces van en el otro sentido por sí solos. Cuando un programa de la máquina abre una URL http o https (un inicio de sesión OAuth, xdg-open), se abre en el navegador por omisión de tu Mac.

Carpetas compartidas

Para trabajo continuado sobre archivos que viven en tu Mac, comparte la carpeta dentro de la máquina en lugar de copiar archivos de un lado a otro. Se pueden compartir hasta 8 carpetas del anfitrión; cada una aparece en la carpeta personal del invitado como ~/<nombre de la carpeta>. Ver ajustes Carpetas.

Cerrar una máquina

Cierras una máquina con Cerrar esta VM (la × de su fila), el botón de cerrar de su ventana sacada, o ⌘W en su última pestaña. Lo que pasa lo fija Al cerrar la ventana en los ajustes General de la máquina:

AjusteQué hace
Ejecutar en segundo planoSolo se va la vista. La VM sigue corriendo y sus agentes siguen trabajando; ábrela de nuevo desde la barra lateral cuando quieras.
SuspenderGuarda la RAM de la VM en disco y la para. El siguiente inicio la restaura con los mismos terminales.
ApagarApaga la VM limpiamente. El disco de sistema y la carpeta personal se conservan; el siguiente inicio es un arranque completo.
Preguntar (por omisión)Pregunta ¿Cerrar «…»? cada vez, con Ejecutar en segundo plano, Suspender, Apagar y Cancelar.

Cerrar una máquina no es lo mismo que terminar una sesión. Para detener un agente, termina o archiva su sesión (ver El inicio de las sesiones); la máquina sigue corriendo para sus otras sesiones.

Unos detalles:

  • Reanudar necesita la misma máquina. Una máquina suspendida solo puede reanudar con la misma configuración, así que su identidad, su dirección de red y sus carpetas compartidas se guardan con la instantánea. Cambiar sus carpetas compartidas mientras está suspendida te pide descartar el estado guardado; el siguiente inicio es entonces un arranque nuevo. Los archivos de la carpeta personal y de las carpetas compartidas no se ven afectados.
  • Reanudaciones fallidas. Si un estado guardado no se puede restaurar cuando arrancas la máquina tú, arranca de nuevo en su lugar.
  • Cerrar no destruye nada. Los datos solo se van con Restablecer el disco, Borrar carpeta personal…, Eliminar espacio de trabajo, o el borrado tras una alerta de exfiltración de credenciales, y aun entonces los ajustes, los tokens y las claves SSH se conservan y las carpetas compartidas del anfitrión nunca se tocan.

Dónde se guarda una máquina

Cada máquina es una carpeta bajo ~/Library/Application Support/BromureAC/profiles/<id>/:

RutaContenido
profile.jsonTodos los ajustes no secretos.
secrets.encTodos los secretos, cifrados con una clave guardada en tu Llavero.
disk.imgLa copia propia de la máquina del SO base.
home.imgEl /home/ubuntu persistente.
checkpoints/Puntos de retorno de la carpeta personal (y del disco de sistema).
vm.stateLa RAM guardada de una máquina suspendida.
agent/, ssh/Material de clave SSH del lado del anfitrión. La clave privada nunca entra en la VM.

Tus valores por omisión de Preferencias se guardan fuera de profiles/, y por eso nunca aparecen como una máquina. Los secretos nunca se escriben en profile.json ni se copian a la VM: el invitado solo tiene sustitutos, que el proxy del anfitrión cambia por los valores reales en el cable (ver Credenciales y la frontera del cable).

Consejo: disk.img, home.img y los puntos de control son imágenes ext4. Espacios de trabajo › Abrir archivo ext4… los recorre, extrae de ellos y los repara en tu Mac sin arrancar nada. Ver Avanzado.

Desde la línea de comandos

Todo lo de este capítulo se puede hacer también sin la ventana. Con la app en marcha, bromure-cli vm ls lista las máquinas y su estado, y workspaces create, workspaces edit, workspaces describe y workspaces rm las crean, las cambian, las inspeccionan y las eliminan (vm es un alias de workspaces). Ver CLI, API y MCP.