Skip to content

alltuner/factoryfloor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

726 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Factory Floor

Factory Floor

AI-powered development workspace for macOS
Git worktrees, Claude Code sessions, and dev servers in a single native app.

Website · Download · Sponsor

License Stars


Get Started

Install via Homebrew:

brew install --cask alltuner/tap/factoryfloor

Or download the latest release.

Then:

  1. Open Factory Floor and add a project by clicking the + button in the sidebar, then selecting a repository directory.
  2. Create a workstream with Cmd+N. Factory Floor sets up a git worktree and launches a Claude Code agent automatically.
  3. Start building. Add terminals (Cmd+T), browsers (Cmd+B), editors (Cmd+O), or configure run scripts to auto-detect your dev server.

What is Factory Floor?

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.

Features

  • 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, Start/Rerun (⌘⇧⏎).
  • Embedded Browser — WKWebView tab with automatic port detection. The browser navigates to the port your run script opens.
  • Code Editor — Built-in Monaco editor (same engine as VS Code) embedded via WKWebView. Syntax highlighting, IntelliSense, and file tree. One file per tab, shared undo history.
  • GitHub Integration — Repo info, open PRs, and branch PR status via the gh CLI.
  • Dynamic Tabs — Open as many terminals, browsers, and editors 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+1-9 for tabs, Cmd+Return for agent, Cmd+T for terminal, Cmd+B for browser, Cmd+O for editor.

Tmux Mode

When tmux mode is enabled (Settings > Terminal), Factory Floor wraps Coding Agent sessions in tmux using a dedicated socket (factoryfloor). This keeps sessions alive across app restarts without interfering with your personal tmux setup.

The tmux config strips all UI chrome (status bar, prefix key, keybindings) since Factory Floor manages the terminal directly. Sessions are still fully accessible from any external terminal:

# List active sessions
tmux -L factoryfloor list-sessions

# Attach to a session
tmux -L factoryfloor attach-session -t <session-name>

Note that because keybindings are removed, you will need to detach with tmux -L factoryfloor detach-client from another terminal, or use the standard kill-session command.

Script Configuration

Add a .factoryfloor.json to your project root to automate your workstream lifecycle. All fields are optional.

{
  "setup": "npm install",
  "run": "PORT=$FF_PORT npm run dev",
  "teardown": "docker-compose down"
}
Hook When it runs Example use case
setup Once, when a workstream is created Install deps, copy .env, run build steps
run On demand via the Environment tab Start dev server, docker-compose up
teardown When a workstream is archived docker-compose down, clean temp files

Scripts run in the workstream directory using your login shell. The run script is wrapped in the ff-run launcher for automatic port detection.

Environment Variables

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)

Keyboard Shortcuts

Global

Shortcut Action
Cmd+N New workstream or project
Cmd+Shift+N New project
Cmd+, Settings
Cmd+/ Help
Cmd+Option+S Toggle sidebar

Workstream

Shortcut Action
Cmd+1 Info
Cmd+2 Coding Agent
Cmd+3-9 Switch tab
Cmd+Shift+[ / ] Cycle tabs
Cmd+Return Focus Coding Agent
Cmd+T New Terminal
Cmd+B New Browser
Cmd+O New Editor
Cmd+S Save (Editor)
Cmd+Shift+S Save As (Editor)
Cmd+W Close tab
Cmd+Shift+W Archive workstream
Cmd+L Address bar (browser)
Cmd+Shift+Return Start/Rerun

Navigation

Shortcut Action
Cmd+[ / ] Cycle workstreams
Cmd+Up / Down Cycle projects
Cmd+0 Back to project

External Apps

Shortcut Action
Cmd+Option+B Open in external browser
Cmd+Option+T Open in external terminal

Supported Languages

English, Catalan, Spanish, Swedish.


Install

brew install --cask alltuner/tap/factoryfloor

Or download the latest release.

Upgrade

brew upgrade --cask factoryfloor

CLI

Homebrew automatically installs the ff command. If you installed via DMG, install the CLI from Settings > Environment.


Development

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.0

See CLAUDE.md for development workflow, architecture, and conventions.

Website

The website lives in website/ and is built with Hugo + Tailwind CSS.

cd website && bun install && bun run dev

Localization

All strings are localized. To add a language:

  1. Copy Localization/en.lproj to Localization/xx.lproj
  2. Translate all values in Localizable.strings
  3. Add the path to project.yml and run xcodegen generate

Credits

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

Support the project

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.

License

MIT


Built by David Poblador i Garcia with the support of All Tuner Labs.
Made with ❤️ in Poblenou, Barcelona.

About

AI-powered macOS development workspace. Git worktrees, Claude Code sessions, and dev servers in a single native app.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors