Claude Code概要
Anthropicが開発したエージェント型コーディングツールであるClaude Codeについて学びます。現在ベータ版として研究プレビュー中です。
権限の問題とセキュリティリスクにつながる可能性があるため、sudo npm install -g
は使用しないでください。権限エラーが発生した場合は、Claude Codeの設定で推奨される解決策を参照してください。
Claude Codeは、ターミナルに常駐し、コードベースを理解し、自然言語コマンドを通じてより速くコーディングを支援するエージェント型コーディングツールです。開発環境に直接統合することで、追加のサーバーや複雑なセットアップを必要とせずにワークフローを効率化します。
Claude Codeの主な機能は以下の通りです:
- コードベース全体でのファイルの編集とバグの修正
- コードのアーキテクチャとロジックに関する質問への回答
- テスト、リンティング、その他のコマンドの実行と修正
- gitの履歴検索、マージコンフリクトの解決、コミットとPRの作成
研究プレビュー
Codeはベータ版として研究プレビューとして提供されています。AIとの協業の好み、AIアシスタンスが最も効果的なワークフロー、エージェントエクスペリエンスの改善方法について、開発者からのフィードバックを収集しています。
この初期バージョンはユーザーフィードバックに基づいて進化していきます。今後数週間で、ツール実行の信頼性、長時間実行コマンドのサポート、ターミナルのレンダリング、Claudeの機能に関する自己認識を向上させる予定です。
バグは/bug
コマンドを使用して直接報告するか、GitHubリポジトリを通じて報告してください。
始める前に
システム要件の確認
- オペレーティングシステム: macOS 10.15+、Ubuntu 20.04+/Debian 10+、またはWSL経由のWindows
- ハードウェア: 最小4GB RAM
- ソフトウェア:
- ネットワーク: 認証とAI処理にインターネット接続が必要
- 地域: 対応国でのみ利用可能
WSLインストールのトラブルシューティング
現在、Claude CodeはWindowsで直接実行することはできず、WSLが必要です。WSLで問題が発生した場合:
-
OS/プラットフォーム検出の問題: インストール中にエラーが発生した場合、WSLがWindowsの
npm
を使用している可能性があります。以下を試してください:- インストール前に
npm config set os linux
を実行 npm install -g @anthropic-ai/claude-code --force --no-os-check
でインストール(sudo
は使用しないでください)
- インストール前に
-
Nodeが見つからないエラー:
claude
実行時にexec: node: not found
が表示される場合、WSL環境がWindowsのNode.jsインストールを使用している可能性があります。which npm
とwhich node
で確認できます。これらは/mnt/c/
ではなく/usr/
で始まるLinuxパスを指している必要があります。修正するには、Linuxディストリビューションのパッケージマネージャーまたはnvm
を使用してNodeをインストールしてみてください。
インストールと認証
Claude Codeのインストール
ターミナルで実行:npm install -g @anthropic-ai/claude-code
権限の問題とセキュリティリスクにつながる可能性があるため、sudo npm install -g
は使用しないでください。権限エラーが発生した場合は、Claude Codeの設定で推奨される解決策を参照してください。
プロジェクトに移動
cd your-project-directory
Claude Codeを起動
claude
認証を完了
Consoleアカウントで1回限りのOAuth認証プロセスを実行します。console.anthropic.comでアクティブな課金が必要です。
主な機能とワークフロー
Claude Codeはターミナルで直接動作し、プロジェクトのコンテキストを理解して実際のアクションを実行します。コンテキストにファイルを手動で追加する必要はありません - Claudeは必要に応じてコードベースを探索します。Claude Codeはデフォルトでclaude-3-7-sonnet-20250219
を使用します。
セキュリティとプライバシーを重視した設計
コードのセキュリティは最重要です。Claude Codeのアーキテクチャは以下を保証します:
- 直接のAPI接続: クエリは中間サーバーを経由せずにAnthropicのAPIに直接送信されます
- あなたの作業環境で動作: ターミナルで直接動作します
- コンテキストを理解: プロジェクト構造全体を把握します
- アクションを実行: ファイルの編集やコミットの作成など、実際の操作を実行します
質問から解決まで数秒で
プロジェクトの初期化
初めてのユーザーには以下をお勧めします:
claude
でClaude Codeを起動このプロジェクトを要約して
のような簡単なコマンドを試す/init
でCLAUDE.mdプロジェクトガイドを生成- 生成されたCLAUDE.mdファイルをリポジトリにコミットするようClaudeに依頼
一般的なタスクにClaude Codeを使用する
Claude Codeはターミナルで直接動作し、プロジェクトのコンテキストを理解して実際のアクションを実行します。コンテキストにファイルを手動で追加する必要はありません - Claudeは必要に応じてコードベースを探索します。
不慣れなコードを理解する
Git操作の自動化
コードのインテリジェントな編集
コードのテストとデバッグ
より深い思考を促す
複雑な問題については、Claudeにより深く考えるよう明示的に依頼します:
Claude Codeは、Claude(3.7 Sonnet)が拡張思考を使用している場合に表示します。計画が必要なタスクについては、事前にClaudeに「考える」または「深く考える」よう促すことができます。まずタスクについてClaudeに説明し、プロジェクトからコンテキストを収集させることをお勧めします。その後、計画を作成するために「考える」よう依頼してください。
使用する言葉によってClaudeはより深く考えます。例えば、単に「考える」と言うよりも「よく考える」と言うと、より拡張された思考が引き起こされます。
詳細なヒントについては、拡張思考のヒントを参照してください。
CIとインフラワークフローの自動化
Claude Codeには、ヘッドレス実行用の非インタラクティブモードが付属しています。これは特に、スクリプト、パイプライン、Github Actionsなどの非インタラクティブなコンテキストでClaude Codeを実行する場合に便利です。
非インタラクティブモードで実行するには--print
(-p
)を使用します。このモードでは、カスタムAPIキーを提供するためにANTHROPIC_API_KEY
環境変数を設定できます。
非インタラクティブモードは、Claudeが使用できるコマンドのセットを事前に設定する場合に特に便利です:
コマンドでClaude Codeを制御する
CLIコマンド
コマンド | 説明 | 例 |
---|---|---|
claude | インタラクティブREPLを開始 | claude |
claude "query" | 初期プロンプトでREPLを開始 | claude "このプロジェクトを説明して" |
claude -p "query" | 1回限りのクエリを実行して終了 | claude -p "この関数を説明して" |
cat file | claude -p "query" | パイプされたコンテンツを処理 | cat logs.txt | claude -p "説明して" |
claude config | 設定を構成 | claude config set --global theme dark |
claude update | 最新バージョンに更新 | claude update |
claude mcp | Model Context Protocolサーバーを設定 | チュートリアルのMCPセクションを参照 |
CLIフラグ:
--print
: インタラクティブモードなしで応答を表示--verbose
: 詳細なログを有効化--dangerously-skip-permissions
: 権限プロンプトをスキップ(インターネットのないDockerコンテナ内でのみ)
スラッシュコマンド
セッション内でClaudeの動作を制御します:
コマンド | 目的 |
---|---|
/bug | バグを報告(会話をAnthropicに送信) |
/clear | 会話履歴をクリア |
/compact | コンテキスト空間を節約するために会話を圧縮 |
/config | 設定の表示/変更 |
/cost | トークン使用統計を表示 |
/doctor | Claude Codeインストールの健全性をチェック |
/help | 使用方法のヘルプを表示 |
/init | CLAUDE.mdガイドでプロジェクトを初期化 |
/login | Anthropicアカウントを切り替え |
/logout | Anthropicアカウントからサインアウト |
/pr_comments | プルリクエストのコメントを表示 |
/review | コードレビューをリクエスト |
/terminal-setup | 改行用のShift+Enterキーバインディングをインストール(iTerm2とVSCodeのみ) |
/vim | 挿入モードとコマンドモードを切り替えるvimモードに入る |
権限とセキュリティの管理
Claude Codeは、パワーと安全性のバランスを取るための階層化された権限システムを使用します:
ツールタイプ | 例 | 承認が必要 | ”はい、今後は確認しない”の動作 |
---|---|---|---|
読み取り専用 | ファイル読み取り、LS、Grep | いいえ | 該当なし |
Bashコマンド | シェル実行 | はい | プロジェクトディレクトリとコマンドごとに永続的 |
ファイル変更 | ファイルの編集/書き込み | はい | セッション終了まで |
Claudeが利用可能なツール
Claude Codeは、コードベースを理解し変更するのに役立つ強力なツールセットにアクセスできます:
ツール | 説明 | 権限が必要 |
---|---|---|
AgentTool | 複雑な複数ステップのタスクを処理するサブエージェントを実行 | いいえ |
BashTool | 環境でシェルコマンドを実行 | はい |
GlobTool | パターンマッチングに基づいてファイルを検索 | いいえ |
GrepTool | ファイル内容でパターンを検索 | いいえ |
LSTool | ファイルとディレクトリを一覧表示 | いいえ |
FileReadTool | ファイルの内容を読み取り | いいえ |
FileEditTool | 特定のファイルを対象とした編集を実行 | はい |
FileWriteTool | ファイルを作成または上書き | はい |
NotebookReadTool | Jupyterノートブックの内容を読み取り表示 | いいえ |
NotebookEditTool | Jupyterノートブックのセルを変更 | はい |
プロンプトインジェクションからの保護
プロンプトインジェクションは、攻撃者が悪意のあるテキストを挿入してAIアシスタントの指示を上書きまたは操作しようとする手法です。Claude Codeには、これらの攻撃に対するいくつかの保護機能が含まれています:
- 権限システム: 機密性の高い操作には明示的な承認が必要
- コンテキスト認識分析: リクエスト全体を分析して潜在的に有害な指示を検出
- 入力サニタイズ: ユーザー入力を処理してコマンドインジェクションを防止
- コマンドブロックリスト:
curl
やwget
などのウェブから任意のコンテンツを取得する危険なコマンドをブロック
信頼できないコンテンツを扱う際のベストプラクティス:
- 承認前に提案されたコマンドを確認
- 信頼できないコンテンツを直接Claudeにパイプしない
- 重要なファイルへの提案された変更を確認
- 不審な動作は
/bug
で報告
これらの保護機能は大幅にリスクを低減しますが、どのシステムもすべての攻撃に完全に免疫があるわけではありません。AIツールを使用する際は、常に適切なセキュリティプラクティスを維持してください。
ネットワークアクセスの設定
Claude Codeには以下へのアクセスが必要です:
- api.anthropic.com
- statsig.anthropic.com
- sentry.io
コンテナ化された環境でClaude Codeを使用する場合は、これらのURLをホワイトリストに登録してください。
Claude Codeの設定
ターミナルでclaude config
を実行するか、インタラクティブREPLで/config
コマンドを使用してClaude Codeを設定します。
設定オプション
Claude Codeはグローバルおよびプロジェクトレベルの設定をサポートしています。
設定を管理するには、以下のコマンドを使用します:
- 設定を一覧表示:
claude config list
- 設定を表示:
claude config get <key>
- 設定を変更:
claude config set <key> <value>
- 設定に追加(リスト用):
claude config add <key> <value>
- 設定から削除(リスト用):
claude config remove <key> <value>
デフォルトではconfig
はプロジェクト設定を変更します。グローバル設定を管理するには、--global
(または-g
)フラグを使用します。
グローバル設定
グローバル設定を設定するには、claude config set -g <key> <value>
を使用します:
キー | 値 | 説明 |
---|---|---|
autoUpdaterStatus | disabled またはenabled | 自動更新を有効または無効にする(デフォルト:enabled ) |
preferredNotifChannel | iterm2 、iterm2_with_bell 、terminal_bell 、またはnotifications_disabled | 通知を受け取る場所(デフォルト:iterm2 ) |
theme | dark 、light 、light-daltonized 、またはdark-daltonized | カラーテーマ |
verbose | true またはfalse | bashとコマンドの出力を完全に表示するかどうか(デフォルト:false ) |
自動更新の権限オプション
Claude Codeがグローバルnpmプレフィックスディレクトリ(自動更新に必要)への書き込み権限が不十分であることを検出した場合、このドキュメントページを指すような警告が表示されます。自動更新の問題に関する詳細な解決策については、トラブルシューティングガイドを参照してください。
推奨:新しいユーザー書き込み可能なnpmプレフィックスを作成
このオプションを推奨する理由:
- システムディレクトリの権限を変更しない
- グローバルnpmパッケージ用の専用の場所を作成
- セキュリティのベストプラクティスに従う
Claude Codeは活発に開発中であるため、上記の推奨オプションを使用して自動更新を設定することをお勧めします。
自動更新の無効化
権限を修正する代わりに自動更新を無効にする場合は、以下を使用できます:
プロジェクト設定
プロジェクト設定を管理するには、claude config set <key> <value>
を使用します(-g
フラグなし):
キー | 値 | 説明 |
---|---|---|
allowedTools | ツールの配列 | 手動承認なしで実行できるツール |
ignorePatterns | globパターンの配列 | ツール使用時に無視するファイル/ディレクトリ |
例:
ターミナルセットアップの最適化
Claude Codeは、ターミナルが適切に設定されている場合に最も効果を発揮します。最適な体験を得るには、以下のガイドラインに従ってください。
サポートされているシェル:
- Bash
- Zsh
- Fish
テーマと外観
Claudeはターミナルのテーマを制御できません。これはターミナルアプリケーションによって処理されます。オンボーディング時または/config
コマンドを使用して、いつでもClaude Codeのテーマをターミナルに合わせることができます。
改行
Claude Codeに改行を入力するには、いくつかのオプションがあります:
- クイックエスケープ:
\
に続いてEnterを押して改行を作成 - キーボードショートカット:適切な設定でOption+Enter(Meta+Enter)を押す
ターミナルでOption+Enterを設定するには:
Mac Terminal.appの場合:
- 設定 → プロファイル → キーボードを開く
- “Optionをメタキーとして使用”をチェック
iTerm2とVSCodeターミナルの場合:
- 設定 → プロファイル → キーを開く
- 一般で、左/右Optionキーを”Esc+“に設定
iTerm2とVSCodeユーザー向けのヒント:より直感的な代替手段として、Claude Code内で/terminal-setup
を実行してShift+Enterを自動設定できます。
通知設定
タスク完了時にClaudeからの通知を見逃さないように、適切な通知設定を行います:
ターミナルベル通知
タスク完了時のサウンドアラートを有効にします:
macOSユーザー向け:システム設定 → 通知 → [ターミナルアプリ]で通知権限を有効にすることを忘れないでください。
iTerm 2システム通知
タスク完了時のiTerm 2アラートの設定:
- iTerm 2環境設定を開く
- プロファイル → ターミナルに移動
- “ベルを無音にする”と”アイドル時に通知を送信”を有効にする
- 希望する通知遅延を設定
これらの通知はiTerm 2に固有のものであり、デフォルトのmacOSターミナルでは利用できないことに注意してください。
大きな入力の処理
広範なコードや長い指示を扱う場合:
- 直接貼り付けを避ける:Claude Codeは非常に長い貼り付けられたコンテンツで苦労する可能性があります
- ファイルベースのワークフローを使用:コンテンツをファイルに書き込み、Claudeに読み取りを依頼
- VS Codeの制限に注意:VS Codeターミナルは特に長い貼り付けを切り詰める傾向があります
これらの設定を構成することで、Claude Codeとのよりスムーズで効率的なワークフローを作成できます。
コストの効果的な管理
Claude Codeは各インタラクションでトークンを消費します。通常の使用コストは開発者1人あたり1日5-10ドルですが、集中的な使用時には1時間あたり100ドルを超える可能性があります。
コストの追跡
/cost
を使用して現在のセッションの使用量を確認- 終了時に表示されるコスト概要を確認
- Anthropic Consoleで履歴使用量を確認
- 支出制限を設定
トークン使用量の削減
- 会話を圧縮: コンテキストが大きくなったら
/compact
を使用 - 具体的なクエリを書く: 不必要なスキャンをトリガーする曖昧なリクエストを避ける
- 複雑なタスクを分解: 大きなタスクを焦点を絞ったインタラクションに分割
- タスク間で履歴をクリア:
/clear
を使用してコンテキストをリセット
コストは以下の要因によって大きく変動する可能性があります:
- 分析されるコードベースのサイズ
- クエリの複雑さ
- 検索または変更されるファイルの数
- 会話履歴の長さ
- 会話の圧縮頻度
チーム展開の場合、より広範な展開の前に使用パターンを確立するために小規模なパイロットグループから始めることをお勧めします。
サードパーティAPIとの使用
Claude CodeはAPIプロバイダーに関係なく、Claude 3.7 SonnetとClaude 3.5 Haikuの両方のモデルへのアクセスが必要です。
Amazon Bedrockへの接続
デフォルトのモデルを上書きしたい場合は、ANTHROPIC_MODEL
環境変数を渡すことができます(デフォルトではClaude 3.7 Sonnetが使用されます):
プロキシ経由でClaude Codeにアクセスしたい場合は、ANTHROPIC_BEDROCK_BASE_URL
環境変数を使用できます:
プロンプトキャッシュが有効になっていない場合は、以下も設定します:
標準のAWS SDK認証情報(例:~/.aws/credentials
またはAWS_ACCESS_KEY_ID
、AWS_SECRET_ACCESS_KEY
などの関連環境変数)が必要です。AWS認証情報を設定するには、以下を実行します:
コスト削減と高いレート制限のためのプロンプトキャッシュについては、Amazon Bedrockにお問い合わせください。
ユーザーはAWSアカウントでClaude 3.7 SonnetとClaude 3.5 Haikuの両方のモデルにアクセスする必要があります。モデルアクセスロールがある場合、これらのモデルがまだ利用できない場合は、アクセスをリクエストする必要があるかもしれません。
Google Vertex AIへの接続
デフォルトのモデルを上書きしたい場合は、ANTHROPIC_MODEL
環境変数を渡すことができます(デフォルトではClaude 3.7 Sonnetが使用されます):
プロキシ経由でClaude Codeにアクセスしたい場合は、ANTHROPIC_VERTEX_BASE_URL
環境変数を使用できます:
プロンプトキャッシュが有効になっていない場合は、以下も設定します:
Vertex AI上のClaude Codeは現在us-east5
リージョンのみをサポートしています。プロジェクトがこの特定のリージョンでクォータが割り当てられていることを確認してください。
ユーザーはVertex AIプロジェクトでClaude 3.7 SonnetとClaude 3.5 Haikuの両方のモデルにアクセスする必要があります。
google-auth-libraryを通じて設定された標準のGCP認証情報が必要です。GCP認証情報を設定するには、以下を実行します:
最高の体験を得るには、高いレート制限についてGoogleにお問い合わせください。
開発コンテナのリファレンス実装
Claude Codeは、一貫性のある安全な環境が必要なチーム向けに開発コンテナ設定を提供します。この事前設定されたdevcontainerセットアップは、VS CodeのRemote - Containers拡張機能や同様のツールとシームレスに連携します。
コンテナの強化されたセキュリティ対策(分離とファイアウォールルール)により、無人操作のために権限プロンプトをバイパスするclaude --dangerously-skip-permissions
を実行できます。ニーズに合わせてカスタマイズできるリファレンス実装を提供しています。
devcontainerは実質的な保護を提供しますが、どのシステムもすべての攻撃に完全に免疫があるわけではありません。常に適切なセキュリティプラクティスを維持し、Claudeの活動を監視してください。
主な機能
- 本番環境対応Node.js: 必要な開発依存関係を備えたNode.js 20をベースにしています
- セキュリティ重視の設計: 必要なサービスのみにネットワークアクセスを制限するカスタムファイアウォール
- 開発者フレンドリーなツール: git、生産性向上機能を備えたZSH、fzfなどを含む
- VS Codeとのシームレスな統合: 事前設定された拡張機能と最適化された設定
- セッションの永続性: コンテナの再起動間でコマンド履歴と設定を保持
- どこでも動作: macOS、Windows、Linuxの開発環境と互換性あり
4ステップで始める
- VS CodeとRemote - Containers拡張機能をインストール
- Claude Codeリファレンス実装リポジトリをクローン
- VS Codeでリポジトリを開く
- プロンプトが表示されたら、“Reopen in Container”をクリック(またはコマンドパレット:Cmd+Shift+P → “Remote-Containers: Reopen in Container”)
設定の内訳
devcontainerセットアップは3つの主要なコンポーネントで構成されています:
- devcontainer.json: コンテナ設定、拡張機能、ボリュームマウントを制御
- Dockerfile: コンテナイメージとインストールされるツールを定義
- init-firewall.sh: ネットワークセキュリティルールを確立
セキュリティ機能
コンテナはファイアウォール設定で多層的なセキュリティアプローチを実装しています:
- 精密なアクセス制御: ホワイトリストに登録されたドメイン(npmレジストリ、GitHub、Anthropic APIなど)のみに外部接続を制限
- デフォルト拒否ポリシー: 他のすべての外部ネットワークアクセスをブロック
- 起動時の検証: コンテナ初期化時にファイアウォールルールを検証
- 分離: メインシステムから分離された安全な開発環境を作成
カスタマイズオプション
devcontainer設定はニーズに合わせて適応できるように設計されています:
- ワークフローに基づいてVS Code拡張機能を追加または削除
- 異なるハードウェア環境のためにリソース割り当てを変更
- ネットワークアクセス権限を調整
- シェル設定と開発者ツールをカスタマイズ
次のステップ
Claude Codeチュートリアル
一般的なタスクのステップバイステップガイド
トラブルシューティング
Claude Codeの一般的な問題の解決策
リファレンス実装
開発コンテナのリファレンス実装をクローンします。
ライセンスとデータ使用
Claude CodeはAnthropicの商用利用規約に基づいてベータ研究プレビューとして提供されています。
データの使用方法
データの使用方法について完全な透明性を目指しています。フィードバックを製品とサービスの改善に使用する場合がありますが、Claude Codeからのフィードバックを使用して生成モデルをトレーニングすることはありません。潜在的な機密性を考慮して、ユーザーフィードバックの転写は30日間のみ保存します。
フィードバック転写
Claude Codeに関するフィードバック(使用状況の転写など)を送信することを選択した場合、Anthropicはそのフィードバックを関連する問題のデバッグとClaude Codeの機能改善(例:同様のバグが将来発生するリスクを減らすため)に使用する場合があります。このフィードバックを使用して生成モデルをトレーニングすることはありません。
プライバシー保護
機密情報の限定保持期間、ユーザーセッションデータへのアクセス制限、フィードバックをモデルトレーニングに使用しないという明確なポリシーなど、データを保護するためのいくつかの保護措置を実装しています。
詳細については、商用利用規約とプライバシーポリシーをご確認ください。
ライセンス
© Anthropic PBC. All rights reserved. 使用はAnthropicの商用利用規約に従います。
Was this page helpful?