自宅のWindowsを開発機にする その4: Orcaを入れてWSLのリポジトリを扱う

この記事でわかること
- WindowsでGhosttyを使う道が狭い理由と代わりの選択肢
- Orcaは初期設定でClaudeを許可確認なしで起動する
- 実行環境をWSLにしてもghはWindows側に要る
- 既定のWSLディストロが別物だった罠と、CLIでのリポジトリ登録
その3までの状態(WSLに開発環境とClaude Codeの設定が移植済み)
この記事は「自宅のWindowsを開発機にする」連載のその4です。その1〜3で Mac とスマホから使える状態になったので、今回はデスクトップの前に座ったときの話です。
最初は Ghostty を使いたかった
Mac では Ghostty + herdr で Claude Code のセッションを管理しているので、デスクトップでも同じことがしたかったんですよね。でも調べてみると、
- Ghostty の公式の Windows 版はまだない
- WSL の GUI 機能(WSLg)で Linux 版を動かす手はあるけど、公式にはサポート外で、起動直後に落ちる報告もある。日本語入力の設定も別途要る
- Ghostty 互換の Windows 版はコミュニティにあるけど、まだ若いプロジェクト
という感じで、素直にやるなら「Windows Terminal から WSL の herdr につなぐ」が一番堅いかなという結論でした。herdr は WSL 側で常駐しているので、Mac からも同じセッションに入れますし。
ただせっかくなので、複数の coding agent を git worktree ごとに並べて動かせる Orca(stablyai/orca)を試してみることにしました。Windows にも対応していて、WSL 上のリポジトリも扱えます。
インストール
GitHub Releases の orca-windows-setup.exe を WSL から Windows のダウンロードフォルダに落として、署名だけ確認してから、デスクトップの前でダブルクリックしました。
powershell.exe -NoProfile -Command "(Get-AuthenticodeSignature C:\Users\<ユーザー>\Downloads\orca-windows-setup.exe).Status"SSH 越しにインストーラを起動しても、WSL を立ち上げているのが「ログオンしていなくても動くタスク」なので、画面に出ない裏側で動いてしまうんですよね。GUI のものは素直に自分で起動するのが早いです。
初期設定で Claude が許可確認なしで起動する
入れた直後の設定ファイル(%APPDATA%\orca\profiles\...\orca-data.json)を見て、ちょっと気になったところがありました。各エージェントの起動引数の既定値がこうなっていたんです。
"agentDefaultArgs": {
"claude": "--dangerously-skip-permissions",
"codex": "--dangerously-bypass-approvals-and-sandbox",
"gemini": "--yolo",
...
}並列で回すツールとしては確かに楽なんですが、自分は Claude Code の auto mode と許可確認で「本番対象の削除は止める」みたいな運用をしているので、これだと全部素通りになってしまいます。なので Orca を終了してから、claude の引数を空にしました。起動中に書き換えると終了時に上書きされるので、必ず終了してからです。
入れたらまずここを見ておくといいかなと思います。
実行環境を WSL にする
同じファイルで、ターミナルとエージェントの実行環境も WSL に寄せました。
"terminalWindowsShell": "wsl.exe",
"terminalWindowsWslDistro": "Ubuntu",
"localAccountRuntime": "wsl",
"localAccountWslDistro": "Ubuntu"これで Orca のターミナルは WSL の Ubuntu で開き、Claude Code も WSL 側のものが動くようになりました。ただ、このあとにこの設定が勝手に戻っていた件もあって、それはその5で書いています。
罠1: gh は Windows 側にも要る
起動してみると「gh をインストールして」と言われました。WSL には gh を入れてあるんですが、PR 一覧などの GitHub 連携は実行環境と関係なく Windows 側の gh を見るみたいです。
管理者権限を使いたくなかったので、zip 版をユーザーのフォルダに展開してユーザー PATH に足しています。
# WSL から Windows 側に gh を置く
unzip -qo gh.zip -d /mnt/c/Users/<ユーザー>/AppData/Local/Programs/gh
# ユーザー PATH に追加(PowerShell)
[Environment]::SetEnvironmentVariable("Path", "$p;$env:LOCALAPPDATA\Programs\gh\bin", "User")ログインは WSL 側と Windows 側で別々に gh auth login --web が要ります。デバイスコード方式なので、コードさえ出せば Mac のブラウザから承認できるのが地味に助かりました。PATH を足したあとは Orca の再起動が必要です。
罠2: 既定の WSL ディストロが別物だった
Orca の設定ファイルを見ていたら ubuntu-22.04 という名前が出てきて、wsl.exe -l -v で確認したら Ubuntu が2つ入っていました。しかも既定は開発環境を作っていないほうの 22.04。
NAME STATE VERSION
* Ubuntu-22.04 Running 2
Ubuntu Running 2Orca はディストロを明示していたので大丈夫でしたが、Windows Terminal から「WSL」を開くと違うほうに入って混乱するところでした。wsl.exe --set-default Ubuntu で切り替えています。昔入れたものって忘れますよね。。。
リポジトリの登録は CLI で
Orca には CLI が同梱されていて(resources\bin\orca.exe)、WSL から呼べます。リポジトリは \\wsl.localhost\ のパスで登録できました。
orca.exe repo add --path '\\wsl.localhost\Ubuntu\home\koki\dev\private\<リポジトリ>' --json気をつけるところはこんな感じです。
- CLI には登録を外すコマンドがないので、外すのは画面から。最初に全部登録してしまって、あとで普段触らないものを手で外す羽目になりました笑
- git 管理外のフォルダは
Not a valid git repositoryで弾かれる。今回は desktop 側だけgit initして登録しました
なので、Orca には普段よく触るリポジトリだけを出すようにしています。
最終的には、仕事のリポジトリ4つとプライベートのリポジトリ4つを出しています。
アイコンを付ける
リポジトリが並ぶと、全部同じグレーの丸で見分けがつかないんですよね。Orca のコードを覗いたら、設定ファイルの repos と projects に repoIcon と badgeColor を持たせられるようになっていました。repoIcon は絵文字・lucide のアイコン名・画像の3種類です。
{
"displayName": "<リポジトリ>",
"badgeColor": "#16a34a",
"repoIcon": { "type": "emoji", "emoji": "🧾" }
}ここも起動中に書くと終了時に上書きされるので、完全に終了してからです。しかも Orca はウィンドウを閉じてもタスクトレイに残るので、「閉じたのに書き換えが消える」というのを一回やりました。タスクトレイから終了するのが確実です。
仕事のリポジトリを色でまとめておくと、どれが仕事でどれが個人か一目で分かるので、思ったより便利でした。
ここから先
ここまでで一応動くようにはなったんですが、実際に使い始めたら、仕事用の Claude アカウントが切り替わらない、過去の会話が出てこない、といった問題が次々出てきました。そのあたりは次のその5にまとめています。
連載の一覧
- その1: Tailscale で Mac とスマホから WSL に入る
- その2: Mac の開発環境を作業状態ごと WSL に移す
- その3: Claude Code の設定とメモリを引っ越す
- その4: Orca を入れて WSL のリポジトリを扱う(この記事)
- その5: Orca で仕事用アカウントと会話履歴を正しく扱う
次回(その5)で連載は最終回です。


