UStackUStack
Factory Floor icon

Factory Floor

Factory Floor 是一款原生 macOS 开发工作区:一窗管理 git worktrees、Claude Code 会话与开发服务器浏览,并支持每个工作流自动化脚本。

Factory Floor

Factory Floor 是什么?

Factory Floor 是一款原生 macOS 开发工作区,可在一处运行多个并行“工作流”。它协调 git worktrees(分支和隔离目录)、Claude Code 会话、开发终端以及开发服务器浏览——让你在切换任务时不丢失本地状态。

该应用围绕隔离设计:每个工作流拥有独立的 branch、终端和 AI 代理会话,并可并发运行。它使用 Ghostty 的 GPU 渲染终端,并支持通过每个项目的配置文件实现 setup/run/teardown 自动化。

主要功能

  • 项目和工作流单窗工作区:同时查看终端、AI 会话和嵌入式浏览器,而非切换多个独立应用。
  • 每个工作流使用 Git Worktrees:每个工作流使用独立的 branch 和 worktree,支持无 stash 任务切换;.env 文件自动符号链接。
  • Claude Code 集成,支持会话持久化:Claude Code 会话保持持久上下文,可通过自动会话 ID 在应用重启后恢复。
  • 基于 Tmux 的代理会话持久化:代理会话通过专用 socket 上的 tmux 存活应用重启,减少工作流中断。
  • 嵌入式浏览器,支持自动端口检测:嵌入式浏览器检测运行脚本监听的端口,并自动导航至该端口。
  • 通过 .factoryfloor.json 配置项目生命周期脚本:为每个项目配置 setuprunteardown 脚本;脚本在工作流目录中使用登录 shell 运行,所有字段均为可选。
  • 每个终端和脚本均可用环境变量:终端和脚本可接收项目/工作流名称、路径以及确定性 FF_PORT 等变量。
  • 通过 gh CLI 集成 GitHub:项目视图可显示仓库信息、打开 PR 以及分支 PR 状态(由 gh CLI 驱动)。
  • 键盘优先导航和快捷键:提供创建项目/工作流、切换标签/工作区/项目、归档工作流以及打开编辑器/终端(包括外部选项)的快捷键。

如何使用 Factory Floor

  1. 安装 Factory Floor:通过 brew install --cask alltuner/tap/factoryfloor 安装,或下载源代码。
  2. 添加项目:将目录拖入侧边栏或新建一个;Factory Floor 会自动检测 git 仓库、已安装工具和 GitHub 连接。
  3. 创建工作流:创建工作流以生成新的 git worktree 和 branch、启动 Claude Code 会话、打开终端并添加浏览器标签。
  4. 运行开发服务器并预览:在项目根目录的 .factoryfloor.json 中配置 setuprun 和(可选)teardown;运行命令开始监听时,嵌入式浏览器会打开检测到的端口。
  5. 切换任务而不丢失上下文:在工作流间切换;tmux 持久化和 Claude Code 会话 ID 用于在应用重启时保持上下文。

使用场景

  • 同一仓库中并行功能开发:为不同任务创建独立工作流,每个工作流拥有自己的 branch、终端、Claude Code 会话和浏览器标签,便于切换。
  • 任务范围依赖设置:定义项目 setup 脚本(如 npm install),以在创建 worktree/workstream 时安装依赖。
  • 确定性端口的开发服务器运行:在 run 脚本中使用 FF_PORT 环境变量(例如 PORT=$FF_PORT npm run dev),每个工作流使用自己的可预测端口。
  • 归档时自动清理:设置 teardown 脚本(例如 docker-compose down),在归档工作流时停止容器或清理资源。
  • 跨会话恢复 AI 辅助调试:依赖持久化的 Claude Code 会话 ID 和 tmux socket 持久化,在重启应用后继续工作。

常见问题

  • Factory Floor 是开源的吗? 是的。Factory Floor 采用 MIT 许可,源代码可在 GitHub 上获取。

  • 应用如何在嵌入式浏览器中打开我的开发服务器? 通过工作流运行脚本启动项目时,Factory Floor 使用自动端口检测确定运行命令监听的端口,并将嵌入式浏览器导航至该地址。

  • 在哪里配置 setup/run/teardown 自动化? 在项目根目录添加 .factoryfloor.json 文件。可包含 setuprunteardown 脚本命令;所有字段均为可选。

  • 脚本和终端可用哪些环境变量? 每个工作流终端以及 setup/run/teardown 脚本均可使用 FF_PROJECTFF_WORKSTREAMFF_PROJECT_DIRFF_WORKTREE_DIRFF_PORT 等环境变量。

  • Factory Floor 的 GitHub 视图需要 GitHub 工具吗? 项目视图中的 GitHub 集成由 gh CLI 驱动。

替代方案

  • 本地终端 + tmux + 手动 git worktree 工作流:您可以使用单独工具近似实现相同底层方法(worktrees、tmux 持久化和开发服务器监控),但无法获得单窗编排和嵌入式浏览器功能。
  • IDE 集成的多根工作区:IDE 可以管理多个项目和终端,但可能无法为每个任务提供明确的 git worktree 隔离,以及相同的脚本驱动生命周期和端口检测流程。
  • 按任务的 Git 分支 + 暂存:更简单的 git 方法可以支持上下文切换,但通常依赖暂存/清理,而不是隔离的 worktrees 和任务范围环境。
Factory Floor | UStack