Claude Codeを徹底解説してみた(前編)
こんちには。
データ事業本部 機械学習チームの中村(nokomoro3)です。
今回はClaude Codeを徹底解説したいと思います。
本記事について
私は元々はCursorを使っており、Claude Codeは必要なのか半信半疑だったのですが、試してみた感じエージェントの挙動はかなり期待通りな印象です。実際にCursorではコード補完やCmd + Kをメインに、エージェント的な動きはClaude Codeやるように最近使い分けを始めています。
使用感は主観に寄るところも大きいので文面でお伝えするのは難しいですが、Claude Codeのことを少しでも知ってもらい多くの人に使ってもらるよう、一通りの使い方を記事にしました。
以下の内容で記載しており、盛りだくさんとなっております。
- Claude Codeの基本的なセットアップ方法から解説
- 基礎的な使い方から応用(Permission、GitHub連携など)まで使い方を解説
- コマンド一覧についても一通り一覧で説明
なおBedrock版については既に丁寧な解説があったので今回は試していません。
- Bedrock版の解説はしない
なお文字数が多すぎたので記事を2つに分けてます。後編は以下を参照ください。
サブスクリプション(定額プラン)について
使用開始するにあたって、サブスクリプションについて確認しておきます。
Claude Codeを使用するにあたっては、ProとMaxのサブスクリプションが存在しています。
各プランの違いについては以下を参照ください。
項目 | プロプラン | マックスプラン (5x Pro) | マックスプラン (20x Pro) |
---|---|---|---|
料金 | $20/月 | $100/月 | $200/月 |
使用制限 (Claude) (5時間ごと) |
約45通 | 約225通 | 約900通 |
使用制限 (Claude Code) (5時間ごと) |
約10~40通 | (記載なし) | 約200-800通 |
モデルアクセス | Sonnet 4 (Opus 4はClaude Codeで使用不可) | Sonnet または Opus 4 (Claude Code上で使用可能、/model コマンドで切り替え) |
Sonnet または Opus 4 (Claude Code上で使用可能、/model コマンドで切り替え) |
最適な用途 | 小規模なリポジトリでの軽作業 (通常 1,000 行未満のコード) | 大規模なコードベースでの日常的な使用、またはパワーユーザー | 大規模なコードベースでの日常的な使用、またはパワーユーザー |
元々はClaude CodeがMax($100/月)でしか使えなかったのですが、6月5日にPro($20/月)で使えるようになったことで、より使用する人が拡大したという印象です。
また2月のプレビュー開始時にはCLI単体という印象でしたが、5月にGAされた段階でVSCodeなどとのIDEとの統合が加わったことも、勢いが増したベースとなっていると思います。
これらのサブスクリプションには、Claude CodeだけじゃなくてClaude(要するにWebブラウザでClaudeとチャットする機能)なども含んでいます。
今回はサブスクリプションのProを使用する前提でセットアップしていきます。
サブスクリプションは定額ですが、従量課金(Anthropic API)でAPIキーを設定して使うこともでき、GitHub ActionsでClaudeを使う場合はAPIキーが必要になるため、ご注意ください。
使用する環境
今回はWindowsのWSL環境で作業します。
対応しているのはMacOSまたはLinux(WSL含む)となっています。
Operating Systems: macOS 10.15+, Ubuntu 20.04+/Debian 10+, or Windows via WSL
Claude Codeのインストール
適当な作業用フォルダを作成します。(VSCode等で作業するためで、Claude Codeのインストール自体には作業用フォルダは不要ですが)
mkdir -p ~/claude-code-trial
cd ~/claude-code-trial
nodeとnpmのバージョンを残しておきます。
node --version
# v22.13.1
npm --version
# 10.9.2
Claude Codeのインストールは以下のみでOKです。
npm install -g @anthropic-ai/claude-code
claude --version
# 1.0.24 (Claude Code)
今更で恐縮ですが、 claude
で呼び出す対話型REPLがClaude Codeを指しています。
初回セットアップ
claude
でREPL(対話型の実行環境)を起動させることができます。
claude
初回起動時は、いくつか質問がくるのでそちらにこたえていきます。
まずテーマの選択は「Dark mode」にしました。
╭──────────────────────────╮
│ ✻ Welcome to Claude Code │
╰──────────────────────────╯
Let's get started.
Choose the text style that looks best with your terminal:
To change this later, run /theme
❯ 1. Dark mode
1. Light mode
2. Dark mode (colorblind-friendly)
3. Light mode (colorblind-friendly)
4. Dark mode (ANSI colors only)
5. Light mode (ANSI colors only)
プランの選択です。定額のサブスクリプションか、従量課金をここで選択します。
今回はサブスクリプションのProを使うので、「1. Claude account with subscription」を選びます。
Claude Code can now be used with your Claude subscription or billed based on API usage through your Console account.
Select login method:
❯ 1. Claude account with subscription
Starting at $20/mo for Pro, $100/mo for Max - Best value, predictable pricing
2. Anthropic Console account
API usage billing
ブラウザのリンクが表示されるので、自動で開かない場合はアクセスします。
Browser didn't open? Use the url below to sign in:
https://claude.ai/oauth/authorize?code=...(以降略)
Claudeにサインインしたことが無ければ、以下の画面に従ってサインインします。
年齢確認を進めます。
個人用で今回は進めます。
プランを選択するようにメッセージが表示されますので、ここで「Pro」を選択します。
支払い手続きを進めます。
その後、以下のように認証コードが表示されると思います。(支払い手続きを挟んだ場合、別のページに遷移する可能性もあるので、その場合は最初のリンクを踏みなおしてください)
認証コードをコンソールに戻って貼ります。
Paste code here if prompted > {ここに認証コードを貼る}
ログインに成功することを確認します。Enterで次に進みます。
Logged in as {メールアドレス}
Login successful. Press Enter to continue…
以下は呼んで次に進みます。
Security notes:
1. Claude can make mistakes
You should always review Claude's responses, especially when
running code.
2. Due to prompt injection risks, only use it with code you trust
For more details see:
https://docs.anthropic.com/s/claude-code-security
Press Enter to continue…
ターミナルの設定は一旦推奨のままで受け入れます。
Use Claude Code's terminal setup?
For the optimal coding experience, enable the recommended settings
for your terminal: Shift+Enter for newlines
❯ 1. Yes, use recommended settings
2. No, maybe later with /terminal-setup
今のフォルダにアクセスしてよいか聞かれます。今回は作業用フォルダを準備したのでOKで進みます。
Do you trust the files in this folder?
/home/nakamura/claude-code-trial
Claude Code may read files in this folder. Reading untrusted files may lead Claude Code to behave in an unexpected ways.
With your permission Claude Code may execute files in this folder. Executing untrusted code is unsafe.
https://docs.anthropic.com/s/claude-code-security
❯ 1. Yes, proceed
2. No, exit
以下は読んで進みます。
Tips for getting started:
1. Ask Claude to create a new app or clone a repository
2. Use Claude to help with file analysis, editing, bash commands and git
3. Be as specific as you would with another engineer for the best results
4. ✔ Run /terminal-setup to set up terminal integration
※ Tip: Start with small features or bug fixes, tell Claude to propose a plan, and verify its suggested edits
VSCodeのIDEが自動的にインストールされた旨が今回は表示されました。
🎉 Claude Code extension installed in VS Code!
Version: 1.0.24
Quick start:
• Press Cmd+Esc to launch Claude Code
• View and apply file diffs directly in your editor
• Use Ctrl+Alt+K to insert @File references
For more information, see https://docs.anthropic.com/s/claude-code-ide-integrations
Claude Codeが以下のように起動すれば成功です!
╭───────────────────────────────────────────────────╮
│ ✻ Welcome to Claude Code! │
│ │
│ /help for help, /status for your current setup │
│ │
│ cwd: /home/nakamura/claude-code-trial │
╰───────────────────────────────────────────────────╯
※ Tip: Did you know you can drag and drop image files into your terminal?
╭───────────────────────────────────────────────────────────────────────────────────────╮
│ > │
╰───────────────────────────────────────────────────────────────────────────────────────╯
? for shortcuts
以降はこの画面上でClaudeへの依頼や、スラッシュコマンドを実行できます。
使用方法(基礎編)
基本的なリクエスト
REPLで指示を出すと、Claude Codeがコード生成などを実行します。
> boto3でs3のバケット一覧を取得する処理をmain.pyに作成してください。
以下のようなレスポンスが返ってくるはずです。
● boto3を使用してS3のバケット一覧を取得するmain.pyを作成します。
● Write(main.py)
╭───────────────────────────────────────────────────────────────────────────────────────╮
│ Create file │
│ ╭───────────────────────────────────────────────────────────────────────────────────╮ │
│ │ main.py │ │
│ │ │ │
│ │ import boto3 │ │
│ │ │ │
│ │ def list_s3_buckets(): │ │
│ │ s3 = boto3.client('s3') │ │
│ │ │ │
│ │ try: │ │
│ │ response = s3.list_buckets() │ │
│ │ buckets = response['Buckets'] │ │
│ │ │ │
│ │ print("S3 Buckets:") │ │
│ │ for bucket in buckets: │ │
│ │ print(f"- {bucket['Name']} (Created: {bucket['CreationDate']})") │ │
│ │ │ │
│ │ return buckets │ │
│ │ │ │
│ │ except Exception as e: │ │
│ │ print(f"Error retrieving S3 buckets: {e}") │ │
│ │ return [] │ │
│ │ │ │
│ │ if __name__ == "__main__": │ │
│ │ list_s3_buckets() │ │
│ ╰───────────────────────────────────────────────────────────────────────────────────╯ │
│ Do you want to create main.py? │
│ ❯ 1. Yes │
│ 2. Yes, and don't ask again this session (shift+tab) │
│ 3. No, and tell Claude what to do differently (esc) │
│ │
╰───────────────────────────────────────────────────────────────────────────────────────╯
初期設定では、このようにファイルの作成等はユーザに許可を求めるモードとなっています。
Yesを選択すると実装を開始します。
● Write(main.py)
⎿ Wrote 21 lines to main.py
import boto3
def list_s3_buckets():
s3 = boto3.client('s3')
try:
response = s3.list_buckets()
buckets = response['Buckets']
print("S3 Buckets:")
… +11 lines (ctrl+r to expand)
● S3バケット一覧を取得するmain.pyを作成しました。このスクリプトはboto3を使用してS3バ
ケットの一覧を取得し、名前と作成日時を表示します。
セッションを再開する方法
誤ってターミナルを閉じてしまった場合などでも、もちろん過去の履歴から再開することができます。
まずその前にセッションから抜けるには、 /exit
コマンドを実行します。
> /exit
再開するには、大きく2種類の方法があります。
claude -c
orclaude --continue
: 最新のセッションから再開claude -r
orclaude --resume
: セッションを選択して再開
今回は後者を紹介します。
claude -r
を実行すると、以下のようなセッション選択画面に遷移します。
claude -r
Modified Created # Messages Summary
❯ 1. 3m ago 3m ago 1 Caveat: The messages below were generated by ...
2. 3m ago 8m ago 3 Cursor IDE Connection Established
選択してEnterを押せば、そこから再開することができます。
モードの切り替え
「shift+tab」により、先ほどのモードを以下の中から切り替えることができます。
デフォルトは以下のようになっています。
このモードでは、基本的には読み込み系の権限のみが自動的に許可されている状態、と理解して大丈夫そうです。
「shift+tab」を入力すると、「auto-accept edits on」となります。
「auto-accept edits on」は、デフォルトに加えてファイルの作成や変更等が許可されている状態となります。
ただし、この状態でもまだコマンドの実行や、Web検索についてはユーザのAccpetを求めてくるモードとなります。
もう一度「shift+tab」を入力すると、「plan mode on」となります。
「plan mode on」は、ファイルの作成や変更前に事前に計画を考えてくれるモードです。
Planモードは割と最近リリースされたのですが、タスクの実行前に方針を立ててくれるモードとなっており、かなり期待通りの挙動をしてくれます。
コマンドの実行等含めて、自動的に実行して欲しい場合は、後述のパーミッションの設定を確認ください。
CLAUDE.md(Rulesのようなもの)を作成する
Claude Codeでは、CursorやClineでいうところのRulesに該当するものが、memoryという用語で備わっています。
memoryには、コーディングスタイルのガイドラインや、良く使用するコマンドなど、Claude Codeのセッションを跨いだ共通のふるまいを記憶させることができます。
memoryの種類は以下の3つに分かれています。
メモリーの種類 | 場所 | 使用目的 | 使用例 |
---|---|---|---|
プロジェクトメモリー | ./CLAUDE.md |
チーム共有のプロジェクト指示書 | プロジェクトアーキテクチャ、コーディング標準、共通ワークフロー |
ユーザーメモリ | ~/.claude/CLAUDE.md |
すべてのプロジェクトの個人設定 | コードスタイル設定、個人用ツールショートカット |
プロジェクトメモリー(ローカル) | ./CLAUDE.local.md |
プロジェクト固有の個人設定 | (非推奨、下記参照) サンドボックスのURL、好みのテストデータ |
Claude Codeの優れている点は、このmemoryを /init
コマンドを実行することで、コードベースを解析して自動で作成してくれる点です。
/init
コマンドを実行すると、コードベースを解析して CLAUDE.md
ファイルを作成します。
> /init
● I'll analyze the codebase and create a CLAUDE.md file to help future instances of Claude
Code work effectively in this repository.
● Write(CLAUDE.md)
╭──────────────────────────────────────────────────────────────────────────────────────────────╮
│ Create file │
│ ╭──────────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ CLAUDE.md │ │
│ │ │ │
│ │ # CLAUDE.md │ │
│ │ │ │
│ │ This file provides guidance to Claude Code (claude.ai/code) when working with code in │ │
│ │ this repository. │ │
│ │ │ │
│ │ ## Commands │ │
│ │ │ │
│ │ ### Running the Application │ │
│ │ ```bash │ │
│ │ python main.py │ │
│ │ ``` │ │
│ │ │ │
│ │ ## Architecture │ │
│ │ │ │
│ │ This is a simple Python project with a single main.py file that demonstrates S3 bucket │ │
│ │ listing functionality using boto3. │ │
│ │ │ │
│ │ ## Dependencies │ │
│ │ │ │
│ │ - boto3: AWS SDK for Python │ │
│ │ - Requires AWS credentials to be configured │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────╯ │
│ Do you want to create CLAUDE.md? │
│ ❯ 1. Yes │
│ 2. Yes, and don't ask again this session (shift+tab) │
│ 3. No, and tell Claude what to do differently (esc) │
│ │
╰──────────────────────────────────────────────────────────────────────────────────────────────╯
デフォルトだと英語で作成されてしまいますので、日本語で作成するという指示を与えることもできます。
> /init "日本語で作成してください"
● 現在のコードベースを分析してCLAUDE.mdファイルを作成します。
● Write(CLAUDE.md)
╭──────────────────────────────────────────────────────────────────────────────────────────────╮
│ Create file │
│ ╭──────────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ CLAUDE.md │ │
│ │ │ │
│ │ # CLAUDE.md │ │
│ │ │ │
│ │ This file provides guidance to Claude Code (claude.ai/code) when working with code in │ │
│ │ this repository. │ │
│ │ │ │
│ │ ## コマンド │ │
│ │ │ │
│ │ ### アプリケーションの実行 │ │
│ │ ```bash │ │
│ │ python main.py │ │
│ │ ``` │ │
│ │ │ │
│ │ ## アーキテクチャ │ │
│ │ │ │
│ │ boto3を使用したAWS S3バケット一覧取得機能を持つシンプルなPythonスクリプトです。main.pyフ │ │
│ │ ァイル一つで構成されています。 │ │
│ │ │ │
│ │ ## 依存関係 │ │
│ │ │ │
│ │ - boto3: AWS SDK │ │
│ │ - AWS認証情報の設定が必要 │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────╯ │
│ Do you want to create CLAUDE.md? │
│ ❯ 1. Yes │
│ 2. Yes, and don't ask again this session (shift+tab) │
│ 3. No, and tell Claude what to do differently (esc) │
│ │
╰──────────────────────────────────────────────────────────────────────────────────────────────╯
Yesを選択すると、 CLAUDE.md
が作成されます。
● Write(CLAUDE.md)
⎿ Wrote 19 lines to CLAUDE.md
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in
this repository.
## コマンド
### アプリケーションの実行
```bash
python main.py
```
… +9 lines (ctrl+r to expand)
● CLAUDE.mdファイルを日本語で作成しました。
ショートカットについて
ショートカットは ?
キーを打つと出力されます。
! for bash mode double tap esc to undo
/ for commands shift + tab to auto-accept edits
@ for file paths ctrl + r for verbose output
# to memorize \⏎ for newline
分かりにくいのですが、8つのショートカットが2列で表示されています。
ここまでで既に /
などは使用していますが、それぞれの説明を以下に記載しておきます。
操作 | 内容 |
---|---|
! for bash mode | claudeのREPL上で、lsやcdなどのコマンドを実行することができます |
/ for commands | スラッシュコマンドを実行できます |
@ for file paths | ファイルのコンテキストを指定できます |
# to memorize | memoryに追記を行うことができます |
duble tap esc to undo | Escキーの2連続押しで、直前の実行を元に戻すことができます |
shift + tab | 前述の通りにモードの切り替えが行えます |
ctrl + r for verbose output | 直前の実行の出力の詳細を確認できます |
\⏎ for newline | バックスラッシュ後にEnterを入力することで、途中で改行ができます |
この中で例えば、memoryに追記する例を以下に示します。
# Pythonの関数では必ず型アノテーションを入れてください。
すると、どのmemoryに追加するか聞かれるので、選択をします。
╭──────────────────────────────────────────────────────────────────────────────────────────────╮
│ │
│ Where should this memory be saved? │
│ │
│ ❯ 1. Project memory Saved in ./CLAUDE.md │
│ 2. User memory Saved in ~/.claude/CLAUDE.md │
│ │
│ Example project memory: “Run lint with the following command after major edits: npm run │
│ lint” │
│ │
╰──────────────────────────────────────────────────────────────────────────────────────────────╯
今回はProject memoryを選択したので、 CLAUDE.md
に以下が追記されていることを確認できました。
## 開発ガイドライン
- Pythonの関数では必ず型アノテーションを入れてください。
IDEとの統合
Claude CodeはIDEとの統合もサポートしています。
(5月のGA時にIDEとの統合が発表されたことも、Claude Codeが勢いを増した要因と感じています)
サポートしているIDEは以下にも記載がありますが、フォークを含むVSCodeと、JetBrainsのIDEに対応しています。
(なのでCursorなども対象です)
VSCodeとの統合でサポートしている機能は以下となっています。
機能 | 内容 |
---|---|
(1) 拡張機能の自動インストール | VSCodeのターミナル内からClaude Codeを起動すると、自動的に拡張機能を検出しインストールする |
(2) キーボードショートカット | VSCode側からAlt+Cmd+K(Macの場合)またはCtrl+Alt+K(Windows/Linuxの場合)のショートカットに対応し、選択したコードをClaudeのプロンプトに挿入できる |
(3) コンテキストの選択 | VSCode側で選択されたテキストが、自動的にClaudeのコンテキストに追加される |
(4) タブ認識 | Claudeは、エディタで開いているファイルをコンテキストとして認識できる |
(5) linterの結果やエラー内容の共有 | VSCode側からのエラー (リント、構文など) は、作業中に自動的にクロードと共有される |
(6) 差分表示 | コードの変更が、ターミナルではなくVSCode側の差分ビューアに直接表示されます |
(3)~(6)は、IDE側とClaude Code側を関連付ける必要があります。
関連付けの注意点として以下が挙げられます。
- 既にIDEを起動しているフォルダの配下で、Claude Codeが起動していること
- IDEのウィンドウとClaude Codeのターミナルは1対1であること(別の方を紐づけると、既に紐づけられていたものがdisconnectedとなります)
関連付けを試してみます。今は以下のように関連付けられてないとします。
ここで /ide
のコマンドを実行すると、以下のようにどのIDEに関連付けるかを選択する画面となります。
上記でIDEを選択すると、以下のように右下に緑のマークや文字が表示され、接続された状態となります。
この状態でIDE側で、行の選択などを実施すると、コンテキストとして認識されている行が右下に表示されるようになります。
まとめ
いかがでしたでしょうか。
本記事がClaude Codeをこれから使おうと思ってる方のお役に立てば幸いです。
なお冒頭にも申し上げましたが、本記事は後編もありますのでそちらもぜひ参照ください。