UStackUStack
Factory Floor icon

Factory Floor

Factory Floor est une app native macOS qui gère des workstreams Git, des sessions Claude Code et des serveurs de dev dans une seule fenêtre.

Factory Floor

Qu'est-ce que Factory Floor ?

Factory Floor est un espace de travail de développement natif macOS pour exécuter plusieurs « workstreams » parallèles en un seul endroit. Il coordonne les worktrees git (branches et répertoires isolés), les sessions Claude Code, les terminaux de développement et la navigation vers les serveurs de dev — afin que vous puissiez changer de tâche sans perdre l'état local.

L'app est conçue autour de l'isolation : chaque workstream dispose de sa propre branche, de son terminal et de sa session d'agent IA fonctionnant en parallèle. Elle utilise le terminal rendu par GPU de Ghostty et prend en charge l'automatisation setup/run/teardown via un fichier de configuration par projet.

Fonctionnalités principales

  • Espace de travail à fenêtre unique pour projets et workstreams : visualisez terminaux, sessions IA et navigateur intégré ensemble au lieu de jongler avec des apps séparées.
  • Git Worktrees par workstream : chaque workstream utilise sa propre branche et worktree, et l'app permet de changer de tâche sans stashing ; les fichiers .env sont automatiquement symlinkés.
  • Intégration Claude Code avec persistance des sessions : les sessions Claude Code conservent un contexte persistant et peuvent être reprises après redémarrage de l'app grâce à des ID de session automatiques.
  • Persistance basée sur Tmux pour les sessions d'agents : les sessions d'agents survivent aux redémarrages de l'app via tmux sur un socket dédié pour réduire les interruptions de flux.
  • Navigateur intégré avec détection auto de port : le navigateur intégré détecte le port sur lequel votre script run commence à écouter et y navigue automatiquement.
  • Scripts de cycle de vie du projet via .factoryfloor.json : configurez des scripts setup, run et teardown par projet ; les scripts s'exécutent dans le répertoire du workstream avec votre shell de login, tous les champs étant optionnels.
  • Variables d'environnement disponibles dans tous les terminaux et scripts : terminaux et scripts reçoivent des variables comme les noms de projet/workstream, les chemins et un FF_PORT déterministe.
  • Intégration GitHub via CLI gh : la vue projet peut afficher les infos du repo, ouvrir les PR et l'état des branches PR (basé sur la CLI gh).
  • Navigation et raccourcis clavier en priorité : raccourcis disponibles pour créer projets/workstreams, changer d'onglets/espaces/projets, archiver workstreams et ouvrir éditeurs/terminaux (y compris options externes).

Comment utiliser Factory Floor

  1. Installer Factory Floor : installez via brew install --cask alltuner/tap/factoryfloor ou en téléchargeant la source.
  2. Ajouter un projet : glissez un répertoire dans la barre latérale ou en créez un nouveau ; Factory Floor détecte automatiquement les repos git, outils installés et connexions GitHub.
  3. Créer un workstream : créez un workstream pour générer un nouveau worktree et branche git, démarrer une session Claude Code, ouvrir un terminal et ajouter un onglet navigateur.
  4. Lancer votre serveur de dev et prévisualiser : configurez setup, run et (optionnellement) teardown dans un .factoryfloor.json à la racine du projet ; quand la commande run commence à écouter, le navigateur intégré ouvre le port détecté.
  5. Changer de tâche sans perdre le contexte : passez d'un workstream à l'autre ; la persistance tmux et les ID de session Claude Code maintiennent le contexte lors des redémarrages de l'app.

Cas d'usage

  • Travail parallèle sur des fonctionnalités dans un même repo : créez des workstreams séparés pour différentes tâches afin que chacun ait sa branche, terminal, session Claude Code et onglet navigateur pendant que vous passez de l'un à l'autre.
  • Configuration de dépendances scopée par tâche : définissez un script setup de projet comme npm install pour installer les dépendances lors de la création d'un worktree/workstream.
  • Lancements de serveurs de dev cohérents avec ports déterministes : utilisez la variable d'environnement FF_PORT dans votre script run (ex. PORT=$FF_PORT npm run dev) pour que chaque workstream utilise son propre port prévisible.
  • Nettoyage automatique lors de l'archivage : définissez un script teardown (ex. docker-compose down) pour arrêter les conteneurs ou nettoyer les ressources quand un workstream est archivé.
  • Reprise du débogage assisté par IA entre sessions : fiez-vous aux ID de session Claude Code persistants et à la persistance du socket tmux pour continuer le travail après redémarrage de l'app.

FAQ

  • Factory Floor est-il open source ? Oui. Factory Floor est sous licence MIT et le code source est disponible sur GitHub.

  • Comment l'app ouvre-t-elle mon serveur de dev dans le navigateur intégré ? Quand vous lancez le projet via un script run de workstream, Factory Floor utilise la détection auto de port pour déterminer sur quel port la commande run écoute et navigue le navigateur intégré vers cette adresse.

  • Où configurer l'automatisation setup/run/teardown ? Ajoutez un fichier .factoryfloor.json à la racine de votre projet. Il peut inclure les commandes de scripts setup, run et teardown ; tous les champs sont optionnels.

  • Quelles variables d'environnement sont disponibles pour les scripts et terminaux ? Chaque terminal de workstream et tout script setup/run/teardown peut utiliser des variables comme FF_PROJECT, FF_WORKSTREAM, FF_PROJECT_DIR, FF_WORKTREE_DIR et FF_PORT.

  • Factory Floor nécessite-t-il des outils GitHub pour sa vue GitHub ? L'intégration GitHub dans la vue projet est basée sur la CLI gh.

Alternatives

  • Terminal local + tmux + workflow manuel des worktrees git : vous pouvez approximer la même approche sous-jacente (worktrees, persistance tmux et surveillance des serveurs de dev) avec des outils séparés, mais vous n’obtiendrez pas l’orchestration en une seule fenêtre et le comportement du navigateur intégré.
  • Espaces de travail multi-racines intégrés à l’IDE : les IDE peuvent gérer plusieurs projets et terminaux, mais ils ne fournissent pas toujours une isolation explicite des worktrees git par tâche avec le même cycle de vie piloté par scripts et flux de détection de ports.
  • Branches git par tâche avec stashing : une approche git plus simple peut supporter le changement de contexte, mais elle repose généralement sur le stashing/nettoyage plutôt que sur des worktrees isolés et des environnements spécifiques aux tâches.
Factory Floor | UStack