UStackUStack
Factory Floor icon

Factory Floor

Factory Floor는 macOS에서 git worktree, Claude Code 세션, dev 서버를 한 창에서 관리해 워크스트림 전환과 자동화까지 지원합니다.

Factory Floor

Factory Floor란 무엇인가요?

Factory Floor는 macOS 네이티브 개발 워크스페이스로, 여러 병렬 “워크스트림”을 한 곳에서 실행합니다. git worktree(브랜치와 격리된 디렉토리), Claude Code 세션, 개발 터미널, dev 서버 브라우징을 조정하여 로컬 상태를 잃지 않고 작업을 전환할 수 있습니다.

앱은 격리에 초점을 맞췄습니다: 각 워크스트림은 자체 브랜치, 터미널, AI 에이전트 세션을 병렬로 실행합니다. Ghostty의 GPU 렌더링 터미널을 사용하며, 프로젝트별 구성 파일을 통해 setup/run/teardown 자동화를 지원합니다.

주요 기능

  • 프로젝트와 워크스트림을 위한 단일 창 워크스페이스: 별도 앱을 오가며 작업하는 대신 터미널, AI 세션, 내장 브라우저를 함께 확인하세요.
  • 워크스트림별 Git Worktrees: 각 워크스트림은 자체 브랜치와 worktree를 사용하며, 앱은 스태싱 없이 작업 전환을 지원합니다. .env 파일은 자동 심링크됩니다.
  • 세션 지속성을 가진 Claude Code 통합: Claude Code 세션은 지속적인 컨텍스트를 유지하며, 자동 세션 ID를 통해 앱 재시작 시 재개할 수 있습니다.
  • 에이전트 세션의 Tmux 기반 지속성: tmux를 전용 소켓으로 사용해 에이전트 세션이 앱 재시작 시에도 유지되어 작업 흐름이 끊기지 않습니다.
  • 자동 포트 감지 내장 브라우저: 내장 브라우저는 실행 스크립트가 리스닝하는 포트를 감지하고 자동으로 이동합니다.
  • .factoryfloor.json을 통한 프로젝트 생명주기 스크립트: 프로젝트별 setup, run, teardown 스크립트를 구성하세요. 스크립트는 워크스트림 디렉토리에서 로그인 쉘로 실행되며, 모든 필드는 선택적입니다.
  • 모든 터미널과 스크립트에서 사용 가능한 환경 변수: 터미널과 스크립트는 프로젝트/워크스트림 이름, 경로, 결정적 FF_PORT 등의 변수를 받습니다.
  • gh CLI를 통한 GitHub 통합: 프로젝트 뷰에서 repo 정보, PR 열기, 브랜치 PR 상태를 확인할 수 있습니다(gh CLI 기반).
  • 키보드 중심 탐색과 단축키: 프로젝트/워크스트림 생성, 탭/워크스페이스/프로젝트 전환, 워크스트림 아카이빙, 에디터/터미널 열기(외부 옵션 포함) 단축키를 제공합니다.

Factory Floor 사용 방법

  1. Factory Floor 설치: brew install --cask alltuner/tap/factoryfloor 명령으로 설치하거나 소스를 다운로드하세요.
  2. 프로젝트 추가: 사이드바에 디렉토리를 드롭하거나 새로 생성하세요. Factory Floor는 git repo, 설치된 도구, GitHub 연결을 자동 감지합니다.
  3. 워크스트림 생성: 새 git worktree와 브랜치를 생성하고, Claude Code 세션을 시작하며, 터미널을 열고 브라우저 탭을 추가하는 워크스트림을 만드세요.
  4. Dev 서버 실행 및 미리보기: 프로젝트 루트에 .factoryfloor.json으로 setup, run, (선택적) teardown을 구성하세요. run 명령이 리스닝 시작 시 내장 브라우저가 감지된 포트를 엽니다.
  5. 컨텍스트 손실 없이 작업 전환: 워크스트림 간 이동하세요. tmux 기반 지속성과 Claude Code 세션 ID가 앱 재시작 시 컨텍스트를 유지합니다.

사용 사례

  • 하나의 repo에서 병렬 기능 작업: 서로 다른 작업에 별도 워크스트림을 생성해 각자 브랜치, 터미널, Claude Code 세션, 브라우저 탭을 가지며 전환하세요.
  • 작업 범위별 의존성 설정: 프로젝트 setup 스크립트(예: npm install)를 정의해 worktree/워크스트림 생성 시 의존성을 설치하세요.
  • 결정적 포트로 일관된 dev 서버 실행: run 스크립트에서 FF_PORT 환경 변수를 사용하세요(예: PORT=$FF_PORT npm run dev). 각 워크스트림이 예측 가능한 포트를 사용합니다.
  • 아카이빙 시 자동 정리: teardown 스크립트(예: docker-compose down)를 설정해 워크스트림 아카이빙 시 컨테이너를 중지하거나 리소스를 정리하세요.
  • 세션 간 AI 지원 디버깅 재개: 지속된 Claude Code 세션 ID와 tmux 소켓 지속성을 활용해 앱 재시작 후 작업을 계속하세요.

자주 묻는 질문

  • Factory Floor는 오픈 소스인가요? 네. Factory Floor는 MIT 라이선스이며 소스 코드는 GitHub에서 제공됩니다.

  • 앱이 내장 브라우저에서 dev 서버를 어떻게 열나요? 워크스트림 run 스크립트로 프로젝트를 시작하면 Factory Floor가 자동 포트 감지를 통해 run 명령이 리스닝하는 포트를 확인하고 내장 브라우저를 해당 주소로 이동합니다.

  • Setup/run/teardown 자동화를 어디서 구성하나요? 프로젝트 루트에 .factoryfloor.json 파일을 추가하세요. setup, run, teardown 스크립트 명령을 포함할 수 있으며, 모든 필드는 선택적입니다.

  • 스크립트와 터미널에서 사용 가능한 환경 변수는 무엇인가요? 모든 워크스트림 터미널과 setup/run/teardown 스크립트는 FF_PROJECT, FF_WORKSTREAM, FF_PROJECT_DIR, FF_WORKTREE_DIR, FF_PORT 등의 환경 변수를 사용할 수 있습니다.

  • Factory Floor의 GitHub 뷰에 GitHub 도구가 필요한가요? 프로젝트 뷰의 GitHub 통합은 gh CLI로 구동됩니다.

대안

  • 로컬 터미널 + tmux + 수동 git worktree 워크플로: 별도 도구로 동일한 기본 접근 방식(worktree, tmux 지속성, dev 서버 모니터링)을 근사할 수 있지만, 단일 창 오케스트레이션과 내장 브라우저 동작은 얻을 수 없습니다.
  • IDE 통합 멀티 루트 워크스페이스: IDE는 여러 프로젝트와 터미널을 관리할 수 있지만, 스크립트 기반 라이프사이클과 포트 감지 흐름으로 작업별 명시적 git worktree 격리를 제공하지 않을 수 있습니다.
  • 작업별 Git 브랜치 + 스태싱: 더 간단한 git 접근 방식으로 컨텍스트 전환을 지원할 수 있지만, 일반적으로 격리된 worktree와 작업 범위 환경 대신 스태싱/정리를 의존합니다.
Factory Floor | UStack