# CLI リファレンス
## 概観
Claude Code CLI(Command Line Interface)は Claude Code を操作する主要な手段である。クエリの実行、セッション管理、モデル設定、開発ワークフローへの組み込みを行う強力なオプション群を備えている。
## アーキテクチャ
```mermaid
graph TD
A["User Terminal"] -->|"claude [options] [query]"| B["Claude Code CLI"]
B -->|Interactive| C["REPL Mode"]
B -->|"--print"| D["Print Mode (SDK)"]
B -->|"--resume"| E["Session Resume"]
C -->|Conversation| F["Claude API"]
D -->|Single Query| F
E -->|Load Context| F
F -->|Response| G["Output"]
G -->|text/json/stream-json| H["Terminal/Pipe"]
```
## ランタイムとパッケージング
**v2.1.113** 以降、Claude Code CLI は npm のオプション依存を介して **プラットフォーム別のネイティブバイナリ**(macOS、Linux、Windows)を起動する。バイナリはインストール時に OS とアーキテクチャに合わせて選択される — 旧来のバンドル JavaScript ランタイムは macOS / Linux ではもはやデフォルトではない。
**ユーザー側のインストール手順は変わらない**: `npm install -g @anthropic-ai/claude-code` がそのまま動作し、引き続き推奨経路である。裏側で npm がプラットフォームに合った正しいネイティブバイナリを取得する。
**ダウンロードホスト**(v2.1.116+): ネイティブバイナリ成果物は `https://downloads.claude.ai/claude-code-releases` から配信される。
> **企業ネットワーク/プロキシ環境**: ネットワークが明示的な許可リストを必要とする場合、プロキシのエグレスルールに `downloads.claude.ai`(および `https://downloads.claude.ai/claude-code-releases`)を追加すること。以前 `storage.googleapis.com` または npm レジストリのみを許可していた環境は更新が必要で、未対応のままだと `claude update` や初回インストールが失敗する。
旧来の JavaScript バンドルは Windows 用および固定利用の環境向けに引き続き提供される。これらのインストールでは Glob と Grep が引き続きファーストクラスツールとして同梱される([ツール](#ツールと権限の管理) 節の Glob/Grep 注記を参照)。
## CLI コマンド
| コマンド | 説明 | 例 |
|---------|------|-----|
| `claude` | 対話型 REPL を起動 | `claude` |
| `claude "query"` | 初期プロンプト付きで REPL を起動 | `claude "explain this project"` |
| `claude -p "query"` | プリントモード - クエリ実行後に終了 | `claude -p "explain this function"` |
| `cat file \| claude -p "query"` | パイプ入力を処理 | `cat logs.txt \| claude -p "explain"` |
| `claude -c` | 直近の会話を継続 | `claude -c` |
| `claude -c -p "query"` | プリントモードで継続 | `claude -c -p "check for type errors"` |
| `claude -r "" "query"` | ID または名前でセッション再開 | `claude -r "auth-refactor" "finish this PR"` |
| `claude update` | 最新版に更新 | `claude update` |
| `/doctor`(スラッシュコマンド) | インストール、設定、プラグインの健全性を診断する。v2.1.116 以降は **Claude が応答中でも開ける** ようになり、ステータスアイコンをインライン表示し、`f` キーで検出された問題を自動修正する | REPL 内で `/doctor` を実行 |
| `claude mcp` | MCP サーバーを設定 | [MCP のドキュメント](../05-mcp/) を参照 |
| `claude mcp serve` | Claude Code を MCP サーバーとして起動 | `claude mcp serve` |
| `claude agents` | 設定済みのサブエージェントを一覧表示 | `claude agents` |
| `claude auto-mode defaults` | 自動モードのデフォルトルールを JSON で出力 | `claude auto-mode defaults` |
| `claude remote-control` | リモートコントロールサーバーを起動 | `claude remote-control` |
| `claude plugin` | プラグインを管理(インストール・有効化・無効化) | `claude plugin install my-plugin` |
| `claude plugin tag ` | バージョン検証付きでプラグインのリリース git タグを作成(v2.1.118+) | `claude plugin tag v0.3.0` |
| `claude install [version]` | 指定したネイティブバイナリのバージョンをインストール。`stable`、`latest`、明示的なバージョン文字列を受け付ける | `claude install 2.1.119` |
| `claude auth login` | ログイン(`--email`、`--sso` をサポート) | `claude auth login --email user@example.com` |
| `claude auth logout` | 現在のアカウントからログアウト | `claude auth logout` |
| `claude auth status` | 認証状態を確認(ログイン中なら exit 0、未ログインなら 1) | `claude auth status` |
## 主要フラグ
| フラグ | 説明 | 例 |
|------|------|-----|
| `-p, --print` | 対話モードを使わず応答を出力 | `claude -p "query"` |
| `-c, --continue` | 直近の会話を読み込む | `claude --continue` |
| `-r, --resume` | ID または名前で特定セッションを再開 | `claude --resume auth-refactor` |
| `-v, --version` | バージョン番号を出力 | `claude -v` |
| `-w, --worktree` | 隔離された git ワークツリーで起動 | `claude -w` |
| `-n, --name` | セッションの表示名 | `claude -n "auth-refactor"` |
| `--from-pr ` | プル/マージリクエストに紐づくセッションを再開する。v2.1.119 以降は GitHub(クラウド + Enterprise)、GitLab MR、Bitbucket PR の URL を受け付ける(以前は GitHub.com のみ) | `claude --from-pr 42` または `claude --from-pr https://gitlab.example.com/org/repo/-/merge_requests/17` |
| `--remote "task"` | claude.ai 上に web セッションを作成 | `claude --remote "implement API"` |
| `--remote-control, --rc` | リモートコントロール付きの対話セッション | `claude --rc` |
| `--teleport` | web セッションをローカルで再開 | `claude --teleport` |
| `--teammate-mode` | エージェントチームの表示モード | `claude --teammate-mode tmux` |
| `--bare` | 最小モード(フック、スキル、プラグイン、MCP、自動メモリ、CLAUDE.md をスキップ) | `claude --bare` |
| `--enable-auto-mode` | 自動権限モードを解禁(Opus 4.7 の Max 加入者には不要) | `claude --enable-auto-mode` |
| `--channels` | MCP チャンネルプラグインを購読 | `claude --channels discord,telegram` |
| `--chrome` / `--no-chrome` | Chrome ブラウザ統合を有効化/無効化 | `claude --chrome` |
| `--effort` | 思考労力レベルを設定 | `claude --effort high` |
| `--init` / `--init-only` | 初期化フックを実行 | `claude --init` |
| `--maintenance` | メンテナンスフックを実行して終了 | `claude --maintenance` |
| `--disable-slash-commands` | すべてのスキルとスラッシュコマンドを無効化 | `claude --disable-slash-commands` |
| `--no-session-persistence` | セッション保存を無効化(プリントモード) | `claude -p --no-session-persistence "query"` |
| `--exclude-dynamic-system-prompt-sections` | プロンプトキャッシュヒット率向上のため、システムプロンプトから動的セクションを除外 | `claude -p --exclude-dynamic-system-prompt-sections "query"` |
### 対話モードとプリントモード
```mermaid
graph LR
A["claude"] -->|Default| B["Interactive REPL"]
A -->|"-p flag"| C["Print Mode"]
B -->|Features| D["Multi-turn conversation
Tab completion
History
Slash commands"]
C -->|Features| E["Single query
Scriptable
Pipeable
JSON output"]
```
**対話モード**(デフォルト):
```bash
# 対話セッションを開始
claude
# 初期プロンプト付きで開始
claude "explain the authentication flow"
```
**プリントモード**(非対話):
```bash
# 単一クエリ実行後に終了
claude -p "what does this function do?"
# ファイル内容を処理
cat error.log | claude -p "explain this error"
# 他のツールとチェーン
claude -p "list todos" | grep "URGENT"
```
## モデルと設定
| フラグ | 説明 | 例 |
|------|------|-----|
| `--model` | モデルを設定(sonnet、opus、haiku、または完全名) | `claude --model opus` |
| `--fallback-model` | 過負荷時の自動フォールバックモデル | `claude -p --fallback-model sonnet "query"` |
| `--agent` | セッションに使うエージェントを指定 | `claude --agent my-custom-agent` |
| `--agents` | JSON でカスタムサブエージェントを定義 | [Agents の設定](#agents-の設定) を参照 |
| `--effort` | 労力レベルを設定(low、medium、high、xhigh、max) | `claude --effort xhigh` |
### モデル選択の例
```bash
# 複雑なタスクには Opus 4.7
claude --model opus "design a caching strategy"
# 速いタスクには Haiku 4.5
claude --model haiku -p "format this JSON"
# モデル名のフルネーム指定
claude --model claude-sonnet-4-6-20250929 "review this code"
# 信頼性のためフォールバック付き
claude -p --model opus --fallback-model sonnet "analyze architecture"
# opusplan(Opus が計画、Sonnet が実装)
claude --model opusplan "design and implement the caching layer"
```
## システムプロンプトのカスタマイズ
| フラグ | 説明 | 例 |
|------|------|-----|
| `--system-prompt` | デフォルトプロンプト全体を置き換える | `claude --system-prompt "You are a Python expert"` |
| `--system-prompt-file` | ファイルからプロンプトを読み込む(プリントモード) | `claude -p --system-prompt-file ./prompt.txt "query"` |
| `--append-system-prompt` | デフォルトプロンプトに追記 | `claude --append-system-prompt "Always use TypeScript"` |
### システムプロンプトの例
```bash
# 完全カスタムなペルソナ
claude --system-prompt "You are a senior security engineer. Focus on vulnerabilities."
# 特定の指示を追加
claude --append-system-prompt "Always include unit tests with code examples"
# 複雑なプロンプトをファイルから読み込み
claude -p --system-prompt-file ./prompts/code-reviewer.txt "review main.py"
```
### システムプロンプトフラグの比較
| フラグ | 挙動 | 対話 | プリント |
|------|-----|------|---------|
| `--system-prompt` | デフォルトのシステムプロンプト全体を置き換える | ✅ | ✅ |
| `--system-prompt-file` | ファイルのプロンプトに置き換える | ❌ | ✅ |
| `--append-system-prompt` | デフォルトに追記する | ✅ | ✅ |
**`--system-prompt-file` はプリントモードでのみ使用する。対話モードでは `--system-prompt` または `--append-system-prompt` を使うこと。**
## ツールと権限の管理
| フラグ | 説明 | 例 |
|------|------|-----|
| `--tools` | 利用可能な組み込みツールを制限 | `claude -p --tools "Bash,Edit,Read" "query"` |
| `--allowedTools` | 確認なしで実行できるツール | `"Bash(git log:*)" "Read"` |
| `--disallowedTools` | コンテキストから除外するツール | `"Bash(rm:*)" "Edit"` |
| `--dangerously-skip-permissions` | 全ての権限プロンプトをスキップ | `claude --dangerously-skip-permissions` |
| `--permission-mode` | 指定した権限モードで開始 | `claude --permission-mode auto` |
| `--permission-prompt-tool` | 権限処理用の MCP ツール | `claude -p --permission-prompt-tool mcp_auth "query"` |
| `--enable-auto-mode` | 自動権限モードを解禁 | `claude --enable-auto-mode` |
> **Glob / Grep 注記(v2.1.113+)**: ネイティブな macOS/Linux ビルドでは、`Glob` と `Grep` は独立したファーストクラスツールではなく、Bash ツール経由で呼び出される組み込みの `bfs` および `ugrep` バイナリとして提供される。Windows 版および npm バンドル(JS)版では引き続きスタンドアロンツールとして公開される。サブエージェントの `allowedTools` / `disallowedTools` リストでは、バックエンド側の置換は透過的なため、どのプラットフォームでも設定では引き続き `Glob` / `Grep` を参照すればよい。
> **PowerShell の自動承認(v2.1.119)**: PowerShell ツールのコマンドは、Bash コマンドとまったく同じ方式で権限モードによる自動承認が可能になった。`Bash(...)` ルールで使うのと同じマッチャ構文で PowerShell の権限を絞り込める — 例: `PowerShell(Get-ChildItem:*)`。
### 権限の例
```bash
# コードレビュー用の読み取り専用モード
claude --permission-mode plan "review this codebase"
# 安全なツールのみに制限
claude --tools "Read,Grep,Glob" -p "find all TODO comments"
# 特定の git コマンドを確認なしで許可
claude --allowedTools "Bash(git status:*)" "Bash(git log:*)"
# 危険な操作をブロック
claude --disallowedTools "Bash(rm -rf:*)" "Bash(git push --force:*)"
```
## 出力とフォーマット
| フラグ | 説明 | オプション | 例 |
|------|------|-----------|-----|
| `--output-format` | 出力フォーマット指定(プリントモード) | `text`、`json`、`stream-json` | `claude -p --output-format json "query"` |
| `--input-format` | 入力フォーマット指定(プリントモード) | `text`、`stream-json` | `claude -p --input-format stream-json` |
| `--verbose` | 詳細ログを有効化 | | `claude --verbose` |
| `--include-partial-messages` | ストリーミングイベントを含める | `stream-json` が必要 | `claude -p --output-format stream-json --include-partial-messages "query"` |
| `--json-schema` | スキーマに沿って検証された JSON を取得 | | `claude -p --json-schema '{"type":"object"}' "query"` |
| `--max-budget-usd` | プリントモードでの最大支出額 | | `claude -p --max-budget-usd 5.00 "query"` |
### 出力フォーマットの例
```bash
# プレーンテキスト(デフォルト)
claude -p "explain this code"
# プログラムから扱うための JSON
claude -p --output-format json "list all functions in main.py"
# リアルタイム処理向けのストリーミング JSON
claude -p --output-format stream-json "generate a long report"
# スキーマ検証付きの構造化出力
claude -p --json-schema '{"type":"object","properties":{"bugs":{"type":"array"}}}' \
"find bugs in this code and return as JSON"
```
## ワークスペースとディレクトリ
| フラグ | 説明 | 例 |
|------|------|-----|
| `--add-dir` | 追加の作業ディレクトリを指定 | `claude --add-dir ../apps ../lib` |
| `--setting-sources` | カンマ区切りの設定ソース | `claude --setting-sources user,project` |
> **`/config` の永続化(v2.1.119)**: `/config` コマンドで対話的に行った変更は `~/.claude/settings.json` に書き込まれ、通常の優先順位チェーン(policy → local → project → user)に組み込まれるようになった。v2.1.119 以前は一部の `/config` 変更がセッション限定だった。完全な優先順位については [メモリと設定](../02-memory/README.md) を参照。
| `--settings` | ファイルまたは JSON から設定を読み込む | `claude --settings ./settings.json` |
| `--plugin-dir` | ディレクトリからプラグインを読み込む(複数指定可) | `claude --plugin-dir ./my-plugin` |
### 複数ディレクトリの例
```bash
# 複数のプロジェクトディレクトリを横断作業
claude --add-dir ../frontend ../backend ../shared "find all API endpoints"
# カスタム設定の読み込み
claude --settings '{"model":"opus","verbose":true}' "complex task"
```
## MCP の設定
| フラグ | 説明 | 例 |
|------|------|-----|
| `--mcp-config` | JSON から MCP サーバーを読み込む | `claude --mcp-config ./mcp.json` |
| `--strict-mcp-config` | 指定した MCP 設定のみを使う | `claude --strict-mcp-config --mcp-config ./mcp.json` |
| `--channels` | MCP チャンネルプラグインを購読 | `claude --channels discord,telegram` |
### MCP の例
```bash
# GitHub MCP サーバーの読み込み
claude --mcp-config ./github-mcp.json "list open PRs"
# 厳密モード - 指定したサーバーのみ
claude --strict-mcp-config --mcp-config ./production-mcp.json "deploy to staging"
```
## セッション管理
| フラグ | 説明 | 例 |
|------|------|-----|
| `--session-id` | 特定セッション ID(UUID)を使用 | `claude --session-id "550e8400-..."` |
| `--fork-session` | 再開時に新しいセッションを作成 | `claude --resume abc123 --fork-session` |
### セッションの例
```bash
# 直前の会話を継続
claude -c
# 名前付きセッションを再開
claude -r "feature-auth" "continue implementing login"
# 試行錯誤のためセッションをフォーク
claude --resume feature-auth --fork-session "try alternative approach"
# 特定のセッション ID を使用
claude --session-id "550e8400-e29b-41d4-a716-446655440000" "continue"
```
### セッションのフォーク
既存セッションから分岐したブランチを作成し試行錯誤する:
```bash
# 別アプローチを試すためにセッションをフォーク
claude --resume abc123 --fork-session "try alternative implementation"
# カスタムメッセージ付きでフォーク
claude -r "feature-auth" --fork-session "test with different architecture"
```
**ユースケース:**
- 元のセッションを失わずに別実装を試す
- 並行して複数のアプローチを試行錯誤する
- 成功した作業からバリエーションのブランチを作る
- メインセッションに影響を与えずに破壊的な変更を試す
元のセッションは変更されず、フォークは新しい独立セッションになる。
## 高度な機能
| フラグ | 説明 | 例 |
|------|------|-----|
| `--chrome` | Chrome ブラウザ統合を有効化 | `claude --chrome` |
| `--no-chrome` | Chrome ブラウザ統合を無効化 | `claude --no-chrome` |
| `--ide` | 利用可能なら IDE と自動接続 | `claude --ide` |
| `--max-turns` | エージェントターンを制限(非対話) | `claude -p --max-turns 3 "query"` |
| `--debug` | フィルタ付きデバッグモードを有効化 | `claude --debug "api,mcp"` |
| `--enable-lsp-logging` | 詳細な LSP ログを有効化 | `claude --enable-lsp-logging` |
| `--betas` | API リクエストのベータヘッダ | `claude --betas interleaved-thinking` |
| `--plugin-dir` | ディレクトリからプラグインを読み込む(複数指定可) | `claude --plugin-dir ./my-plugin` |
| `--enable-auto-mode` | 自動権限モードを解禁 | `claude --enable-auto-mode` |
| `--effort` | 思考労力レベルを設定 | `claude --effort high` |
| `--bare` | 最小モード(フック、スキル、プラグイン、MCP、自動メモリ、CLAUDE.md をスキップ) | `claude --bare` |
| `--channels` | MCP チャンネルプラグインを購読 | `claude --channels discord` |
| `--tmux` | ワークツリー用に tmux セッションを作成 | `claude --tmux` |
| `--fork-session` | 再開時に新しいセッション ID を作成 | `claude --resume abc --fork-session` |
| `--max-budget-usd` | 最大支出額(プリントモード) | `claude -p --max-budget-usd 5.00 "query"` |
| `--json-schema` | 検証付き JSON 出力 | `claude -p --json-schema '{"type":"object"}' "q"` |
### プラットフォームとテーマの注記(v2.1.112)
- **Windows 版の PowerShell ツール**: Windows 向けに専用の PowerShell ツールがロールアウトされ、環境変数で制御できる。
- **「Auto(ターミナルに合わせる)」テーマ**: 新しい "Auto (match terminal)" テーマで Claude Code のライト/ダーク表示をターミナルと同期できる。
- **静かな権限プロンプト**: 読み取り専用の `Bash` 呼び出しと `Glob` パターンは権限プロンプトを発生させなくなった。
### 高度な例
```bash
# 自律アクション数を制限
claude -p --max-turns 5 "refactor this module"
# API 呼び出しをデバッグ
claude --debug "api" "test query"
# IDE 統合を有効化
claude --ide "help me with this file"
```
## Agents の設定
`--agents` フラグはセッションに対するカスタムサブエージェントを定義する JSON オブジェクトを受け取る。
### Agents の JSON フォーマット
```json
{
"agent-name": {
"description": "Required: when to invoke this agent",
"prompt": "Required: system prompt for the agent",
"tools": ["Optional", "array", "of", "tools"],
"model": "optional: sonnet|opus|haiku"
}
}
```
**必須フィールド:**
- `description` - エージェントを使う場面の自然言語による説明
- `prompt` - エージェントの役割と挙動を定義するシステムプロンプト
**任意フィールド:**
- `tools` - 利用可能なツールの配列(省略時は全ツールを継承)
- 形式: `["Read", "Grep", "Glob", "Bash"]`
- `model` - 使用するモデル: `sonnet`、`opus`、`haiku`
### 完全な Agents の例
```json
{
"code-reviewer": {
"description": "Expert code reviewer. Use proactively after code changes.",
"prompt": "You are a senior code reviewer. Focus on code quality, security, and best practices.",
"tools": ["Read", "Grep", "Glob", "Bash"],
"model": "sonnet"
},
"debugger": {
"description": "Debugging specialist for errors and test failures.",
"prompt": "You are an expert debugger. Analyze errors, identify root causes, and provide fixes.",
"tools": ["Read", "Edit", "Bash", "Grep"],
"model": "opus"
},
"documenter": {
"description": "Documentation specialist for generating guides.",
"prompt": "You are a technical writer. Create clear, comprehensive documentation.",
"tools": ["Read", "Write"],
"model": "haiku"
}
}
```
### Agents コマンドの例
```bash
# カスタムエージェントをインラインで定義
claude --agents '{
"security-auditor": {
"description": "Security specialist for vulnerability analysis",
"prompt": "You are a security expert. Find vulnerabilities and suggest fixes.",
"tools": ["Read", "Grep", "Glob"],
"model": "opus"
}
}' "audit this codebase for security issues"
# ファイルからエージェントを読み込み
claude --agents "$(cat ~/.claude/agents.json)" "review the auth module"
# 他のフラグと組み合わせ
claude -p --agents "$(cat agents.json)" --model sonnet "analyze performance"
```
### エージェントの優先順位
複数のエージェント定義が存在する場合、以下の優先順位で読み込まれる:
1. **CLI 定義**(`--agents` フラグ) - セッション固有
2. **プロジェクトレベル**(`.claude/agents/`) - 現在のプロジェクト
3. **ユーザーレベル**(`~/.claude/agents/`) - 全プロジェクト
CLI 定義のエージェントは、当該セッションにおいてプロジェクトおよびユーザーのエージェントを上書きする。プロジェクトレベルのエージェントは、名前が衝突した場合にユーザーレベルのエージェントを上書きする。プラグインレベルのエージェントを含む完全な優先順位表は [Lesson 04 — サブエージェント](../04-subagents/README.md#file-locations) を参照。
---
## 価値の高いユースケース
### 1. CI/CD への組み込み
Claude Code を CI/CD パイプラインに組み込み、コードレビュー、テスト、ドキュメント生成を自動化する。
**GitHub Actions の例:**
```yaml
name: AI Code Review
on: [pull_request]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Claude Code
run: npm install -g @anthropic-ai/claude-code
- name: Run Code Review
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
claude -p --output-format json \
--max-turns 1 \
"Review the changes in this PR for:
- Security vulnerabilities
- Performance issues
- Code quality
Output as JSON with 'issues' array" > review.json
- name: Post Review Comment
uses: actions/github-script@v7
with:
script: |
const fs = require('fs');
const review = JSON.parse(fs.readFileSync('review.json', 'utf8'));
// Process and post review comments
```
**Jenkins パイプライン:**
```groovy
pipeline {
agent any
stages {
stage('AI Review') {
steps {
sh '''
claude -p --output-format json \
--max-turns 3 \
"Analyze test coverage and suggest missing tests" \
> coverage-analysis.json
'''
}
}
}
}
```
### 2. スクリプトのパイプ処理
ファイル、ログ、データを Claude に流し込んで分析する。
**ログ解析:**
```bash
# エラーログの分析
tail -1000 /var/log/app/error.log | claude -p "summarize these errors and suggest fixes"
# アクセスログ内のパターン抽出
cat access.log | claude -p "identify suspicious access patterns"
# git 履歴の要約
git log --oneline -50 | claude -p "summarize recent development activity"
```
**コード処理:**
```bash
# 特定ファイルのレビュー
cat src/auth.ts | claude -p "review this authentication code for security issues"
# ドキュメントの生成
cat src/api/*.ts | claude -p "generate API documentation in markdown"
# TODO の抽出と優先順位付け
grep -r "TODO" src/ | claude -p "prioritize these TODOs by importance"
```
### 3. マルチセッションのワークフロー
複数の会話スレッドで複雑なプロジェクトを管理する。
```bash
# フィーチャーブランチ用セッションを開始
claude -r "feature-auth" "let's implement user authentication"
# 後で同じセッションを継続
claude -r "feature-auth" "add password reset functionality"
# 別アプローチを試すためフォーク
claude --resume feature-auth --fork-session "try OAuth instead"
# 別の機能のセッションへ切り替え
claude -r "feature-payments" "continue with Stripe integration"
```
### 4. カスタムエージェントの設定
チームのワークフロー向けに専門エージェントを定義する。
```bash
# エージェント設定をファイルに保存
cat > ~/.claude/agents.json << 'EOF'
{
"reviewer": {
"description": "Code reviewer for PR reviews",
"prompt": "Review code for quality, security, and maintainability.",
"model": "opus"
},
"documenter": {
"description": "Documentation specialist",
"prompt": "Generate clear, comprehensive documentation.",
"model": "sonnet"
},
"refactorer": {
"description": "Code refactoring expert",
"prompt": "Suggest and implement clean code refactoring.",
"tools": ["Read", "Edit", "Glob"]
}
}
EOF
# セッションでエージェントを使用
claude --agents "$(cat ~/.claude/agents.json)" "review the auth module"
```
### 5. バッチ処理
一貫した設定で複数クエリを処理する。
```bash
# 複数ファイルの処理
for file in src/*.ts; do
echo "Processing $file..."
claude -p --model haiku "summarize this file: $(cat $file)" >> summaries.md
done
# バッチコードレビュー
find src -name "*.py" -exec sh -c '
echo "## $1" >> review.md
cat "$1" | claude -p "brief code review" >> review.md
' _ {} \;
# 全モジュールのテスト生成
for module in $(ls src/modules/); do
claude -p "generate unit tests for src/modules/$module" > "tests/$module.test.ts"
done
```
### 6. セキュリティを意識した開発
権限制御で安全に運用する。
```bash
# 読み取り専用のセキュリティ監査
claude --permission-mode plan \
--tools "Read,Grep,Glob" \
"audit this codebase for security vulnerabilities"
# 危険なコマンドをブロック
claude --disallowedTools "Bash(rm:*)" "Bash(curl:*)" "Bash(wget:*)" \
"help me clean up this project"
# 制限付き自動化
claude -p --max-turns 2 \
--allowedTools "Read" "Glob" \
"find all hardcoded credentials"
```
### 7. JSON API としての利用
`jq` のパースと組み合わせて、Claude をプログラム可能な API として活用する。
```bash
# 構造化された分析を取得
claude -p --output-format json \
--json-schema '{"type":"object","properties":{"functions":{"type":"array"},"complexity":{"type":"string"}}}' \
"analyze main.py and return function list with complexity rating"
# jq で処理に組み込む
claude -p --output-format json "list all API endpoints" | jq '.endpoints[]'
# スクリプト内で利用
RESULT=$(claude -p --output-format json "is this code secure? answer with {secure: boolean, issues: []}" < code.py)
if echo "$RESULT" | jq -e '.secure == false' > /dev/null; then
echo "Security issues found!"
echo "$RESULT" | jq '.issues[]'
fi
```
### jq でのパース例
`jq` で Claude の JSON 出力をパース・処理する:
```bash
# 特定フィールドの抽出
claude -p --output-format json "analyze this code" | jq '.result'
# 配列要素のフィルタ
claude -p --output-format json "list issues" | jq -r '.issues[] | select(.severity=="high")'
# 複数フィールドの抽出
claude -p --output-format json "describe the project" | jq -r '.{name, version, description}'
# CSV への変換
claude -p --output-format json "list functions" | jq -r '.functions[] | [.name, .lineCount] | @csv'
# 条件付き処理
claude -p --output-format json "check security" | jq 'if .vulnerabilities | length > 0 then "UNSAFE" else "SAFE" end'
# ネストされた値の取得
claude -p --output-format json "analyze performance" | jq '.metrics.cpu.usage'
# 配列全体の処理
claude -p --output-format json "find todos" | jq '.todos | length'
# 出力の変換
claude -p --output-format json "list improvements" | jq 'map({title: .title, priority: .priority})'
```
---
## モデル
Claude Code は能力の異なる複数のモデルをサポートする:
| モデル | ID | コンテキストウィンドウ | 備考 |
|-------|-----|----------------------|------|
| Opus 4.7 | `claude-opus-4-7` | 1M トークン(1M コンテキスト対応は v2.1.117 で実装) | 最も能力が高く、適応的な労力レベルを備える。Claude Code では Opus 4.7 ローンチ(2026-04-16)以降 `xhigh` がデフォルトの労力レベル |
| Sonnet 4.6 | `claude-sonnet-4-6` | 1M トークン | 速度と能力のバランスが良い。Pro/Max 加入者のデフォルト労力は v2.1.117 で `medium` から `high` に引き上げられた |
| Haiku 4.5 | `claude-haiku-4-5` | 1M トークン | 最速で、軽いタスクに最適 |
### モデルの選択
```bash
# 短縮名で指定
claude --model opus "complex architectural review"
claude --model sonnet "implement this feature"
claude --model haiku -p "format this JSON"
# opusplan エイリアス(Opus が計画、Sonnet が実装)
claude --model opusplan "design and implement the API"
# セッション中にファストモードを切り替え
/fast
```
### 労力レベル(Opus 4.7)
Opus 4.7 は適応的推論をサポートし、軽い順から `low`(○)、`medium`(◐)、`high`(●)、`xhigh`(Claude Code では Opus 4.7 ローンチ以降のデフォルト、2026-04-16)、`max`(Opus 4.7 のみ)の労力レベルを持つ。Opus 4.6 / Sonnet 4.6 では、Pro/Max 加入者のデフォルト労力が v2.1.117 で `medium` から `high` に引き上げられた。
```bash
# CLI フラグで労力レベルを設定
claude --effort xhigh "complex review"
# スラッシュコマンドで労力レベルを設定
/effort xhigh
# 環境変数で労力レベルを設定
export CLAUDE_CODE_EFFORT_LEVEL=xhigh # low, medium, high, xhigh (default on Opus 4.7), or max (Opus 4.7 only)
```
プロンプト内のキーワード「ultrathink」は深い推論を有効化する。`max` の労力レベルは Opus 4.7 専用である。
---
## 主要な環境変数
| 変数 | 説明 |
|------|------|
| `ANTHROPIC_API_KEY` | 認証用の API キー |
| `ANTHROPIC_MODEL` | デフォルトモデルを上書き |
| `ANTHROPIC_CUSTOM_MODEL_OPTION` | API 用のカスタムモデルオプション |
| `ANTHROPIC_DEFAULT_OPUS_MODEL` | デフォルトの Opus モデル ID を上書き |
| `ANTHROPIC_DEFAULT_SONNET_MODEL` | デフォルトの Sonnet モデル ID を上書き |
| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | デフォルトの Haiku モデル ID を上書き |
| `MAX_THINKING_TOKENS` | 拡張思考のトークン予算を設定 |
| `CLAUDE_CODE_EFFORT_LEVEL` | 労力レベルを設定(`low`/`medium`/`high`/`xhigh`/`max`) — `xhigh` は Opus 4.7 のデフォルト、`max` は Opus 4.7 のみ |
| `CLAUDE_CODE_SIMPLE` | 最小モード(`--bare` フラグで設定される) |
| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | CLAUDE.md の自動更新を無効化 |
| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | バックグラウンドタスク実行を無効化 |
| `CLAUDE_CODE_DISABLE_CRON` | スケジュール/cron タスクを無効化 |
| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | git 関連の指示を無効化 |
| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | ターミナルタイトル更新を無効化 |
| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | 1M トークンコンテキストウィンドウを無効化 |
| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | 非ストリーミングフォールバックを無効化 |
| `CLAUDE_CODE_ENABLE_TASKS` | タスクリスト機能を有効化 |
| `CLAUDE_CODE_TASK_LIST_ID` | セッション間で共有する名前付きタスクディレクトリ |
| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | プロンプトサジェストを切り替え(`true`/`false`) |
| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | 実験的なエージェントチームを有効化 |
| `CLAUDE_CODE_NEW_INIT` | 新しい初期化フローを使用 |
| `CLAUDE_CODE_SUBAGENT_MODEL` | サブエージェント実行用モデル |
| `CLAUDE_CODE_PLUGIN_SEED_DIR` | プラグインシードファイル用ディレクトリ |
| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | サブプロセスから取り除く環境変数 |
| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | 自動コンパクションのパーセンテージを上書き |
| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | ストリームのアイドルタイムアウト(ミリ秒) |
| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | スラッシュコマンドツールの文字数予算 |
| `ENABLE_TOOL_SEARCH` | ツール検索機能を有効化 |
| `MAX_MCP_OUTPUT_TOKENS` | MCP ツール出力の最大トークン数 |
| `CLAUDE_CODE_PERFORCE_MODE` | `1` を設定すると Perforce モードを有効化 — ファイルをデフォルトで読み取り専用として扱う(Perforce/P4 バージョン管理ワークフロー向け)(v2.1.98 追加) |
| `DISABLE_UPDATES` | 手動の `claude update` を含むすべての更新経路をブロックする。バックグラウンドの自動更新のみブロックする `DISABLE_AUTOUPDATER` より厳密(v2.1.118+) |
| `CLAUDE_CODE_HIDE_CWD` | `1` に設定すると、起動時ロゴでカレント作業ディレクトリを隠す(プライバシー/画面共有用途)(v2.1.119+) |
| `CLAUDE_CODE_FORK_SUBAGENT` | `1` を設定すると外部ビルド(Bedrock、Vertex、Foundry)でフォーク済みサブエージェントを有効化。Anthropic API ではフォーク済みサブエージェントが GA のため効果なし(v2.1.117+) |
| `OTEL_LOG_TOOL_DETAILS` | `1` を設定すると OpenTelemetry イベント中のカスタムおよび MCP コマンド名のリダクションを解除する(v2.1.117+)。デフォルトはリダクション有効。 |
> **Vertex AI 上の `ENABLE_TOOL_SEARCH`(v2.1.119+)**: ツール検索は **Google Cloud Vertex AI 上のデプロイではデフォルト無効** である。Vertex 上でツール検索機能を使いたい場合は `export ENABLE_TOOL_SEARCH=true` で明示的にオプトインする必要がある。Anthropic API 直結ではデフォルト有効のままである。
---
## クイックリファレンス
### 最もよく使うコマンド
```bash
# 対話セッション
claude
# サッと質問
claude -p "how do I..."
# 会話を継続
claude -c
# ファイルを処理
cat file.py | claude -p "review this"
# スクリプト用の JSON 出力
claude -p --output-format json "query"
```
### フラグの組み合わせ
| ユースケース | コマンド |
|-------------|----------|
| 簡易コードレビュー | `cat file \| claude -p "review"` |
| 構造化出力 | `claude -p --output-format json "query"` |
| 安全な探索 | `claude --permission-mode plan` |
| 安全装置付き自律実行 | `claude --enable-auto-mode --permission-mode auto` |
| CI/CD 連携 | `claude -p --max-turns 3 --output-format json` |
| 作業の再開 | `claude -r "session-name"` |
| カスタムモデル | `claude --model opus "complex task"` |
| 最小モード | `claude --bare "quick query"` |
| 予算上限付き実行 | `claude -p --max-budget-usd 2.00 "analyze code"` |
---
## トラブルシューティング
### コマンドが見つからない
**問題:** `claude: command not found`
**対処法:**
- Claude Code をインストール: `npm install -g @anthropic-ai/claude-code`
- PATH に npm のグローバル bin ディレクトリが含まれていることを確認
- フルパスで実行を試す: `npx claude`
### API キーの問題
**問題:** 認証に失敗する
**対処法:**
- API キーを設定: `export ANTHROPIC_API_KEY=your-key`
- キーが有効でクレジットが十分か確認
- 要求モデルに対するキー権限を確認
### セッションが見つからない
**問題:** セッションを再開できない
**対処法:**
- 利用可能なセッションを一覧表示し、正しい名前/ID を確認
- セッションは一定期間使用しないと失効する場合がある
- `-c` で直近のセッションを継続する
### 出力フォーマットの問題
**問題:** JSON 出力が壊れている
**対処法:**
- `--json-schema` で構造を強制する
- プロンプト内に明示的な JSON 指示を含める
- プロンプトで JSON を要求するだけでなく `--output-format json` を使用する
### 権限拒否
**問題:** ツール実行がブロックされる
**対処法:**
- `--permission-mode` 設定を確認
- `--allowedTools` と `--disallowedTools` フラグを見直す
- 自動化用途では(注意のうえ)`--dangerously-skip-permissions` を使用
---
## 追加リソース
- **[公式 CLI リファレンス](https://code.claude.com/docs/en/cli-reference)** - 完全なコマンドリファレンス
- **[ヘッドレスモードのドキュメント](https://code.claude.com/docs/en/headless)** - 自動実行
- **[スラッシュコマンド](../01-slash-commands/)** - Claude 内のカスタムショートカット
- **[メモリガイド](../02-memory/)** - CLAUDE.md による永続コンテキスト
- **[MCP プロトコル](../05-mcp/)** - 外部ツール連携
- **[高度な機能](../09-advanced-features/)** - プランニングモード、拡張思考
- **[サブエージェントガイド](../04-subagents/)** - 委譲によるタスク実行
---
*[Claude How To](../) ガイドシリーズの一部*
---
**最終更新**: 2026 年 4 月 24 日
**Claude Code バージョン**: 2.1.119
**出典**:
- https://code.claude.com/docs/en/cli-reference
- https://code.claude.com/docs/en/settings
- https://code.claude.com/docs/en/changelog
- https://www.anthropic.com/news/claude-opus-4-7
- https://github.com/anthropics/claude-code/releases/tag/v2.1.113
- https://github.com/anthropics/claude-code/releases/tag/v2.1.116
- https://github.com/anthropics/claude-code/releases/tag/v2.1.117
- https://github.com/anthropics/claude-code/releases/tag/v2.1.118
- https://github.com/anthropics/claude-code/releases/tag/v2.1.119
**対応モデル**: Claude Sonnet 4.6、Claude Opus 4.7、Claude Haiku 4.5