最近はClaudeデスクトップアプリのCodeタブを使って、PRごとにWorktreeを作成して実装させています。
miseを使っているプロジェクトだと、Worktree作成直後はmise.tomlがtrustされていない状態のため、Claudeの作業が途中で止まってしまうことがあり地味に面倒でした。そこで、Worktreeで作業を始めるタイミングで自動的にmise trustが実行されるようにしたので、その設定を共有します。
実現方法
Claude CodeのHooksを使います。
Hooksは、Claude Codeのライフサイクルの特定のタイミングで、任意のシェルコマンドを自動実行できる機能です。
ClaudeデスクトップでWorktreeのセッションを開始したタイミングでmise trustを実行するには、~/.claude/settings.jsonのhooksに次のように設定します。
{
"hooks": {
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "mise trust"
}
]
}
]
}
}
この例ではグローバルな設定を書き換えていますが、プロジェクトごとに設定したい場合は、
https://code.claude.com/docs/ja/settings#what-uses-scopes
に書かれているプロジェクト単位のsettings.jsonを使いましょう。Git管理せず自分だけに適用したい場合はsettings.local.jsonが使えます。
ちなみにドキュメントを見ると、それらしいフックイベントとして「WorktreeCreate」があります。ただ、これはClaude CodeがWorktree作成時に行うgit操作などを丸ごと置き換えるためのものです。今回のように「Worktreeの作成自体はClaude Codeのデフォルトに任せて、作成後にコマンドを実行したい」というケースでは、「SessionStart」を使うのが良さそうです。
最後に
Worktreeを使った開発を快適にするための設定を紹介しました。
もっと良い方法があるかもしれないので、ご存知の方はぜひコメントで教えてください!