UStackUStack
Factory Floor icon

Factory Floor

Factory Floor es una app nativa para macOS que gestiona git worktrees, sesiones de Claude Code y dev servers en una sola ventana.

Factory Floor

¿Qué es Factory Floor?

Factory Floor es un espacio de trabajo de desarrollo nativo para macOS que permite ejecutar múltiples “flujos de trabajo” paralelos en un solo lugar. Coordina git worktrees (ramas y directorios aislados), sesiones de Claude Code, terminales de desarrollo y navegación de dev-server, para que puedas cambiar de tareas sin perder el estado local.

La app está diseñada en torno al aislamiento: cada flujo de trabajo tiene su propia rama, terminal y sesión de agente de IA ejecutándose de forma concurrente. Utiliza el terminal renderizado por GPU de Ghostty y admite automatización de setup/run/teardown mediante un archivo de configuración por proyecto.

Características principales

  • Espacio de trabajo de una sola ventana para proyectos y flujos de trabajo: visualiza terminales, sesiones de IA y un navegador integrado juntos en lugar de manejar apps separadas.
  • Git Worktrees por flujo de trabajo: cada flujo de trabajo usa su propia rama y worktree, y la app permite cambiar de tareas sin hacer stash; los archivos .env se enlazan simbólicamente de forma automática.
  • Integración con Claude Code y persistencia de sesiones: las sesiones de Claude Code mantienen un contexto persistente y se pueden reanudar tras reinicios de la app usando IDs de sesión automáticos.
  • Persistencia basada en Tmux para sesiones de agente: las sesiones de agente sobreviven reinicios de la app mediante tmux en un socket dedicado para reducir interrupciones en los flujos de trabajo.
  • Navegador integrado con detección automática de puertos: el navegador integrado detecta el puerto en el que escucha tu script de ejecución y navega a él automáticamente.
  • Scripts del ciclo de vida del proyecto vía .factoryfloor.json: configura scripts setup, run y teardown por proyecto; los scripts se ejecutan en el directorio del flujo de trabajo usando tu shell de login, con todos los campos opcionales.
  • Variables de entorno disponibles en cada terminal y script: los terminales y scripts reciben variables como nombres de proyecto/flujo de trabajo, rutas y un FF_PORT determinístico.
  • Integración con GitHub vía gh CLI: la vista del proyecto puede mostrar info del repo, abrir PRs y estado de PR de rama (impulsado por el gh CLI).
  • Navegación y atajos centrados en el teclado: hay atajos para crear proyectos/flujos de trabajo, cambiar pestañas/espacios/proyectos, archivar flujos de trabajo y abrir editores/terminales (incluidas opciones externas).

Cómo usar Factory Floor

  1. Instala Factory Floor: instálalo vía brew install --cask alltuner/tap/factoryfloor o descargando el binario.
  2. Añade un proyecto: arrastra un directorio a la barra lateral o crea uno nuevo; Factory Floor detecta repos de git, herramientas instaladas y conexiones de GitHub automáticamente.
  3. Crea un flujo de trabajo: crea un flujo de trabajo para generar un nuevo git worktree y rama, iniciar una sesión de Claude Code, abrir un terminal y añadir una pestaña de navegador.
  4. Ejecuta tu dev server y vista previa: configura setup, run y (opcionalmente) teardown en un .factoryfloor.json en la raíz del proyecto; cuando el comando run empieza a escuchar, el navegador integrado abre el puerto detectado.
  5. Cambia de tareas sin perder contexto: muévete entre flujos de trabajo; la persistencia basada en tmux y los IDs de sesión de Claude Code mantienen el contexto tras reinicios de la app.

Casos de uso

  • Trabajo paralelo en funciones en un solo repo: crea flujos de trabajo separados para diferentes tareas para que cada uno tenga su rama, terminal, sesión de Claude Code y pestaña de navegador mientras cambias entre ellos.
  • Setup de dependencias con ámbito de tarea: define un script setup del proyecto como npm install para que las dependencias se instalen al crear un worktree/flujo de trabajo.
  • Ejecuciones de dev-server consistentes con puertos determinísticos: usa la variable de entorno FF_PORT en tu script run (por ejemplo, PORT=$FF_PORT npm run dev) para que cada flujo de trabajo use su propio puerto predecible.
  • Limpieza automática al archivar: establece un script teardown (por ejemplo, docker-compose down) para detener contenedores o limpiar recursos al archivar un flujo de trabajo.
  • Reanudar depuración asistida por IA entre sesiones: confía en los IDs de sesión de Claude Code persistentes y la persistencia del socket tmux para continuar el trabajo tras reiniciar la app.

Preguntas frecuentes

  • ¿Es Factory Floor de código abierto? Sí. Factory Floor tiene licencia MIT y el código fuente está disponible en GitHub.

  • ¿Cómo abre la app mi dev server en el navegador integrado? Cuando inicias el proyecto vía un script run de flujo de trabajo, Factory Floor usa detección automática de puertos para determinar en qué puerto escucha el comando run y navega el navegador integrado a esa dirección.

  • ¿Dónde configuro la automatización de setup/run/teardown? Añade un archivo .factoryfloor.json en la raíz de tu proyecto. Puede incluir comandos de script setup, run y teardown; todos los campos son opcionales.

  • ¿Qué variables de entorno están disponibles para scripts y terminales? Cada terminal de flujo de trabajo y cualquier script setup/run/teardown puede usar variables de entorno como FF_PROJECT, FF_WORKSTREAM, FF_PROJECT_DIR, FF_WORKTREE_DIR y FF_PORT.

  • ¿Requiere Factory Floor herramientas de GitHub para su vista de GitHub? La integración con GitHub en la vista del proyecto está impulsada por el gh CLI.

Alternativas

  • Terminal local + tmux + flujo de trabajo manual de git worktree: puedes aproximar el mismo enfoque subyacente (worktrees, persistencia de tmux y monitoreo de dev-server) con herramientas separadas, pero no obtendrás la orquestación en una sola ventana y el comportamiento del navegador integrado.
  • Espacios de trabajo multi-raíz integrados en el IDE: los IDE pueden gestionar múltiples proyectos y terminales, pero pueden no ofrecer aislamiento explícito de git worktree por tarea con el mismo ciclo de vida impulsado por scripts y flujo de detección de puertos.
  • Git rama-por-tarea con stashing: un enfoque git más simple puede soportar el cambio de contexto, pero típicamente depende de stashing/limpieza en lugar de worktrees aislados y entornos con ámbito por tarea.
Factory Floor | UStack