Claude Code セットアップ — インストール・権限・hooks・MCP を最初の1時間で
Claude Code のシングルパスセットアップ: インストール → 認証 → プロジェクトガイダンス → 権限 → hooks → MCP。毎日使う前に到達すべき状態。
Claude CodeはAnthropicの公式エージェントCLIだ。一度セットアップすれば非常に強力ですが、インストール時に権限モデル・CLAUDE.md・Hooks・MCP を設定しないと、毎日同じ手作業を繰り返すことになる。このガイドでは macOS / Linux / Windows(Git Bash または WSL2) のインストール → 認証 → プロジェクトガイダンス → 権限 → Hooks → MCP を順番に解説する。
設定を後回しにするのではなく、最初の1時間で完成させるのが正解だと考える。以前は「とりあえず動かしてみてから調整しよう」というアプローチをとっていた。いまでは最初のセットアップの質がその後の毎日の体験を決めるからこそ、初回から丁寧に行うことにしている。
対象読者は、git/Nodeに慣れているがClaude Codeを初めて使う方、または整理されていない状態で使っている方だ。
TL;DR
- Node.js 20+ →
npm install -g @anthropic-ai/claude-code→claude→ ブラウザ認証 - プロジェクトルートに
CLAUDE.md(1〜2画面)と.claude/settings.json(権限/env/hooks)を配置 - 最初に知るべき3つのスラッシュコマンド:
/help、/config、/init - コマンドが毎回拒否される場合は、
permissions.allowにパターンを追加 - MCP サーバーは必要になったときだけ追加 — ローカルstdioを優先し、トークンはenvで管理
前提条件
- Node.js 20+ —
node -v。古い?miseまたはnvmでアップグレード - Anthropicアカウント — console.anthropic.com またはClaude.ai Pro/Maxサブスクリプション
- Git — CLIがプロジェクトを検査するために使用。macOSは
/mac/initial-setup参照 - OS: macOS / Linux / Windows(Git BashまたはWSL2推奨; raw PowerShellも動作するがsh系hookとの互換性が下がる)
1. インストール — 5分
1.1 npmグローバルインストール
npm install -g @anthropic-ai/claude-codeパーミッションエラー?
sudoの代わりに、npmのプレフィックスをホームディレクトリに移動してください:mkdir -p ~/.npm-global npm config set prefix ~/.npm-global echo 'export PATH=$HOME/.npm-global/bin:$PATH' >> ~/.zshrc source ~/.zshrc npm install -g @anthropic-ai/claude-code
1.2 初回実行 + 認証
使用したいプロジェクトに cd してから実行する:
cd ~/projects/my-repo
claude初回実行時にブラウザタブが開いてAnthropicの認証が行われる。サインイン後、CLIがチャットを開始する。トークンはOSキーチェーンに保存されるため、毎回再認証は不要だ。
1.3 確認
claude --version
# 0.x.x のように表示される2. 最初に知るべき3つのスラッシュコマンド
CLI内で / から始まるコマンドがスラッシュコマンドだ。最初は3つで十分だ:
| コマンド | 目的 |
|---|---|
/help | 利用可能なコマンド + キーバインド一覧 |
/config | モデル・テーマ・デフォルト権限モード(インタラクティブUI) |
/init | 現在のディレクトリを解析し CLAUDE.md の下書きを生成 |
新しいプロジェクトに初めて入ったら /init を実行 — フォルダ構造・言語・ビルドツールを検査して、改良可能な下書きを生成する。
3. CLAUDE.md — プロジェクトガイダンス(最重要)
CLAUDE.mdはプロジェクトルートに置くMarkdownファイルで、毎セッション開始時に自動ロードされる。ここに書いたルールがセッション全体の最優先事項になる。
良い CLAUDE.md
# プロジェクト — Claudeガイダンス
## ペルソナ
(省略可)役割ヒント。例: 「シニアエンジニアとして差分を厳しくレビューしてください。」
## スタック
- フレームワーク: Next.js 16(App Router)
- 言語: TypeScript strict
- DB: Supabase
## コマンド
- 開発サーバー: `pnpm dev`
- ビルド: `pnpm build`
- テスト: `pnpm test`
## 規約
- `any`禁止(TS strict)
- ファイル名: kebab-case(ルート)、camelCase(ユーティリティ)
- シークレットのハードコード禁止
## Git
- コミット: `[Project] {type}: {desc}` — feat/fix/refactor/...
- mainへの直接push: OK(個人)/ PR必須(チーム)
## 作業原則
1. 5ファイル以上 / 新モジュール / アーキテクチャ変更は事前に計画
2. コード変更後、lint+build+testsが通るまで「完了」と宣言しない
3. シークレット・DBマイグレーション・外部pushは明示的な承認が必要ヒント
- 短く保つ — 1〜2画面。それ以上は
memory/rules/{topic}.mdに記載しCLAUDE.mdからリンクする。 - プロジェクトごとにファイルを作成; クロスプロジェクトのガイダンスは
~/.claude/CLAUDE.mdに。 CLAUDE.mdをgitにコミットすることでチームメンバーや他のマシンでも利用可能になる。
4. .claude/settings.json — 権限・env・hooks
実行時の動作を制御するファイルだ。最も頻繁に編集するのは permissions ブロックだ。
4.1 スケルトン
{
"permissions": {
"allow": [
"Bash(git status:*)",
"Bash(git diff:*)",
"Bash(pnpm test:*)",
"Read(/Users/me/projects/**)"
],
"deny": [
"Bash(rm -rf /:*)",
"Bash(sudo *)"
]
},
"env": {
"EDITOR": "code --wait"
},
"hooks": {
"SessionStart": [
{
"matcher": "startup",
"hooks": [
{ "type": "command", "command": "echo '[Session start] $(date)'" }
]
}
]
}
}4.2 パーミッションルール(permissions.allow / deny)
Bash(...)が毎回拒否される場合は、allowにパターンとして追加- パターンはプレフィックスマッチ —
Bash(pnpm:*)はpnpmから始まる全コマンドを許可 - 危険なパターン(
rm -rf、sudo、curl … | bash)は安全のためにdenyに固定
💡 よく使う読み取り専用コマンドをまとめて追加するには、CLI内の組み込みスキル
/fewer-permission-promptsを実行 — トランスクリプトをスキャンしてallowリストを提案する。
4.3 ダウンロード可能なテンプレート
使用前に検証してください:
settings.example.json# 1. ダウンロード
curl -fsSL https://devalice.jaceclub.com/assets/ai-agents/claude-code/settings.example.json -o .claude/settings.example.json
# 2. SHA-256検証
shasum -a 256 .claude/settings.example.json
# expected: 22898a20ade2b3497f8299a8ca6139112c476e0a0a4075e1a05123a02c8266ac
# 3. 確認後、所定の場所にコピー
less .claude/settings.example.json
cp .claude/settings.example.json .claude/settings.jsonシークレット(APIキーなど)を
settings.jsonに貼り付けないでください。OSのenvまたはgitignoreされた.envから読み込んでください。
4.4 グローバル vs プロジェクト vs ローカル
| ファイル | 場所 | 用途 |
|---|---|---|
~/.claude/settings.json | ホーム | クロスプロジェクトのデフォルト(例: 常に git status を許可) |
<project>/.claude/settings.json | プロジェクトルート(git管理) | チーム共有の権限/hooks |
<project>/.claude/settings.local.json | プロジェクトルート(.gitignore) | マシン固有のオーバーライド(個人トークン、パス) |
5. Hooks — 自動トリガー
Hook は特定のイベントでシェルコマンドを実行する。主なイベント:
| イベント | タイミング |
|---|---|
SessionStart | セッション開始 |
PreToolUse | ツール呼び出し直前(検証/ブロック可能) |
PostToolUse | ツール呼び出し直後 |
Stop | Claudeの応答終了 |
UserPromptSubmit | ユーザーがプロンプトを送信した後 |
例1: セッション開始時に環境を表示する
{
"hooks": {
"SessionStart": [
{
"matcher": "startup",
"hooks": [
{
"type": "command",
"command": "printf '[Session start] %s\\nBranch: %s\\n' \"$(date '+%F %T')\" \"$(git branch --show-current 2>/dev/null || echo none)\""
}
]
}
]
}
}例2: シークレットファイルへの書き込みをブロックする
PreToolUse は終了コードでブロックできる。(1 = 警告、2 = ブロック)
{
"hooks": {
"PreToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "jq -r '.tool_input.file_path' | grep -qE '\\.env$|secrets/|private_key' && { echo 'BLOCKED: secret file'; exit 2; } || exit 0"
}
]
}
]
}
}仕様の詳細:
/help→ ドキュメントリンク、または公式ドキュメント。デバッグ時は、まず1行のechoHook で発火を確認してください。
6. MCP サーバー — 必要なときだけ
MCP(Model Context Protocol)はClaude Codeに外部ツールを公開するための標準だ。GitHub、Slack、Linear、Figmaなどのインテグレーションがあり、独自のサーバーを書くこともできる。
登録
.claude/settings.jsonの mcpServers に追加:
{
"mcpServers": {
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp"],
"env": {}
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
}
}
}
}${GITHUB_TOKEN} はシェルのenvから展開されます — シークレットを settings.json に書かないよう export GITHUB_TOKEN=... を .zshrc または .envrc(direnv)に記載してください。
セキュリティ
- ローカルstdioサーバーを優先(
command: "npx"またはローカルバイナリ)— ネットワーク型RPCサーバーより攻撃面が小さい - 検証済みパッケージのみ —
@modelcontextprotocol/*、@upstash/*など。未知のパッケージは先に確認 - シークレットはenvで —
settings.jsonはgitにコミットされることが多い; トークンをインラインに書かない
7. IDE 統合 — VS Code · Cursor
Claude CodeはCLIだが、IDE内でも快適に使える:
- VS Code / Cursor 統合ターミナル —
claudeを実行するだけ。IDEでファイルを編集し、ターミナルでチャット。最もシンプル。 - VS Code 拡張機能 — マーケットプレースで「Claude Code」を検索してサイドパネルで開く。
- JetBrains(IntelliJ/PyCharm/…)— JetBrainsマーケットプレースでプラグインを入手可能。
すでにAIネイティブエディタ(Cursor、Windsurf)を使っている場合は、「多ファイル / シェル / git」タスクにClaude Codeを、インラインコーディングにはエディタ内AIを使い分けましょう。
8. 確認 — セットアップは完了している?
# 1. インストール
claude --version
# 2. プロジェクトセットアップファイル
ls -la CLAUDE.md .claude/settings.json
# 3. グローバルセットアップ(省略可)
ls -la ~/.claude/settings.json 2>/dev/null && echo "global OK" || echo "no global"
# 4. 認証 — `claude`を実行してウェルカムバナーを確認
# > claude
# │ Welcome to Claude Code!4つ全部グリーンなら完了だ。最初の実際のタスク: プロジェクトディレクトリで claude を実行し、「このリポジトリの構造を1段落で説明してください」と聞いてみましょう。
9. トラブルシューティング
command not found: claude
- npmグローバルbinが
PATHにありません。npm config get prefixでパスを確認 →<prefix>/binを~/.zshrc/~/.bashrcに追加 - Windows Git Bash:
npm config get prefixはC:\Users\<you>\AppData\Roaming\npmであるべきで、そのパスがPATH上にある必要がある
初回実行でブラウザ認証が開かない
- ヘッドレス環境(SSH、WSL2): CLIに表示されたURLをブラウザに手動でコピー
- 認証がまだ失敗する場合は、
~/.claude/下のトークンキャッシュを削除して再試行
毎回のBashコマンドで「Permission?」プロンプトが出る
- よく使う読み取り専用コマンドを
.claude/settings.jsonのpermissions.allowに追加 - または
/config→ パーミッションモードをacceptEdits(編集を自動承認、シェルは引き続き確認)に設定
Hook が発火しない
# 1. JSONは有効?
cat .claude/settings.json | jq .
# 2. コマンドを簡単にして確認
# command: "echo HOOK_FIRED >> /tmp/claude-hook.log"JSON が壊れていると、Hook セクションが静かに無効化される。
MCP サーバーが表示されない
- CLI内の
/mcp— 登録済みサーバーとステータスを確認 commandがPATHにあるか確認(which npx)- ログは
~/.claude/logs/またはstderr
10. 次のステップ
このガイドは「Claude Codeを毎日使える状態」で終わりる。その後は:
- ワークフローパターン — マルチエージェント、プランモード、Subagents(近日公開)
- Cursorとの比較 —
/ai-agents/cursor-setup - 高度な Hooks — メモリ同期の SessionStart、セキュリティゲートの PreToolUse
- 独自MCP サーバーの書き方 — 内部ツールの公開(近日公開)
参考リンク
- Claude Code 公式ドキュメント
- MCP 公式
- Anthropic コンソール — APIキー / 使用状況
- Claude Code GitHub Issues — バグ報告
変更履歴
- 2026-05-12 — 初版英語翻訳(devAlice M2 i18n シード)