Creating a workspace
In the New Session wizard:- Switch the session type from Simple to Worktree
- A repo picker bar appears — select the repositories you want to include
- For each repo, choose a target branch (the starting point for your worktree)
- Tap Add directory… to browse and add repos not yet registered
- Create the session
What happens under the hood
When you create a workspace, Happy:- Generates a workspace directory at
~/.happy/workspaces/<name>on your machine - Creates a Git worktree for each selected repo inside that directory
- All worktrees share the same branch name (the workspace name)
- Copies any configured files (e.g.,
.env) from the base repo to each worktree - Auto-generates a workspace-level
CLAUDE.mdandAGENTS.mdthat@importfrom each repo’s config
Managing workspaces
Open a workspace session and tap the session info button to access workspace management:- Switch repos — A repo picker lets you switch between repos in the workspace
- Create PRs — Create a pull request for each repo’s worktree branch independently (requires
ghCLI) - Archive — Clean up the workspace: removes worktrees, deletes branches, and cleans up the workspace directory
Per-repo configuration
Registered repos can be configured with:- Default target branch — Pre-selected branch when adding the repo to a workspace
- Setup script — Bash script run after worktree creation (e.g.,
npm install) - Archive script — Bash script run during workspace cleanup
- Copy files — Files to copy from the base repo to the worktree (e.g.,
.env,.env.local)
Requirements
- All selected directories must be Git repositories
- The
ghCLI is needed for PR creation - The target machine must be online during workspace creation