Claude Code チュートリアル

Windows / WSL 向け

このチュートリアルの目的

このチュートリアルは、Claude Code(Anthropic製のAIコーディングCLI)を通じて、 生成AIを扱う上での普遍的な姿勢と概念を習得することを目的としています。

Claude Code はひとつの具体的なツールですが、ここで学ぶ概念—— コンテキストの管理・プロンプト設計・プライバシーへの意識・ツールとの連携——は、 他の生成AIツールや将来登場するサービスにも広く通用します。

操作手順の習得だけでなく、「AIに何をどう伝えるか」「AIにどこまで任せるか」 「AIの出力をどう検証するか」という思考を身につけることが、 このチュートリアルを通じて得てほしいものです。

目次

  1. 使うときの注意(データの学習・プライバシー)
  2. インストール
  3. 初期設定
  4. プロンプトの基本
  5. スキル(カスタムスラッシュコマンド)
  6. エージェント(サブエージェント)
  7. サンドボックス
  8. MCP(Model Context Protocol)

1. 使うときの注意(データの学習・プライバシー)

アカウント種別による違い

使用するアカウントの種別によって、入力したデータがAIの学習に使われるかどうかが異なります。 (参考: データの使用に関するポリシー

アカウント種別 学習に使われるか データ保持期間
Free / Pro / Max(個人) デフォルトで有効(設定で無効化可) 学習有効: 5年 / 無効: 30日
Team / Enterprise / API 使われない(明示的なオプトインが必要) 30日

プライバシー設定の変更: claude.ai/settings/data-privacy-controls

学習データになりうる操作

テレメトリの無効化

Claude Code はデフォルトで使用状況やエラー情報を Anthropic に自動送信しています。 会話内容ではありませんが、社内ポリシーや個人の方針で送信を避けたい場合は 以下の環境変数で無効化できます。

# テレメトリ無効化
export DISABLE_TELEMETRY=1

# エラーレポート無効化
export DISABLE_ERROR_REPORTING=1

# アンケート無効化
export CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1

ローカルのセッションデータは ~/.claude/projects/ に平文で保存されます(デフォルト30日保持)。

参考: 環境変数リファレンス

2. インストール

必要なアカウント

Claude Code を使用するには、以下のいずれかのアカウントが必要です。 無料の Claude.ai プランは対象外です。

CLI インストール — Windows(ネイティブ)

Git for Windows のインストールを推奨します。未インストールの場合、 Claude Code は Bash の代わりに PowerShell をシェルとして使用します。 (参考: セットアップガイド

PowerShell:

irm https://claude.ai/install.ps1 | iex

WinGet:

winget install Anthropic.ClaudeCode

CLI インストール — WSL2 / Linux

WSL1 は非対応です。WSL2 を使用してください。

公式スクリプト(Ubuntu / Debian / Alpine対応):

curl -fsSL https://claude.ai/install.sh | bash

apt(Ubuntu/Debian)— リポジトリを追加してからインストール:

sudo install -d -m 0755 /etc/apt/keyrings
sudo curl -fsSL https://downloads.claude.ai/keys/claude-code.asc \
  -o /etc/apt/keyrings/claude-code.asc
echo "deb [signed-by=/etc/apt/keyrings/claude-code.asc] https://downloads.claude.ai/claude-code/apt/stable stable main" \
  | sudo tee /etc/apt/sources.list.d/claude-code.list
sudo apt update
sudo apt install claude-code

デスクトップ版インストール

認証(初回ログイン)

インストール後、以下のいずれかの方法で認証します。

参考: セットアップガイド

3. 初期設定

初回起動

cd /your/project
claude

CLAUDE.md(プロジェクト設定ファイル)

プロジェクトに取り組む姿勢を定義するファイルです。 「ドキュメントを深く理解する」「理屈を推測せず確かな情報のみ利用する」 「不明確な情報は質問して確かめる」といった内容が典型例です。 新しくプロジェクトに参加した人に、最初に求める姿勢を思い浮かべると 書きやすいでしょう。

ルール・規約などを追加する場合は、 プロジェクトの文脈だけでは理解が困難なものや、 調べるのにコストがかかるものを優先して書いておくと効果的です。 コードを読めばわかることや、一般的な慣習は書かなくて構いません。

/init  # CLAUDE.md を自動生成(コードベースを解析して作成)

ロード順(優先度順):

  1. 管理者ポリシー(組織レベル)— Enterprise 向け。 IT管理者が Ansible・MDM・グループポリシーなどの構成管理ツールで 各マシンの保護ディレクトリに配布する (Linux/WSL: /etc/claude-code/CLAUDE.md、 Windows: C:\Program Files\ClaudeCode\CLAUDE.md)。 一般ユーザーは編集・無効化できず、常に最優先で読み込まれる。
  2. プロジェクトルート: ./CLAUDE.md または ./.claude/CLAUDE.md
  3. 親ディレクトリ(ツリーを上に辿る)
  4. ユーザーレベル: ~/.claude/CLAUDE.md
  5. ローカル個人設定: ./CLAUDE.local.md(gitignore 推奨)
  6. サブディレクトリルール: .claude/rules/*.md — 該当ファイルを編集したときだけ読み込まれる

200行以内が推奨。長すぎると遵守率が下がります。

rules フォルダへの切り分け

具体的な指示がある場合は .claude/rules/ 配下のファイルに書き、 必要なときだけ読み込むようにすると消費トークンを抑えられます。 CLAUDE.md には姿勢・方針を、rules には個別の具体的な指示を書くイメージです。

rules への切り出しが特に効果的な内容の例:

ファイルの先頭に paths を定義すると、 対象パスのファイルを編集したときだけ読み込まれるため、 より細かくトークン消費を制御できます。

---
paths:
  - "src/**/*.{ts,tsx}"
  - "lib/**/*.ts"
  - "tests/**/*.test.ts"
---

# TypeScript コーディング規約
(ここに指示を書く)

参考: メモリ管理ドキュメント

設定ファイル(settings.json)

ファイル 用途
~/.claude/settings.json ユーザー全体の設定
.claude/settings.json プロジェクト設定(チームで共有)
.claude/settings.local.json ローカル上書き(git管理対象外推奨)

設定例:

allow にはよく使うコマンドのうちファイルへの影響が少ないものを 最初から登録しておくと、その都度許可する手間が省けて便利です。 作業を進める中で安全だと判断したものを追加していくとよいでしょう。

deny にはシークレット関連ファイルを最初から登録しておくことを推奨します。 後から追加するより、プロジェクト開始時に設定しておく方が安全です。

{
  "model": "sonnet",
  "effortLevel": "high",
  "autoMemoryEnabled": true,
  "permissions": {
    "allow": ["Bash(git *)", "Bash(pnpm *)"],
    "deny": [
      "Read(.env*)",
      "Read(**/*secret*)",
      "Read(**/*credential*)",
      "Read(**/*.pem)",
      "Read(**/*.key)"
    ]
  }
}

参考: 設定リファレンス

メモリシステム

Claudeがセッションをまたいで学習内容(ビルドコマンド、好みのスタイルなど)を自動保存する機能です。

4. プロンプトの基本

起動オプション

claude              # 対話モード
claude "タスク"     # 1回実行して終了
claude -c           # 前のセッションを継続
claude -r           # セッション一覧から選んで再開

主なスラッシュコマンド

コマンド 説明
/help コマンド一覧を表示
/clear 会話をリセット
/compact 会話を要約してコンテキストを節約
/model 使用モデルを切り替え
/config 設定UIを開く
/memory CLAUDE.md・メモリの確認・編集
/init CLAUDE.md を生成
/context コンテキスト使用量を確認
/mcp MCPサーバーの状態確認
/sandbox サンドボックス設定

ファイルの参照方法

"src/auth.ts を見て"                        # 直接パス指定
"@src/components/Button.tsx のバグを修正"   # @メンション
"/absolute/path/to/file.txt を読んで"       # 絶対パス

コンテキスト管理

会話が長くなるとコンテキスト上限に近づきます。上限に達すると自動で圧縮(compaction)されます。 手動で実行する場合:

/compact focus on [残したいトピック]

プロンプトのコツ

具体的に書く
「バグを直して」より「auth.tslogin() で null が返る場合を修正して」のように、ファイル・関数・症状をセットで書くと精度が上がります。
成功基準を一緒に伝える
「テストが通るまで修正して」「pnpm build が通ることを確認して」のように、何をもって完了とするかを明示すると余計な変更が減ります。
スコープを絞る
「このファイルだけ見て」「他のファイルは触らないで」と範囲を明示すると、意図しない変更を防げます。
段階的に進める
大きな作業は「まず調査だけして」「計画を出して、実装前に確認する」のように分割すると、 方向性のズレを早期に修正できます。
コンテキストを補足する
AIが知らないプロジェクト固有の制約(「このライブラリはv2のAPIで動いている」など)は 都度伝えるか、CLAUDE.md に書いておくと効果的です。

5. スキル(カスタムスラッシュコマンド)

スキルとは

独自のスラッシュコマンド(/skill-name)を作れる拡張機能です。 主な利点:

保存場所

スコープ パス 適用範囲
個人 ~/.claude/skills/<name>/SKILL.md 全プロジェクト
プロジェクト .claude/skills/<name>/SKILL.md 当該プロジェクトのみ

スキルの作り方

<!-- ~/.claude/skills/review-code/SKILL.md -->
---
name: review-code
description: コードレビューを実施する。レビュー依頼時に使用。
user-invocable: true
allowed-tools: Read Grep
---

コードレビュー手順:
1. セキュリティの問題がないか確認
2. パフォーマンスの問題がないか確認
3. 改善提案を日本語で箇条書きにする

主なフロントマターオプション

オプション 説明
name コマンド名(/name で呼び出し)
description /help に表示・自動呼び出しの判断に使用
user-invocable: true 手動で /skill-name として呼び出せる
disable-model-invocation: true 手動のみ(Claudeからの自動呼び出し無効)
allowed-tools: Read Bash このスキル中に自動許可するツール
model: sonnet このスキル中に使うモデルを上書き
context: fork サブエージェントとして独立実行
agent: <name> 委譲先のエージェントを指定(context: fork と併用)。 組み込みエージェント名またはカスタムエージェント名を指定する

参考: スキルドキュメント

6. エージェント(サブエージェント)

エージェントとは

特定タスクに特化したAIアシスタントです。主な利点:

エージェントの定義(AGENT.md)

.claude/agents/<name>/AGENT.md にファイルを作成すると、カスタムエージェントを定義できます。

<!-- .claude/agents/researcher/AGENT.md -->
---
name: researcher
description: コードベースのリサーチと分析を行う
model: haiku
tools: Read Grep Glob WebFetch
---

あなたは徹底的なリサーチャーです。
調査結果はファイルの参照と共に日本語で報告してください。

組み込みエージェント

AGENT.md を作成しなくても使える組み込みエージェントが存在します。

agent の値 用途 使えるツール
Explore 読み取り専用のリサーチ・調査 Read, Grep, Glob, Web
Plan 実行前の安全な計画・分析 読み取り系のみ
general-purpose 汎用(デフォルト) 全ツール

エージェントの呼び出し

定義したエージェントは /agent コマンドで直接呼び出せます。

/agent researcher "この機能の実装を調べて"

スキルからサブエージェントを呼び出す

スキルの frontmatter に context: forkagent: を指定すると、スキル実行時に指定したエージェントへ委譲できます。 agent: には組み込みエージェント名またはカスタムエージェント名を指定します。

---
name: analyze-deps
description: 依存関係の分析
context: fork
agent: Explore
---

package.json と lock ファイルを調べて依存関係を報告してください。

参考: サブエージェントドキュメント

7. サンドボックス

サンドボックスとは

BashコマンドをOSレベルで隔離する仕組みです。 ファイルシステム・ネットワークへのアクセスを制限し、 許可された操作は自動承認されるので権限プロンプトが減り、 より安全に自律操作させられます。

プラットフォーム対応状況

プラットフォーム 状況 使用技術
macOS 完全対応 Seatbelt(組み込み)
Linux 完全対応 bubblewrap
WSL2 完全対応 bubblewrap
WSL1 非対応
Windows ネイティブ 近日対応予定

WSL2 でのセットアップ

# 依存パッケージのインストール
sudo apt-get install bubblewrap socat

# サンドボックスを有効化(Claude Code 内で実行)
/sandbox

デフォルトの動作

settings.json での設定例

{
  "sandbox": {
    "enabled": true,
    "filesystem": {
      "allowWrite": ["~/.kube", "/tmp/build"],
      "denyWrite": ["~/sensitive"]
    },
    "network": {
      "allowedDomains": ["github.com", "*.npmjs.org"]
    },
    "excludedCommands": ["docker"]
  }
}

参考: サンドボックスドキュメント

8. MCP(Model Context Protocol)

MCPとは

ClaudeをGitHub・Notion・Google Drive・データベースなどの 外部ツールと接続するオープン標準です。 MCPサーバーをインストールすることで、Claudeの機能を拡張できます。

注意: 信頼できるMCPサーバーのみ使用する

MCPサーバーはClaudeのツールとして動作するため、 悪意のあるサーバーを導入するとファイルの読み書き・外部通信・コマンド実行などを 許可してしまう危険があります。 また、プロンプトインジェクションのリスクもあります。 MCPサーバーが返すデータに悪意ある指示が含まれていた場合、 Claudeがその指示に従って意図しない操作を行う可能性があります。

設定ファイルの場所と優先順位

優先度が高い順:

スコープ 適用範囲 チーム共有 パス
ローカル 現在のプロジェクトのみ いいえ ~/.claude.json
プロジェクト 現在のプロジェクトのみ はい(バージョン管理) .mcp.json(プロジェクトルート)
ユーザー すべてのプロジェクト いいえ ~/.claude.json

参考: スコープの階層と優先順位

設定例 — HTTP型

{
  "mcpServers": {
    "example": {
      "type": "http",
      "url": "https://api.example.com/mcp"
    }
  }
}

設定例 — ローカルプロセス(stdio)型

{
  "mcpServers": {
    "github": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxx"
      }
    }
  }
}

主なMCPサーバー例

サーバー できること
GitHub MCP Issue, PR, リポジトリ操作
Notion MCP Notionワークスペース操作
MongoDB MCP データベース操作・Atlas管理
Backlog MCP 課題・プロジェクト管理

MCP状態の確認

/mcp   # 接続中のMCPサーバー一覧と状態を表示

更新履歴