Claude Code チュートリアル
Windows / WSL 向け
このチュートリアルの目的
このチュートリアルは、Claude Code(Anthropic製のAIコーディングCLI)を通じて、 生成AIを扱う上での普遍的な姿勢と概念を習得することを目的としています。
Claude Code はひとつの具体的なツールですが、ここで学ぶ概念—— コンテキストの管理・プロンプト設計・プライバシーへの意識・ツールとの連携——は、 他の生成AIツールや将来登場するサービスにも広く通用します。
操作手順の習得だけでなく、「AIに何をどう伝えるか」「AIにどこまで任せるか」 「AIの出力をどう検証するか」という思考を身につけることが、 このチュートリアルを通じて得てほしいものです。
目次
1. 使うときの注意(データの学習・プライバシー)
アカウント種別による違い
使用するアカウントの種別によって、入力したデータがAIの学習に使われるかどうかが異なります。 (参考: データの使用に関するポリシー)
| アカウント種別 | 学習に使われるか | データ保持期間 |
|---|---|---|
| Free / Pro / Max(個人) | デフォルトで有効(設定で無効化可) | 学習有効: 5年 / 無効: 30日 |
| Team / Enterprise / API | 使われない(明示的なオプトインが必要) | 30日 |
プライバシー設定の変更: claude.ai/settings/data-privacy-controls
学習データになりうる操作
-
/feedbackコマンドの使用 → トランスクリプトが5年間保持・改善に利用される - セッション品質アンケートで「Yes」を選択 → トランスクリプトがアップロードされる(6ヶ月保持)
テレメトリの無効化
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 プランは対象外です。
- Claude.ai の有料プラン(Pro / Max / Team / Enterprise)
- Anthropic Console(API キー)
- Amazon Bedrock / Google Vertex AI / Microsoft Foundry(法人向け)
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
デスクトップ版インストール
- claude.ai/download からダウンロード(Windows x64 / ARM64 対応)
認証(初回ログイン)
インストール後、以下のいずれかの方法で認証します。
-
Claude.ai サブスクリプション:
claude実行 → ブラウザが開いてログイン → 自動でCLIに戻る -
API キー:
export ANTHROPIC_API_KEY=sk-ant-xxxxxを設定してからclaudeを実行
参考: セットアップガイド
3. 初期設定
初回起動
cd /your/project
claude
CLAUDE.md(プロジェクト設定ファイル)
プロジェクトに取り組む姿勢を定義するファイルです。 「ドキュメントを深く理解する」「理屈を推測せず確かな情報のみ利用する」 「不明確な情報は質問して確かめる」といった内容が典型例です。 新しくプロジェクトに参加した人に、最初に求める姿勢を思い浮かべると 書きやすいでしょう。
ルール・規約などを追加する場合は、 プロジェクトの文脈だけでは理解が困難なものや、 調べるのにコストがかかるものを優先して書いておくと効果的です。 コードを読めばわかることや、一般的な慣習は書かなくて構いません。
/init # CLAUDE.md を自動生成(コードベースを解析して作成)
ロード順(優先度順):
-
管理者ポリシー(組織レベル)— Enterprise 向け。 IT管理者が
Ansible・MDM・グループポリシーなどの構成管理ツールで
各マシンの保護ディレクトリに配布する (Linux/WSL:
/etc/claude-code/CLAUDE.md、 Windows:C:\Program Files\ClaudeCode\CLAUDE.md)。 一般ユーザーは編集・無効化できず、常に最優先で読み込まれる。 -
プロジェクトルート:
./CLAUDE.mdまたは./.claude/CLAUDE.md - 親ディレクトリ(ツリーを上に辿る)
- ユーザーレベル:
~/.claude/CLAUDE.md -
ローカル個人設定:
./CLAUDE.local.md(gitignore 推奨) -
サブディレクトリルール:
.claude/rules/*.md— 該当ファイルを編集したときだけ読み込まれる
200行以内が推奨。長すぎると遵守率が下がります。
rules フォルダへの切り分け
具体的な指示がある場合は
.claude/rules/ 配下のファイルに書き、
必要なときだけ読み込むようにすると消費トークンを抑えられます。
CLAUDE.md には姿勢・方針を、rules
には個別の具体的な指示を書くイメージです。
rules への切り出しが特に効果的な内容の例:
- まだ広く普及していない最新構文の使い方 — AIの学習データに含まれていない可能性があるため、正しい書き方を明示しておく
- 社内独自のライブラリやフレームワークの使い方
- 特定のファイル種別に対するコーディング規約
ファイルの先頭に 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がセッションをまたいで学習内容(ビルドコマンド、好みのスタイルなど)を自動保存する機能です。
-
保存先:
~/.claude/projects/<project>/memory/ - セッション開始時に先頭200行(または25KB)が自動ロード
/memoryコマンドで確認・編集
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.tsのlogin()で null が返る場合を修正して」のように、ファイル・関数・症状をセットで書くと精度が上がります。 - 成功基準を一緒に伝える
-
「テストが通るまで修正して」「
pnpm buildが通ることを確認して」のように、何をもって完了とするかを明示すると余計な変更が減ります。 - スコープを絞る
- 「このファイルだけ見て」「他のファイルは触らないで」と範囲を明示すると、意図しない変更を防げます。
- 段階的に進める
- 大きな作業は「まず調査だけして」「計画を出して、実装前に確認する」のように分割すると、 方向性のズレを早期に修正できます。
- コンテキストを補足する
- AIが知らないプロジェクト固有の制約(「このライブラリはv2のAPIで動いている」など)は 都度伝えるか、CLAUDE.md に書いておくと効果的です。
5. スキル(カスタムスラッシュコマンド)
スキルとは
独自のスラッシュコマンド(/skill-name)を作れる拡張機能です。
主な利点:
- 特定のタスクに特化したプロンプトをファイルとして定義し、繰り返し使いまわせる
-
model:でメインとは異なるモデルを指定できるため、 軽いタスクは安価なモデルに任せてコストを抑えられる - 必要な時だけロードされるのでコンテキストを節約できる
- 手動呼び出しと自動呼び出し(Claudeが文脈を判断)の両方に対応する
保存場所
| スコープ | パス | 適用範囲 |
|---|---|---|
| 個人 | ~/.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アシスタントです。主な利点:
- 特定のタスクに特化したプロンプトをファイルとして定義し、繰り返し使いまわせる
-
model:でメインとは異なるモデルを指定できるため、 軽いタスクは安価なモデルに任せてコストを抑えられる - 独立したコンテキストウィンドウで動作するため、 大量の中間処理がメインの会話に積まれない。 メインのコンテキスト上限に達しにくくなるため、長い会話を続けやすくなる
エージェントの定義(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: fork と
agent:
を指定すると、スキル実行時に指定したエージェントへ委譲できます。
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サーバー一覧と状態を表示
更新履歴
- 新規作成。