claude --help を眺めていたら思ったより多くのオプションがあったので、用途別に整理した。それぞれ「どこで使うか」も添える。
セッション管理
会話の継続・再開まわり。地味によく使う。
| オプション | 説明 |
|---|---|
-c, --continue |
カレントディレクトリの直近の会話を継続する |
-r, --resume [id] |
セッションIDを指定して再開。省略するとインタラクティブに選べる |
--fork-session |
--continue / --resume と組み合わせて、再開時に新セッションIDを割り当てる |
--from-pr [PR番号/URL] |
PRに紐づいたセッションを再開する |
--session-id <uuid> |
使用するセッションIDを明示指定 |
-n, --name <名前> |
セッションに名前を付ける(/resume 一覧やターミナルタイトルに表示) |
--no-session-persistence |
セッションをディスクに保存しない(--print 専用) |
ユースケース
- 昨日の作業を朝イチで再開したい →
claude -c(カレントディレクトリの直近会話を即続行) - 複数の作業を並行していて特定の会話に戻りたい →
claude -r(一覧が出るので名前や内容で選べる) - 「ここから別ルートを試したい、でも元の会話は残したい」 →
--fork-sessionを付けて再開。元セッションが上書きされない - PR レビューの文脈でコードを修正したい →
--from-pr <PR番号>でその PR のセッションに戻れる - CI で使い捨ての会話を流したい →
--no-session-persistenceでディスク汚染なし
出力・入力フォーマット
CI パイプラインや他のツールとつなぐときに使う。
| オプション | 説明 |
|---|---|
-p, --print |
応答を標準出力に吐いて終了。パイプ向け |
--output-format <形式> |
text(デフォルト)/ json(単一結果)/ stream-json(リアルタイムストリーム) |
--input-format <形式> |
text(デフォルト)/ stream-json |
--include-partial-messages |
ストリーム中の部分的なメッセージも出力(--print + stream-json のみ) |
--include-hook-events |
フックのライフサイクルイベントも出力ストリームに含める |
--replay-user-messages |
stdin から受け取ったユーザーメッセージを stdout に再出力 |
--json-schema <schema> |
出力を JSON Schema でバリデーションする |
ユースケース
- シェルスクリプトから結果だけ取り出したい →
-pでインタラクティブUIをスキップ - 出力を後続の
jqで加工したい →--output-format jsonで構造化されたJSONが取れる - チャットUIやダッシュボードにリアルタイムで流したい →
--output-format stream-jsonでトークンが届いた順に出力される - 出力が特定のスキーマに従うことを保証したい →
--json-schemaで型チェックをかける
# 例:レビュー結果を JSON で取り出して jq で整形
claude -p --output-format json "このコードをレビューして" < main.go | jq '.result'
モデル・思考量
| オプション | 説明 |
|---|---|
--model <モデル> |
使用モデルを指定。エイリアス(sonnet, opus)か完全名(claude-sonnet-4-6)で指定 |
--effort <レベル> |
思考量を low / medium / high / max で指定 |
--fallback-model <モデル> |
デフォルトモデルが過負荷のとき自動でフォールバック(--print のみ) |
--max-budget-usd <金額> |
API 呼び出しの上限ドル額(--print のみ) |
ユースケース
- ちょっとした整形タスクをコスト低く流したい →
--model haiku --effort low - 複雑なリファクタリングや設計相談は考えてほしい →
--model opus --effort max - 夜間バッチで「過負荷なら別モデルで続けて」としたい →
--fallback-model sonnet - スクリプトが暴走して予期せず大量トークンを消費するのを防ぎたい →
--max-budget-usd 0.50で上限設定
ツール制御・パーミッション
| オプション | 説明 |
|---|---|
--tools <ツール名...> |
使用できるツールを明示指定。"" で全無効、default で全許可 |
--allowed-tools <ツール名...> |
許可するツールのリスト |
--disallowed-tools <ツール名...> |
拒否するツールのリスト |
--permission-mode <モード> |
default / acceptEdits / auto / bypassPermissions / dontAsk / plan |
--dangerously-skip-permissions |
パーミッションチェックを全バイパス。サンドボックス限定推奨 |
--allow-dangerously-skip-permissions |
bypassPermissions モードをオプションとして有効化(デフォルトにはしない) |
--add-dir <ディレクトリ...> |
ツールがアクセスできるディレクトリを追加 |
ユースケース
- 「読むだけ、ファイルは触らせたくない」 →
--tools "Read,Grep"で Bash と Edit を除外 - CI で全自動実行させたい →
--permission-mode auto(確認ダイアログなし) - 本番環境に繋がったサンドボックスで自動実行 →
--dangerously-skip-permissions(ネットワーク分離前提) - まず計画だけ出してもらってレビューしたい →
--permission-mode plan(編集を実行しない) - リポジトリ外の共有ライブラリも読ませたい →
--add-dir /path/to/shared-lib
--permission-mode の選択肢は重要なので整理しておく:
| モード | 動作 |
|---|---|
default |
通常の確認あり |
acceptEdits |
ファイル編集は自動許可、Bash は確認 |
auto |
ほぼ全自動 |
dontAsk |
確認を求めない |
bypassPermissions |
チェックを完全スキップ |
plan |
実行せず計画のみ提示 |
エージェント・プロンプト
| オプション | 説明 |
|---|---|
--agent <エージェント> |
使用するエージェントを指定(設定の agent を上書き) |
--agents <JSON> |
カスタムエージェントを JSON で定義 |
--system-prompt <テキスト> |
セッションのシステムプロンプトを指定 |
--append-system-prompt <テキスト> |
デフォルトのシステムプロンプトに追記 |
--disable-slash-commands |
スキル(スラッシュコマンド)を無効化 |
ユースケース
- プロジェクトごとに役割を固定したい →
--system-prompt "あなたはGoの専門家です"をシェルエイリアスに仕込む - デフォルトの振る舞いは維持しつつ制約を追加したい →
--append-system-prompt "日本語で答えてください"で上書きではなく追記 - 設定ファイルなしで即席レビュアーを作りたい →
--agents '{"reviewer": {"description": "レビュアー", "prompt": "厳しくレビューしてください"}}' - スキルを無効にしてシンプルに使いたい →
--disable-slash-commands
# エイリアス例:Go 専用セッション
alias claude-go='claude --append-system-prompt "Go のベストプラクティスに従って答えてください。型安全性を重視してください。"'
MCP(Model Context Protocol)
| オプション | 説明 |
|---|---|
--mcp-config <ファイル/JSON...> |
MCP サーバーを JSON ファイルまたは文字列で読み込む |
--strict-mcp-config |
--mcp-config で指定したサーバーのみ使用し、他の MCP 設定を無視 |
ユースケース
- 特定のプロジェクトだけ Notion にアクセスさせたい →
--mcp-config ./notion-mcp.jsonでセッション限定ロード - CI など環境依存の MCP 設定を使いたい → JSON 文字列を直接渡す(設定ファイル不要)
- 本番と開発で MCP を切り替えたい →
--strict-mcp-configでユーザー設定の MCP を無視し、渡した設定だけ使う
IDE・ワークツリー
| オプション | 説明 |
|---|---|
--ide |
起動時に有効な IDE に自動接続 |
-w, --worktree [名前] |
新しい git worktree を作成してセッションを実行 |
--tmux |
worktree 用の tmux セッションを作成(--worktree と組み合わせる) |
--chrome |
Chrome 統合を有効化 |
--no-chrome |
Chrome 統合を無効化 |
ユースケース
- 現在の作業を汚さずに実験的なリファクタリングを試したい →
-w experimentで隔離したワークツリーを作成 - ターミナルを分割して IDE と並行で作業したい →
--tmuxでペインを自動作成 - フロントエンド開発で DOM にアクセスさせたい →
--chromeで Chrome と連携
# 例:feature/new-api という worktree を tmux で開く
claude -w feature/new-api --tmux
デバッグ・設定
| オプション | 説明 |
|---|---|
-d, --debug [filter] |
デバッグモード。カテゴリ絞り込み可(例: "api,hooks" や "!file") |
--debug-file <パス> |
デバッグログをファイルに書き出す |
--verbose |
設定の verbose を上書き |
--settings <ファイル/JSON> |
追加設定を JSON ファイルまたは文字列で読み込む |
--setting-sources <ソース> |
ロードする設定ソースを指定(user, project, local) |
--plugin-dir <パス> |
このセッション限定でプラグインをディレクトリから読み込む |
--betas <ベータ機能...> |
APIリクエストにベータヘッダを付与(APIキーユーザーのみ) |
--file <spec...> |
起動時にファイルリソースをダウンロード。形式: file_id:相対パス |
ユースケース
- フックが動かない原因を調べたい →
-d hooksでフック関連ログだけ絞って表示 - API 通信のトラブルシュートをしたい →
-d api --debug-file /tmp/claude.logでファイルに保存して後から確認 - 本番とは別の設定で試したい →
--settings ./dev-settings.jsonでファイル指定 - ユーザー設定を無視してプロジェクト設定だけで動かしたい →
--setting-sources project,local
--bare モードとは
最小限モード。フック・LSP・プラグイン同期・自動メモリ・バックグラウンド処理・キーチェーン読み込み・CLAUDE.md の自動探索をすべてスキップする。環境変数 CLAUDE_CODE_SIMPLE=1 が立つ。
ユースケース
- Docker コンテナで使い捨てに実行したい →
--bareで副作用ゼロの最小構成 - CI パイプラインに埋め込みたい →
--bare+ANTHROPIC_API_KEY環境変数だけで動く - 起動が遅い・重い感じがする →
--bareでプラグイン同期などを全スキップして高速化 - 明示的なコンテキストだけ与えたい →
--bare --system-prompt-file ./context.md --add-dir ./src
# CI での典型的な使い方
ANTHROPIC_API_KEY=$SECRET claude --bare -p \
--output-format json \
--max-budget-usd 0.10 \
"このPRの変更点を要約してください"
サブコマンド
オプションではないがまとめておく。
| コマンド | 説明 |
|---|---|
agents |
設定済みのエージェント一覧 |
auth |
認証管理 |
auto-mode |
auto モード分類器の設定を確認 |
doctor |
自動アップデーターのヘルスチェック |
install [target] |
ネイティブビルドのインストール(stable / latest / バージョン指定) |
mcp |
MCP サーバーの設定・管理 |
plugin / plugins |
プラグイン管理 |
setup-token |
長期認証トークンのセットアップ(Claude サブスクリプション必要) |
update / upgrade |
アップデート確認・インストール |
こうして整理すると、実用上の肝は セッション管理・パイプライン向け出力制御・パーミッションモード の3系統だとわかる。特に --permission-mode・--bare・--max-budget-usd はスクリプト組み込みで効いてくるオプションで、これを知っているかどうかで自動化の設計が変わってくる。