工作区允许您在单个 AI 编程会话中跨多个 Git 仓库进行开发。Happy 会为每个仓库创建 Git 工作树,将它们归入一个工作区目录,并自动生成共享配置文件。

创建工作区

新建会话向导中:
  1. 将会话类型从简单切换为工作树
  2. 出现仓库选择栏 — 选择要包含的仓库
  3. 为每个仓库选择一个目标分支(工作树的起始点)
  4. 点击添加目录… 浏览并添加尚未注册的仓库
  5. 创建会话

底层原理

当您创建工作区时,Happy 会:
  1. 在您的机器上生成工作区目录,路径为 ~/.happy-next/workspaces/<name>
  2. 在该目录下为每个选定的仓库创建一个 Git 工作树
  3. 所有工作树共享相同的分支名称(即工作区名称)
  4. 将所有配置的文件(如 .env)从基础仓库复制到每个工作树
  5. 自动生成工作区级别的 CLAUDE.mdAGENTS.md,通过 @import 引用每个仓库的配置
~/.happy-next/workspaces/clever-ocean/
├── CLAUDE.md              # @import from each repo
├── frontend/              # Worktree of repo A
│   └── (branch: clever-ocean, based on main)
└── backend/               # Worktree of repo B
    └── (branch: clever-ocean, based on develop)

管理工作区

打开工作区会话并点击会话信息按钮,即可进入工作区管理:
  • 切换仓库 — 通过仓库选择器在工作区内的仓库之间切换
  • 创建 PR — 为每个仓库的工作树分支独立创建 Pull Request(需要 gh CLI)
  • 归档 — 清理工作区:删除工作树、清除分支并清理工作区目录

仓库配置

已注册的仓库可以配置以下选项:
  • 默认目标分支 — 将仓库添加到工作区时预选的分支
  • 初始化脚本 — 工作树创建后运行的 Bash 脚本(如 npm install
  • 归档脚本 — 工作区清理时运行的 Bash 脚本
  • 复制文件 — 从基础仓库复制到工作树的文件(如 .env.env.local

前提条件

  • 所有选定的目录必须是 Git 仓库
  • 创建 PR 需要 gh CLI
  • 创建工作区时目标机器必须在线