カテゴリー / インストール・ログイン・設定

Claude Code CLIの使い方|対話・-p・再開の基本と失敗時の確認

この記事の目次

Claude Code CLIの使い方は、3つの起動形態を押さえると整理できます。プロジェクトのフォルダで claude と打てば対話セッション、claude -p "指示" なら一度だけ処理して終了する非対話実行、claude --continue か claude --resume なら保存済み会話のセッション再開です。起動後は、行頭の / でコマンド、行頭の ! でシェルコマンドを使い、@ でファイルを参照します。この記事では、それぞれの公式どおりの書き方と、動かないときにどこを見るかを順に説明します。

インストールがまだならインストール手順を、デスクトップアプリやVS Codeを含めた入口の選び方は起動方法の記事を先に見てください。ここではターミナルのCLIに絞ります。

Claude Code CLIの使い方はどの起動形態から選ぶのか

公式のCLI referenceでは、起動の書き方が次のように定義されています。

書き方 動き 向く場面
claude 対話セッションを開始 調べながら進める作業
claude "query" 最初の指示を渡して対話を開始 最初の依頼が決まっているとき
claude -p "query" 処理して終了(非対話) スクリプト、CI、定型処理
cat file | claude -p "query" パイプで渡した内容を処理 ログや差分の要約
claude -c 現在のディレクトリで最新の会話を再開 直前の作業の続き
claude -r "<session>" "query" IDか名前で指定した会話を再開 複数の作業を行き来するとき

最初の起動は、作業したいプロジェクトのフォルダへ移動してから行います。

cd /path/to/your/project
claude

プロンプトが出たら、/help で使えるコマンドを一覧できます。Claude Codeのセッションはプロジェクトのディレクトリに紐づいて保存され、claude --continue は現在のディレクトリで最新のセッションを再開します。

対話セッションの中では何をどう入力するのか

対話セッションでは、記号によって入力形式が変わります。/ と ! はメッセージの先頭に置き、@ はファイルを参照したい位置に書きます(公式: Interactive mode)。

入力 意味
行頭の / コマンドやスキルを呼ぶ。/ の後に文字を打つと絞り込める
行頭の ! シェルモード。コマンドを直接実行し、出力を会話に加える
@ ファイルパスの補完を開き、ファイルやディレクトリを参照する

/ コマンドで覚えておく最小限

Claude Codeのコマンドはメッセージの先頭でだけ認識され、後ろに続く文字は引数として扱われます。文の途中に /clear と書いても実行されません。使えるコマンドはプランや環境によって異なるので、全体は / を打って表示されるコマンド一覧で確認します。日常的によく使うのは次のものです。

コマンド 公式の説明の要点
/init プロジェクト用の CLAUDE.md を生成する
/clear 空のコンテキストで新しい会話を始める(別名 /reset /new)
/compact [instructions] ここまでの会話を要約して空きを作る
/context コンテキストの使用状況を色付きのグリッドで表示する
/rewind 会話やコードを以前の地点に戻す(別名 /checkpoint /undo)
/diff Claudeの編集を含む作業ツリーの変更を確認する
/model モデルを切り替え、新しいセッションの既定として保存する
/status バージョン、モデル、アカウント、接続状態を表示する
/usage セッションのコストとプランの利用上限を表示する(/cost は別名)
/exit CLIを終了する(別名 /quit)

/rewind で Restore code を選ぶと、選んだ地点より後のファイル変更が元に戻ります。コードを今のまま残して会話だけ戻すなら Restore conversation を選びます。Bashコマンドで変更したファイルはrewindでは戻らないため、恒久的な履歴はGitなどのバージョン管理で残すよう公式のCheckpointingは案内しています。

なお /review は現在 /code-review の別名です(v2.1.223より前は別のコマンドでした)。各コマンドの説明は公式のCommandsにあります。CLAUDE.md の中身の書き方はCLAUDE.mdの書き方で扱っています。

! シェルモードの注意点

! npm test や ! git status のように書くと、Claudeを通さずにコマンドが実行され、コマンドと出力が会話のコンテキストに入ります。公式には、Claudeによる解釈や承認を必要としないと書かれています。

知っておきたい点が2つあります。1つは、出力が会話に入るとClaudeが自動で応答し、その応答には通常のプロンプトと同じコストがかかることです。出力だけを入れて応答させたくない場合は、settings.json の respondToBashCommands を false にします。もう1つは、サンドボックスを有効にしていても、シェルモードで打ったコマンドはサンドボックスの外で動くことです。公式は strict sandbox mode に該当するセッションだけを例外として挙げています。サンドボックスはClaudeが実行するコマンドに適用される仕組みだからです。

@ ファイル参照の挙動

@src/utils/auth.js のように書くと、ファイルの内容を会話に含められます。公式のCommon workflowsの記述では、Readツールの上限(既定で25,000トークン)に収まる場合に内容が含まれ、256KBを超えるテキストファイルは含まれません。ディレクトリを指定すると、中身ではなくファイルの一覧が渡されます。1つのメッセージで複数のファイルを参照でき、参照したファイルのディレクトリと親ディレクトリにある CLAUDE.md もコンテキストに加わります。

中断・改行・履歴のキー操作

操作 キー
実行中の処理を止める Esc(それまでの作業は保持される)
中断、または入力の消去 Ctrl+C(何も動いていなければ1回目で入力を消し、2回目で終了)
改行を入れる \ に続けて Enter(全端末)、または Ctrl+J(設定不要)
権限モードを切り替える Shift+Tab
過去の入力を検索する Ctrl+R
以前の地点に戻す 入力が空のときに Esc を2回で rewind メニュー

Claudeの作業中に Enter で送った文は、処理を中断せずキューに入り、順番が来たら送られます。途中で方向を変えたいときは、キューに積むより Esc で止めてから指示し直すほうが確実です。権限モードそれぞれの意味は権限モードの記事にまとめています。

非対話の -p はどう組み立てるのか

-p(--print)を付けると、claude を非対話で実行できます(公式: Run Claude Code programmatically)。ただし、すべてのオプションが -p と併用できるわけではなく、--bg などはエラーになります。

次の公式の例は --allowedTools に Bash・Read・Edit を並べています。Read と Edit を並べるとファイルの読み取りと編集を(ネットワークパスからの読み取りは除く)、Bash を並べるとシェルコマンドを、確認なしで許すことになり、Claudeが既存のファイルを書き換えても承認は求められません(auto mode で始まる実行では、Bash だけの指定は外され、コマンドごとに判定されます)。ファイルを変更させたくない要約や調査なら、公式の claude --bare -p "Summarize README.md" --allowedTools "Read" の例のように Read だけを渡し、Edit は並べません。シェルコマンドを広く許したくない場合は Bash(git diff *) のように前方一致で絞ります。他人のリポジトリで回す前には、下の「-p で見落としやすい安全面」も先に確認してください。

claude -p "Run the test suite and fix any failures" \
  --allowedTools "Bash,Read,Edit"

よく組み合わせるオプションは3つです。

  • --allowedTools: 指定したツールを確認なしで使わせる
  • --output-format: text(既定)、json、stream-json から出力形式を選ぶ
  • --continue / --resume: 前の -p 実行の会話を続ける

json を選ぶと結果に session_id が含まれるので、特定の会話を続けたいときは公式の例のように取り出して --resume に渡します。

session_id=$(claude -p "Start a review" --output-format json | jq -r '.session_id')
claude -p "Continue that review" --resume "$session_id"

--max-turns でエージェントのターン数を制限できますが、これは -p 専用で、既定では制限がありません。パイプで渡せる標準入力は10MBまでで、超えるとエラーで終了します。大きな内容はファイルに書き出し、プロンプトでパスを指定します。

-p で見落としやすい安全面

-p 実行では、フォルダの信頼確認とサーバーごとの承認ダイアログが出ません。公式には次の点が明記されています。

  • --bare を付けない -p は、一度も信頼していないフォルダでも、プロジェクトの .claude/settings.json にあるhooksを実行し、.mcp.json のサーバーに接続する。信頼確認のダイアログもサーバーごとの承認も出ない
  • 権限モードを何も指定しないと組み込みの開始モードで動き、それが auto になる場合もある。意図したモードを --permission-mode で明示する
  • dontAsk は、本来なら確認を求める呼び出しをすべて拒否するモードで、締めたCI向き

他人のリポジトリや取得したばかりのコードで -p を回す前には、この3点を確認してください。--bare はhooksやCLAUDE.mdなどの自動検出を省いて起動を速くする代わりにサブスクリプションのログインを使わず、ANTHROPIC_API_KEY が必要になる点も公式に書かれています。CIへの組み込みはGitHub Actions連携の記事で扱っています。

セッションの再開・クリア・圧縮はどう使い分けるのか

セッションは作業中に継続して保存され、終了した後や /clear の後でも戻れます(公式: Manage sessions)。セッションの再開方法は4つです。

入口 動き
claude --continue 現在のディレクトリで最新のセッションを開く
claude --resume セッションの選択画面を開く
claude --resume <name> 名前を付けたセッションを直接開く
/resume セッションの中から別のセッションへ切り替える

名前は起動時に claude -n "my-feature-work" のように付けるか、途中で /rename で変えられます。並行して複数の作業を持つなら、名前を付けておくと選択画面で迷いません。

Claude Codeの再開で戻るのは、ツールの呼び出しと結果を含む会話の全履歴と、使っていたモデル(例外あり)です。権限モードは、ターミナルから -p なしで claude --continue や claude --resume <name> などで再開した場合に、例外を除いて元のモードに戻ります。一方、--mcp-config、--settings、--plugin-dir、--add-dir などの起動フラグは引き継がれないため、再開時にもう一度渡します。また、前回プロセスが落ちたときに実行中だったツールは、再開しても再実行されません。

会話の中身を整理する操作は性質が違います。

  • /clear: 空のコンテキストで新しい会話を始める。前の会話は保存されており /resume で戻れる
  • /compact: 同じ会話を続けたまま、履歴を要約に置き換えて空きを作る。要約の焦点を指示として渡せる
  • /context: いま何がコンテキストを占めているかを見る

Claude Codeで話題が変わるなら /clear、同じ作業を続けたいが会話が長くなったなら /compact、判断の前に /context で状況を見る、という順で考えると選べます。自動圧縮との違いはコンテキストウィンドウの記事で詳しく扱っています。

会話の記録は既定で ~/.claude/projects/<project>/<session-id>.jsonl に保存され、30日で整理されます(settings.json の cleanupPeriodDays で変更可能)。

動かない・再開できないときはどこを確認するのか

症状ごとに、公式のCLI referenceとRun Claude Code programmaticallyにあるコマンドで切り分けられます。

症状 確認すること
claude 自体が起動しない、設定が効かない claude doctor でインストール状態と設定ファイルの検証エラーを見る(セッションを開かない読み取り専用の診断)
ログインできているか分からない claude auth status を実行する。ログイン済みなら終了コード0、未ログインなら1
バージョンが古い疑いがある claude -v で確認し、claude update で更新する
サブコマンドが動かない 打ち間違いなら近い候補が表示されて終了する(例: claude udpate に対して Did you mean claude update?)
--continue で前の会話が出ない 起動したディレクトリが同じか確認する。--continue は claude -p やAgent SDKで作った会話を飛ばすため、それらは claude -p --continue か --resume で開く
-p のスクリプトが失敗する 終了コードを見る。成功なら0、失敗なら0以外。不正なフラグは実行前にstderrへ、認証切れのような実行中の失敗はstdoutの結果として出る
ヘルプに載っていないフラグがある claude --help はすべてのフラグを載せていないため、載っていないことは使えない理由にならない

-p の失敗がstdoutに出る点は、スクリプトで出力をそのまま次の処理に流している場合に見落としがちです。終了コードで分岐させてから出力を使うと、認証切れの文言を結果として処理してしまう事故を防げます。

ここで解決しない場合、エラーメッセージ別の対処はエラーのトラブルシューティング、ログイン関連はログインできないときの確認手順を見てください。

公式の記述が変わりうる点

この記事のコマンドとオプションは、2026年10月19日に公式ドキュメント(CLI reference、Interactive mode、Manage sessions、Run Claude Code programmatically、Commands、Common workflows、Quickstart)と照合した記述に基づいています。挙動が記事と違うときは、claude -v で手元のバージョンを確かめたうえで、公式のCLI referenceを参照してください。

まとめ

Claude Code CLIの使い方は、起動の3形態(対話の claude、非対話の claude -p、再開の --continue と --resume)と、対話中の行頭の / と !、ファイル参照の @ の役割を押さえれば日常の操作はまかなえます。そのうえで、-p は信頼確認なしでプロジェクトのhooksを動かすこと、再開しても起動フラグは戻らないこと、失敗は終了コードで判定することの3点を覚えておくと、つまずいたときの切り分けが速くなります。