CC逆引きリファレンス

初期化フックだけ実行して終了したい

12. CI/CD・自動化

コマンド / 機能

--init / --init-only

Setup フックの init マッチャーを起動

概要

--init はセッション開始時に Setup フックの init マッチャーを実行してから通常のセッションを続けます。--init-only は初期化フックの実行だけを行いすぐに終了します。--maintenance と対になる存在で、Setup フックは matcher に init / maintenance を指定して呼び分けられます。

設定例

# 初期化フックを実行してからセッションを開始
claude --init

# 初期化フックだけ実行してすぐ終了
claude --init-only

# settings.json で Setup フックを matcher ごとに定義
{
  "hooks": {
    "Setup": [
      { "matcher": "init", "hooks": [{ "type": "command", "command": ".claude/hooks/setup-env.sh" }] },
      { "matcher": "maintenance", "hooks": [{ "type": "command", "command": ".claude/hooks/cleanup.sh" }] }
    ]
  }
}
公式ドキュメントを見る

こんな時に使う

  • 新しい環境やコンテナ起動時に初期セットアップを自動化したい時
  • CI のジョブ開始前に依存関係をインストールしたい時
  • --maintenance と使い分けて定期処理と初回処理を分離したい時

使い方

  1. 1settings.json の hooks.Setup に matcher: "init" のフックを定義
  2. 2claude --init-only で初期化のみ実行して終了
  3. 3claude --init は初期化後に通常セッションへ続く

Tips

  • --maintenance は matcher: "maintenance" のフックを実行
  • コンテナのエントリポイントで --init-only を呼ぶと便利
  • 初期化とメンテナンスでスクリプトを分離すると管理しやすい