Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ThreadBay

ThreadBay is a macOS app for working on multiple Git branches in parallel and running development agents in integrated terminals.

How It Works

  1. Add a project from the settings by selecting its local Git repository.
  2. Create a space from a new branch, an existing branch, or a GitHub pull request. You can give it an optional display name; otherwise ThreadBay assigns a stable two-word name such as cosmic-otter.
  3. ThreadBay creates an independent clone next to the source repository, then checks out the selected branch. Each task has its own directory and does not affect other spaces. The current branch can later be changed without renaming the space.
  4. From that space, launch Claude Code, Codex, a shell, or a custom command in the integrated terminal. Multiple sessions can run at the same time.
  5. Open the directory in VS Code, Zed, Cursor, or Finder. Deleting a space stops its sessions, removes its directory, and removes it from ThreadBay.

Each Git space also exposes actions in the sidebar to create a commit, generate a commit message with Claude, Codex, or a custom command, optionally push or merge it, and switch branches with a searchable picker. Merges run in a temporary worktree and never change the configured source repository or the branch checked out in the space.

The app remains accessible from the menu bar and can send a notification when an agent finishes a turn or waits for an action. Projects, spaces, and agents are stored in local YAML files:

  • ~/Library/Application Support/com.jlex.threadbay/settings.yaml
  • ~/.threadbay/spaces.yaml
  • ~/Library/Application Support/com.jlex.threadbay/agents.yaml

Requirements

  • macOS 14 or later;
  • Swift 6, provided by Xcode or the Command Line Tools;
  • Git;
  • gh to create a space from a pull request;
  • the commands for the agents or editors you want to use (claude, codex, code, zed, cursor, etc.).

Build from Source

git clone https://github.com/goudyj/threadbay.git
cd threadbay
swift build
swift test
./scripts/run-app.sh

Swift Package Manager downloads dependencies automatically during the first build. The launcher builds and opens ThreadBay Dev.app, which has its own macOS identity and storage. It can run alongside the production app without stopping agents that are already running there.

Development data is isolated from production data:

  • ~/Library/Application Support/com.jlex.threadbay.dev/settings.yaml
  • ~/.threadbay-dev/spaces.yaml
  • ~/Library/Application Support/com.jlex.threadbay.dev/agents.yaml

The development app starts with an empty configuration. Add a disposable project from its settings before testing destructive operations such as deleting spaces or branches.

To create a release build without launching it:

./scripts/build-app.sh

The script compiles in release mode, assembles ThreadBay.app at the project root, and signs it locally. You can then move it to the Applications folder.

The existing explicit debug build also remains available and still targets the production app bundle:

./scripts/build-app.sh debug

To assemble the isolated development bundle without launching it, pass the dev profile:

./scripts/build-app.sh debug dev

About

Native macOS app for managing isolated Git workspaces and running AI agents in integrated terminals.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages