← 早見表 コマンド一覧 →

01 基礎概念 — Claude Code とは


Claude Code の4つの形態

Claude Code は Anthropic が提供する AI コーディングアシスタント。4つの形態で利用できる。

形態 説明 使い方
CLI ターミナル上で動作。你的のメイン環境(WSL2) claude コマンドで起動
Desktop App Windows/Mac用のデスクトップアプリ スタンドアロンで起動
IDE拡張 VS Code・JetBrains用プラグイン IDE内のパネルで操作
Web App claude.ai/code でブラウザから利用 ブラウザでアクセス

このガイドは主に CLI(WSL2環境) を前提に書かれている。


Desktop App と CLI の違い

⚠️ 公式の仕様 を比較しています。個人のコスト最適化構成(GLM/MiniMaxルーティング等)は 15_コスト最適化構成 を参照。

比較表

項目 Desktop App CLI
起動方法 アプリをダブルクリック ターミナルで claude コマンド
画面 GUI(タブ・サイドバー・ビジュアルdiff) ターミナル(テキストのみ)
並行セッション タブで視覚的に管理 バックグラウンドエージェント
変更差分 横並びビジュアル表示 テキストdiff(色付き)
コンテキスト上限 モデル依存(Sonnet 5は1M自動・他は[1m]選択) モデル依存(同じ)
スクリプト連携 不可 可(パイプ・cron・hook)
対応OS Windows / macOS / Linux(beta) 全OS(Linux/WSL2/Mac/Windows)
Desktop固有機能 ビジュアルdiff・アプリプレビュー(組込ブラウザ)・Computer Use(GUI操作)・Dispatch・サイドチャット
CLI固有機能 --print/Agent SDK(スクリプト自動化)・エージェントチーム・dontAskモード・ターミナル系コマンド
設定ファイル claude_desktop_config.json settings.json
Hook / Skill ✅ 対応 ✅ 対応
MCPサーバー ✅ 対応 ✅ 対応

設定ファイルの場所

ファイル Desktop App CLI
メイン設定 AppData\Local\Packages\<pkg>\claude_desktop_config.json ~/.claude/settings.json
MCP起動コマンド wsl -d Ubuntu -- bash ...(WSL経由) bash ...(直接)

⚠️ Windows Desktop App(MSIX版)のMCP設定ファイルについて(2026-07-06実測) Windows Desktop App(ストア配布のMSIXパッケージ版)は、MCPサーバー設定を AppData\Local\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.json(MSIX仮想化パス)から読み込みます。~/.claude/settings.json にMCPを書いても反映されません。

  • 変更の反映確認: アプリ内「設定 → 開発者 → ローカルMCPサーバー」パネルで running 表示を直接確認するのが確実
  • 注意: このパスは2026-07-06時点の実測で、アプリ更新で変わりうります。一度確定した対応関係を恒久前提にしないこと(2026-05時点は別ファイルが有効に見えた時期もあり)
  • 詳細: Windows Desktop版Gemini-MCP真因確定 — MSIXconfig特定

どちらを選ぶか

場面 おすすめ
視覚的な差分確認が欲しい Desktop App
ターミナル作業はCLIの方が慣れている CLI
Linux / WSL2 で使いたい CLI のみ
スクリプトやcronで自動化したい CLI のみ
複数プロジェクトを並行管理 Desktop App(タブ)

詳細: 自作MCPサーバー構造メモ


graph TD User["👤 ユーザー"] --> CLI["💻 Claude Code CLI"] CLI --> SP["📋 システムプロンプト"] CLI --> MCP["🔌 MCPツール定義"] CLI --> SK["🎯 スキル定義"] CLI --> MEM["🧠 メモリ読込"] CLI --> LLM["🤖 LLM"] LLM --> Tools["🔧 ツール実行"] Tools --> Files["📁 ファイル操作"] Tools --> Shell["💻 シェル実行"] Tools --> API["🌐 API呼出"] Tools --> Agent["🤖 サブエージェント"] LLM --> Resp["💬 レスポンス"] Resp --> User

アーキテクチャ

ユーザー
  │
  ▼
Claude Code CLI(ターミナル)
  │
  ├─ システムプロンプトを読み込み(CLAUDE.md等)
  ├─ MCPツール定義を読み込み(83ツール)
  ├─ スキル定義を読み込み(30+スキル)
  ├─ メモリを読み込み(MEMORY.md等)
  │
  ▼
LLM(Claude Sonnet / Opus / Haiku)
  │
  ├─ ツール実行要求(Read, Edit, Bash, Agent等)
  │    ├─ ローカルファイル操作
  │    ├─ シェルコマンド実行
  │    ├─ MCPツール呼び出し(GitHub, Brave Search等)
  │    └─ サブエージェント起動
  │
  ▼
レスポンス(テキスト + ファイル変更)
  │
  ▼
ユーザーに表示

graph LR subgraph "200K トークン コンテキストウィンドウ" A["システムプロンプト
~3%"] B["ツール定義
~20%"] C["メモリ・スキル
~4%"] D["会話履歴
~3%"] E["空き容量
~70%"] end

コンテキストの仕組み

Claude Code は コンテキストウィンドウ(最大1Mトークン・モデル依存。標準は200k、Sonnet 5/Fable 5/Opus 4.6以降/Sonnet 4.6は1M窓に対応)の中で動作する。セッション開始時に以下がロードされる。

コンテキストの構成要素

200k トークン(標準窓の例・1M対応モデルなら空きが約5倍に拡大)
├── システムプロンプト      ~5.7k  (2.8%)   ← Claude Codeの基本ルール
├── システムツール定義     ~18.1k  (9.0%)   ← Read, Edit, Bash等のツール説明
├── MCPツール定義          ~21.4k (10.7%)   ← 83個のMCPツール説明
├── カスタムエージェント     ~2.9k  (1.4%)   ← エージェント定義
├── メモリファイル           ~2.5k  (1.2%)   ← CLAUDE.md + MEMORY.md
├── スキル定義               ~2.4k  (1.2%)   ← スキル一覧
├── メッセージ(会話履歴)   ~5.4k  (2.7%)   ← やり取りの履歴
└── 空き                    ~108.7k (54.3%)
    ※ Autocompact用バッファ   33k  (16.5%)

重要なポイント

自動コンパクション

空きが少なくなると、古い会話が自動的に要約される。これをオートコンパクションと呼ぶ。

用語定義: コンテキスト飽和ペイロード肥大化(10_用語集)


入力と出力の非対称性

Claude Codeでは入力トークン >> 出力トークンになるのが普通(比率は約13:1)。

理由は毎ターンで「システムプロンプト + MCP定義 + メモリ + 過去会話すべて」を再送するため。チャットAI(ChatGPT等)では出力が多くなりがちだが、コーディングアシスタントでは逆転する。

また、実質使える量は窓サイズ依存: 標準200K窓なら約160K、1M窓なら約960K(いずれもシステム・MCP・メモリで約40Kが固定消費される)。


トークンとは

トークンはテキストの最小単位。日本語1文字 ≒ 1〜2トークン、英単語1語 ≒ 1トークン。


環境の特記事項


セッション管理

Claude Code のセッション開始・再開・引き継ぎを支える3つの仕組み。

SessionStart Hook — SSOT日記の自動ロード

~/.claude/settings.jsonSessionStart に登録された load-obsidian-log.sh が、セッション開始時に以下を自動的にコンテキストへ流す:

軽量版で自動表示されるため、ユーザーが手動で handoff を読み込む必要はない(初回・作業中断後の再開時に文脈を即座に復元できる)。

resume-session / new-session — セッション区切りのスキル

スキル タイミング 役割
resume-session セッション開始時「おはよう」「再開」「/resume-session」 最新5件のhandoff(00★SYSTEM/handoff/)を読み込み文脈を復元(new-sessionの対・読込側)
new-session コンテキスト満杯時「新セッション」「/new-session」 現在の状態を収集→GLMで引き継ぎプロンプト生成→00★SYSTEM/handoff/YYYY-MM-DD_HHMM.md に保存→3行サマリー出力

タスク占有ボード — 並行セッションの競合防止

複数セッションを並行運用する場合、共通ファイル(settings.json / CLAUDE.md / hook群 / 共通スキル等)を逆向きに変更する競合を防ぐための作業宣言ボード。


💡 やさしい補足(初心者向け)

この章に出てくる言葉を、できるだけ平たく言い直します。