Allt du behöver veta, inget du inte behöver.
English | Català | Español | Svenska
Vi skriver 2026. Vi bygger på tmux (2007), git worktrees (2015), terminals (1978, VT100-eran, när till och med David bara var ett framtida projekt), och GPU-rendering (tack Mitchell för Ghostty). Gamla verktyg, nya trick.
Du behöver två saker: en Mac och en vag känsla av att ditt nuvarande arbetsflöde kunde vara bättre.
brew install --cask factory-floor
Factory Floor fungerar bäst när dessa är installerade (appen berättar om något saknas):
Inga konfigurationsfiler behövs. Factory Floor upptäcker din git-konfiguration, installerade verktyg och GitHub-anslutningar automatiskt.
De tre sakerna du kommer att interagera med varje dag.
Ett projekt är ett git-repository. Dra en katalog till sidebar eller klicka på +-knappen. Factory Floor kontrollerar om det är ett git-repo (och erbjuder att initiera ett om det inte är det).
Projektöversikten visar repository-info, GitHub-detaljer (stjärnor, forks, öppna issues), upp till 5 senaste PRs, och automatiskt upptäckt markdown-dokumentation från ditt repo.
Projekt sorteras efter Senaste (senaste aktivitet) som standard. Byt till A-Ö om du är en sån person.
Högerklicka på ett projekt i sidebar för snabb åtkomst: Visa i Finder, Öppna i extern Terminal, Öppna på GitHub, eller Ta bort (filerna finns kvar på disken, vi är inga monster).
En workstream är där arbetet sker. Varje workstream får sin egen git worktree, branch, terminal, coding agent och browser tab. De är helt isolerade från varandra.
⌘N skapar en ny workstream. Bakom kulisserna:
ff).env och .env.local från huvudrepot (om aktiverat)Gränssnittet dyker upp direkt, worktree-skapandet sker i bakgrunden.
Med Auto-rename branch aktiverat i inställningarna byter coding agent namn på din branch för att matcha uppgiften vid första prompten. Så ff/coral-tidal-reef blir ff/fix-login-timeout.
När en PR är mergad visar Factory Floor en “Purge” badge så att du vet att det är säkert att städa upp.
Coding Agent-tabben kör Claude Code i en inbäddad terminal. Den sitter direkt efter Info-tabben i varje workstream.
Quick actions kör engångs-Claude-uppgifter från sidebar:
Dessa körs som bakgrunds-claude -p-anrop. Aktivera Quick action debug mode i inställningarna om du vill veta hur korven görs. Lita på oss, David lade ner mer tid än han vill erkänna på att debugga konstiga beteenden där inne.
Terminals, browsers och kortkommandon, verktygen inuti varje workstream.
Terminals är GPU-renderade via Ghostty. De är snabba.
Du kan dra filer och text till terminal. För ibland är musen helt okej, faktiskt.
⌘Shift+E öppnar workstream-katalogen i din föredragna externa terminal-app.
Varje workstream kan ha browser tabs (⌘B). Browser är inbäddad, inget fönsterbyte behövs.
När ditt run-script startar en dev-server upptäcker Factory Floor den lyssnande porten automatiskt och navigerar browser dit. Ingen konfiguration behövs. ff-run-launchern övervakar processträdet efter TCP-lyssnare.
Browser visar en anslutningsfel-sida med en retry-knapp om servern inte är redo ännu. Den auto-navigerar när porten upptäcks.
Factory Floor är tangentbord-först. Här är allt.
| Genväg | Åtgärd |
|---|---|
| ⌘N | Ny workstream (eller projekt, om inga finns) |
| ⌘Shift+N | Nytt projekt |
| ⌘, | Inställningar |
| ⌘/ | Hjälp |
| Genväg | Åtgärd |
|---|---|
| ⌘Return | Fokusera Coding Agent |
| ⌘I | Info-panel |
| ⌘E | Environment |
| ⌘T | Ny Terminal |
| ⌘B | Ny Browser |
| ⌘W | Stäng tab |
| ⌘L | Adressfält (browser) |
| ⌘0 | Tillbaka till projekt |
| ⌘1-9 | Byt tab |
| ⌘Shift+[ | Föregående tab |
| ⌘Shift+] | Nästa tab |
| Ctrl+Shift+R | Bygg om setup |
| Ctrl+Shift+S | Starta/starta om run |
| Genväg | Åtgärd |
|---|---|
| Ctrl+1-9 | Byt workstream (från valfri vy) |
| ⌘Shift+O | Öppna i extern browser |
| ⌘Shift+E | Öppna i extern terminal |
Hur man automatiserar de tråkiga delarna.
Lägg en .factoryfloor.json i projektets rotkatalog för att automatisera workstream-livscykeln.
{
"setup": "npm install",
"run": "PORT=$FF_PORT npm run dev",
"teardown": "docker-compose down"
}
| Hook | När det körs |
|---|---|
setup |
En gång, när en workstream skapas. Installera beroenden, kör migreringar, vad som helst. |
run |
På begäran via Environment-tabben (⌘E). Kapslad i ff-run för port detection. |
teardown |
När en workstream arkiveras eller rensas. Stoppa containrar, städa upp. |
Alla fält är valfria. Script körs i workstream-katalogen med ditt login shell. Ja, även fish. Fråga inte hur lång tid det tog.
Factory Floor läser också conductor.json och .superset/config.json om .factoryfloor.json inte finns. För kompatibilitet är artigt. (Dags för en standard?)
Delad layout: Setup till vänster, Run till höger.
Varje terminal, setup-script och run-kommando i en workstream har dessa variabler:
| Variabel | Vad det är | Exempel |
|---|---|---|
FF_PROJECT |
Projektnamn | my-app |
FF_WORKSTREAM |
Workstream-namn | coral-tidal-reef |
FF_PROJECT_DIR |
Huvudrepots sökväg | /Users/you/my-app |
FF_WORKTREE_DIR |
Worktree-sökväg | ~/.factoryfloor/worktrees/my-app/coral-tidal-reef |
FF_PORT |
Deterministisk port (40001-49999) | 42847 |
Varje workstream får en deterministisk port baserad på en hash av worktree-sökvägen. Samma workstream, samma port, varje gång. Inga portkonflikter mellan workstreams. Använd den i ditt run-script: PORT=$FF_PORT npm run dev. Om du kör tusentals workstreams samtidigt kanske du får en kollision 🎲 men förhoppningsvis tar minnet slut först.
När aktiverat (Settings > General) skapar Factory Floor symlinks för .env och .env.local från ditt huvudrepo till varje worktree. Så dina hemligheter följer med utan kopiera-klistra. På tal om hemligheter, har vi berättat om Vaultuner?
Öppna med ⌘, eller klicka på kugghjulsikonen.
ff).env och .env.local till worktreesKoppla Factory Floor till allt annat.
Installera ff-kommandot från Settings > Environment > Install CLI. Sedan:
ff /path/to/your/project
Öppnar katalogen i Factory Floor. Det är allt det gör, och det är allt det behöver göra.
Kräver gh CLI med autentisering (gh auth login).
Från sidebar, kör ett-klicks-operationer: Create PR (AI-genererad titel och beskrivning), Push (till origin med -u), eller Abandon PR (stänger med en kommentar). För om du är trött på att skriva “now commit, push, and open a PR” till Claude för hundrade gången, är du inte ensam.
Factory Floor visar en badge i sidebar när en nyare version finns tillgänglig. Du kan också kontrollera manuellt från Factory Floor > Check for Updates…
Homebrew-användare:
brew upgrade factory-floor
DMG-användare: uppdateringar hanteras automatiskt via Sparkle. Kontrollera manuellt från menyn: Factory Floor > Check for Updates…
Aktivera Bleeding edge updates i Settings > Advanced för förhandsversioner. För dig som gillar att leva på kanten och skicka buggrapporter.
Nä. Ingen syntaxmarkering, ingen autocomplete, ingen minimap. Våra obefintliga riskkapitalister har inte drivit någon företagsagenda. Vi tänker att du ska använda verktygen du redan älskar: Zed, VS Code, vad som helst. Factory Floor ger dig en coding agent, en browser och en worktree. Dessutom, vem skriver kod längre?
Också nä. Din git-klient gör redan detta bättre än vi någonsin skulle kunna. Vi ser bara till att varje workstream har en ren branch redo för granskning. Du håller väl dina PRs små och undviker merge-konflikter, va? …Va?
Factory Floor upptäcker verktyg från ditt login shell. Om claude, gh, git eller tmux inte dyker upp:
-L factoryfloor), så din personliga tmux-konfiguration stör inte$FF_PORT (eller att porten upptäcks från processträdet)ff-run-launchern kapslar run-scriptet, den övervakar barnprocesser efter lyssnande TCP-portar