AI-powered development workspace for macOS
Git worktrees, Claude Code sessions, and dev servers in a single native app.
Factory Floor is a native macOS app built on Ghostty's GPU-rendered terminal. It manages multiple parallel development tasks, each in its own git worktree with a dedicated Claude Code agent, terminal, and browser.
One project, many workstreams, all at native speed.
- Git Worktrees — Each workstream gets its own branch and worktree. Switch between tasks without stashing.
- Claude Code — Integrated AI agent with session persistence. Resume conversations across app restarts.
- Tmux Persistence — Agent sessions survive app restarts via tmux on a dedicated socket.
- Setup & Run Scripts — Configure setup, run, and teardown scripts per project via
.factoryfloor.json. Environment tab with split-pane terminals, Rebuild (⌃⇧R) and Start/Rerun (⌃⇧S). - Embedded Browser — WKWebView tab with automatic port detection. The browser navigates to the port your run script opens.
- GitHub Integration — Repo info, open PRs, and branch PR status via the
ghCLI. - Dynamic Tabs — Open as many terminals and browsers as you need. Close with Cmd+W or Ctrl+D.
- Update Notifications — Checks for new versions and shows a badge in the sidebar.
- Keyboard-first — Every action has a shortcut. Cmd+Return for agent, Cmd+I for info, Cmd+E for environment, Cmd+T for terminal, Cmd+B for browser.
Add a .factoryfloor.json to your project root:
{
"setup": "npm install",
"run": "PORT=$FF_PORT npm run dev",
"teardown": "docker-compose down"
}Every workstream terminal has access to:
| Variable | Description |
|---|---|
FF_PROJECT |
Project name |
FF_WORKSTREAM |
Workstream name |
FF_PROJECT_DIR |
Main repository path |
FF_WORKTREE_DIR |
Worktree path for this workstream |
FF_PORT |
Deterministic port (40001-49999) |
| Shortcut | Action |
|---|---|
Cmd+N |
New workstream or project |
Cmd+Shift+N |
New project |
Cmd+, |
Settings |
Cmd+/ |
Help |
| Shortcut | Action |
|---|---|
Cmd+Return |
Focus Coding Agent |
Cmd+I |
Info panel |
Cmd+E |
Environment |
Cmd+T |
New Terminal |
Cmd+B |
New Browser |
Cmd+W |
Close tab |
Cmd+L |
Address bar (browser) |
Cmd+0 |
Back to project |
Cmd+1-9 |
Switch tab |
Ctrl+1-9 |
Switch workstream |
Cmd+Shift+[ / ] |
Cycle tabs |
Cmd+Shift+O |
External browser |
Cmd+Shift+E |
External terminal |
Ctrl+Shift+R |
Rebuild setup |
Ctrl+Shift+S |
Start/Rerun |
English, Catalan, Spanish, Swedish.
brew install --cask alltuner/tap/factoryfloorOr download from GitHub Releases.
brew upgrade --cask factoryfloorHomebrew automatically installs the ff command:
ff # open current directory
ff ~/repos/myapp # open a specific directoryIf you installed via DMG, you can install the CLI from Settings > Environment.
Requires: Xcode, XcodeGen (brew install xcodegen), Zig (brew install zig).
# First time: build the Ghostty terminal engine
cd ghostty && zig build -Demit-xcframework=true -Dxcframework-target=universal -Doptimize=ReleaseFast && cd ..
# Build
./scripts/dev.sh build
# Build and run
./scripts/dev.sh br
# Kill and relaunch
./scripts/dev.sh run
# Run with a specific directory
./scripts/dev.sh run ~/repos/myproject
# Run tests
./scripts/dev.sh test
# Clean
./scripts/dev.sh clean
# Release (sign, notarize, DMG)
./scripts/release.sh 0.1.0See CLAUDE.md for development workflow, architecture, and conventions.
The website lives in website/ and is built with Hugo + Tailwind CSS.
cd website && bun install && bun run devAll strings are localized. To add a language:
- Copy
Localization/en.lprojtoLocalization/xx.lproj - Translate all values in
Localizable.strings - Add the path to
project.ymland runxcodegen generate
Factory Floor is built on the shoulders of these projects:
- Ghostty — GPU-accelerated terminal engine (Metal-rendered via libghostty)
- Claude Code — AI coding agent by Anthropic
- tmux — Terminal multiplexer for session persistence
- XcodeGen — Xcode project generation from
project.yml - cmark-gfm — GitHub Flavored Markdown rendering (via swift-cmark)
- Hugo + Tailwind CSS — Website
- Umami — Privacy-friendly website analytics
Factory Floor is an open source project built by David Poblador i Garcia through All Tuner Labs.
If this project helped you ship faster, automate your workflow, or experiment with coding agents, consider supporting its development.
❤️ Sponsor development https://github.com/sponsors/alltuner
☕ One-time support https://buymeacoffee.com/alltuner
Your support helps fund the continued development of Factory Floor and other open source developer tools such as VibeTuner.
Built by David Poblador i Garcia with the support of All Tuner Labs.
Made with ❤️ in Poblenou, Barcelona.