はじめに

Claude Codeには主に2つの操作方法があります:

  • 対話モードclaudeを実行してREPLセッションを開始
  • ワンショットモードclaude -p "クエリ"で素早くコマンドを実行
# 対話モードを開始
claude

# 初期クエリを指定して開始
claude "このプロジェクトを説明して"

# 単一のコマンドを実行して終了
claude -p "この関数は何をしているの?"

# パイプされたコンテンツを処理
cat logs.txt | claude -p "これらのエラーを分析して"

CLIコマンド

コマンド説明
claude対話型REPLを開始claude
claude "クエリ"初期プロンプトでREPLを開始claude "このプロジェクトを説明して"
claude -p "クエリ"一回限りのクエリを実行して終了claude -p "この関数を説明して"
cat file | claude -p "クエリ"パイプされたコンテンツを処理cat logs.txt | claude -p "説明して"
claude -c最新の会話を継続claude -c
claude -c -p "クエリ"プリントモードで継続claude -c -p "型エラーをチェックして"
claude -r "<session-id>" "クエリ"IDでセッションを再開claude -r "abc123" "このPRを完了して"
claude config設定を構成claude config set --global theme dark
claude update最新バージョンに更新claude update
claude mcpModel Context Protocolサーバーを構成チュートリアルのMCPセクションを参照

CLIフラグ

これらのコマンドラインフラグでClaude Codeの動作をカスタマイズできます:

フラグ説明
--print, -p対話モードなしでレスポンスを表示(下記の詳細なプリントモードのドキュメントを参照)claude -p "クエリ"
--output-formatプリントモードの出力形式を指定(オプション:textjsonstream-jsonclaude -p "クエリ" --output-format json
--verbose詳細なログを有効化、ターンごとの完全な出力を表示(プリントモードと対話モードの両方でデバッグに役立つ)claude --verbose
--max-turns非対話モードでのエージェントターン数を制限claude -p --max-turns 3 "クエリ"
--permission-prompt-tool非対話モードで権限プロンプトを処理するMCPツールを指定claude -p --permission-prompt-tool mcp_auth_tool "クエリ"
--resumeIDを指定して、または対話モードで選択してセッションを再開claude --resume abc123 "クエリ"
--continue現在のディレクトリで最新の会話を読み込むclaude --continue
--dangerously-skip-permissions権限プロンプトをスキップ(注意して使用)claude --dangerously-skip-permissions

--output-format jsonフラグは、Claudeの応答をプログラムで解析できるため、スクリプト作成や自動化に特に便利です。

プリントモードの詳細

-p(または--print)フラグは、Claude Codeで非対話モードを有効にし、プログラムでの使用のために入出力をパイプできるようにします。このフラグは様々なユースケースに対応する複数の出力形式をサポートしています。

基本的な使用方法

# 基本的なプリントモード - 最終応答テキストのみを出力
claude -p "プリントフラグの使用方法を説明して"

# 標準入力からの入力
echo "2+2は?" | claude -p

# プロンプトを指定してセッションをプリントモードで再開
claude -p --resume <session-id> "このプロンプトでセッションを再開"

出力形式

--output-formatオプション(-pと共に使用)は3つの形式をサポートしています:

1. テキスト出力(デフォルト)
claude -p "出力形式について説明して"
# 応答テキストのみを出力
2. JSON出力
claude -p --output-format json "JSON出力の使用方法を説明して"

構造化されたJSONオブジェクトを出力:

{
  "cost_usd": 0.003,
  "duration_ms": 1234,
  "duration_api_ms": 800,
  "result": "応答テキストがここに...",
  "session_id": "abc123"
}
3. ストリーミングJSON出力
claude -p --output-format stream-json "Pythonスクリプトを作成して"

ストリーミングモードでは、受信時に各メッセージが個別のJSONオブジェクトとして出力されます:

  • ツール使用メッセージ
  • アシスタントテキストメッセージ
  • ツール結果メッセージ
  • 統計情報を含む最終システムメッセージ

プリントモードでの詳細出力

-p--verboseを使用する場合は、--output-format jsonまたは--output-format stream-jsonと組み合わせる必要があります:

claude -p --verbose --output-format json "このコードをデバッグして"

詳細JSONモードでは、出力に完全な会話のトランスクリプトが含まれます:

[
  {
    "role": "user",
    "content": "このコードをデバッグして"
  },
  {
    "role": "assistant",
    "content": "そのコードのデバッグを手伝います..."
  },
  {
    "role": "system",
    "cost_usd": 0.003,
    "duration_ms": 1234,
    "duration_api_ms": 800,
    "result": "応答テキストがここに...",
    "session_id": "abc123"
  }
]

プリントモードの追加オプション

最大ターン数
claude -p --max-turns 3 "このコードを修正して" < file.py

非対話モードでのエージェントターン数を制限します。

権限プロンプトツール
claude -p --permission-prompt-tool mcp_auth_tool "ファイルを作成して"

非対話モードで権限プロンプトを処理するMCPツールを指定します。

セッションの再開
claude -p --resume abc123 "このプロンプトでセッションを再開"

プリントモードで新しいプロンプトを使用して特定のセッションをIDで再開します。

セッションの継続

claude -c -p "次のタスクを続けて"

このプロジェクトで最後の会話を継続します。

スラッシュコマンド

対話セッション中にClaudeの動作を制御します:

コマンド目的
/bugバグを報告(会話をAnthropicに送信)
/clear会話履歴をクリア
/compact [instructions]オプションの焦点指示で会話をコンパクトに
/config設定の表示/変更
/costトークン使用統計を表示
/doctorClaude Codeのインストール状態を確認
/help使用方法のヘルプを表示
/initCLAUDE.mdガイドでプロジェクトを初期化
/loginAnthropicアカウントを切り替え
/logoutAnthropicアカウントからサインアウト
/memoryCLAUDE.mdメモリファイルを編集
/pr_commentsプルリクエストのコメントを表示
/reviewコードレビューをリクエスト
/statusアカウントとシステムのステータスを表示
/terminal-setup改行用のShift+Enterキーバインディングをインストール(iTerm2とVSCodeのみ)
/vim挿入モードとコマンドモードを切り替えるvimモードを開始

特別なショートカット

#でのクイックメモリ

入力を#で始めることで、即座にメモリを追加できます:

# 常に説明的な変数名を使用する

このメモリを保存するメモリファイルを選択するよう促されます。

ターミナルでの改行

複数行のコマンドを入力する方法:

  • クイックエスケープ\に続いてEnterを押す
  • キーボードショートカット:Option+Enter(または設定されている場合はShift+Enter)

Option+Enterをターミナルで設定する方法:

Mac Terminal.appの場合:

  1. 設定 → プロファイル → キーボードを開く
  2. “Use Option as Meta Key”をチェック

iTerm2とVSCodeターミナルの場合:

  1. 設定 → プロファイル → キーを開く
  2. 一般設定で、左/右Optionキーを”Esc+“に設定

iTerm2とVSCodeユーザーへのヒント:Claude Code内で/terminal-setupを実行すると、より直感的な代替手段としてShift+Enterを自動的に設定できます。

設定の詳細については、設定の中のターミナルセットアップを参照してください。

Vimモード

Claude Codeは、/vimまたは/configで有効にできるVimキーバインディングのサブセットをサポートしています。

サポートされているサブセットには以下が含まれます:

  • モード切り替え:Esc(NORMALモードへ)、i/Ia/Ao/O(INSERTモードへ)
  • ナビゲーション:h/j/k/lw/e/b0/$/^gg/G
  • 編集:xdw/de/db/dd/Dcw/ce/cb/cc/C.(繰り返し)