Git Orchestrated Zone for Development
ターミナル + worktree 管理を軸に、Git グラフやファイル差分まで束ねた AI エージェント並列開発デスクトップアプリ。
- 🌳 マルチ repo × マルチ worktree を 1 ウィンドウに
- ✨ ボタンや PR / issue 選択でサクッと worktree 作成
- 🤖 worktree ごとに Claude を並列実行
- 🔔 各エージェントの状態がひと目で分かる
- 🎙️ 確認待ち・完了は音声でも通知
- 🗂️ Git グラフ × ファイルツリー × 変更一覧 × 差分プレビューが連動する IDE 的ビュー
gozd はスロベニア語で「森」([ɡɔ́st]、「ゴスト」)。
- macOS 26 Tahoe 以降
- zsh(PTY 起動時に gozd が zsh 初期化チェーンを差し込む前提)
- 1 ウィンドウに複数の repo / worktree を並べて、それぞれで Claude を同時に動かせる
- サイドバーのボタンで worktree をサクッと作成
- PR / issue から直接 worktree 作成。レビューや着手がワンクリックで独立した作業スペースになる
- 各 worktree タスクの Claude 状態(作業中 / 確認待ち / 完了 / 再開可 など)と経過時間がサイドバーに並ぶ
- 「アクティブな worktree のターミナル」と「動いている Claude ターミナル一覧」をビュー切替で行き来でき、複数エージェントの様子を一画面で並べて見られる
- 確認待ち・完了は VOICEVOX が読み上げ。別ウィンドウにいても気付ける
- 過去に Claude を起動した worktree は session ID が保存され、サイドバーからクリックで
claude --resume起動 - サイドバーに「repo → worktree → Claude タスク」の階層が縦に並び、どこで何が走っているか一画面で把握できる
.env.localなど Git 管理外のファイルを worktree 作成時にメインから symlink で共有(対象パスはプロジェクト設定で指定)
- 選んだ worktree のコミット履歴をグラフ表示。タグや refs もバッジで
- グラフでコミットを選ぶ → 変更ファイル一覧 → 差分プレビュー、と滑らかに辿れる
- 2 つのコミットを範囲指定すれば、まとめた差分も見られる
- 開いているブランチに紐づく open PR の番号が Git グラフ上の ref バッジに表示される(draft はグレー、それ以外は紫で区別)
mise でインストールする。postinstall がインストール直後に ~/Applications/Gozd.app へアプリを配置する。
main への機能 merge ごとに自動リリースされる。
mise use -g 'github:miyaoka/gozd[prerelease=true,postinstall="\"$MISE_TOOL_INSTALL_PATH/bin/gozd\" sync-app"]'手動リリースされる安定版だけを取得する。
mise use -g 'github:miyaoka/gozd[postinstall="\"$MISE_TOOL_INSTALL_PATH/bin/gozd\" sync-app"]'gozd- Dock ピン留めと Spotlight 起動は
~/Applications/Gozd.appの固定パスで安定する - 更新は
mise upの実行時に postinstall が固定パスを差し替えて反映する。アプリ稼働中に更新した場合は次回起動から新版になる(詳細は docs/release.md)
gozd CLI で任意のパスを開く。アプリが未起動であれば自動で起動する。
gozd # カレントディレクトリで開く
gozd docs # docs ディレクトリで開く
gozd src/main.ts # src/ で開き、main.ts を開く初回起動時はサイドバーが空の状態。フォルダを登録するには:
- サイドバー右上の編集ボタンで編集モードに入り、末尾の
+ Add directoryから開きたいフォルダを選ぶ - もしくはターミナルで
gozd <パス>を実行する
追加後はサイドバーから worktree を作って作業を始める。
mise でツールチェインを揃え、依存を入れて開発ビルドを起動する。
mise install
pnpm install
pnpm run devパッケージした .app で検証する場合はソースからビルドする。生成されるのは local channel の
Gozd Local.app で、mise 配布の Gozd とは socket / bundle id が分かれており隣で同時起動できる
(docs/release.md)。
pnpm run build:app # out/mac-arm64/Gozd Local.app をパッケージング
pnpm run open:app # 生成した .app を起動electron-builder が成果物を .app 内へコピーするため、.app を更新するにはこの再パッケージが要る
(root の pnpm run build:all は各パッケージの成果物を作るだけで .app は更新しない)。