Claude Codeでも同じアプリを作ってみた——Clineとの違いはエージェントじゃなかった
同じお題をClaude Codeで
前回は Clineを試した ので、今回は同じお題を Claude Code でやってみます。ターミナル上で動くAnthropicのAIエージェントです
同じ一文——「画像をアップロードするとプレビューを表示し、AIが自動でキャプションを生成するアプリを作成してください」——を投げて、Clineと何が違うのかを見てみます
事前準備:開発環境を整える
Claudeの契約
Claude AIのサブスクリプションが必要。
- https://claude.ai/ からアカウント登録
- ProプランまたはMaxプランにアップグレード
料金プラン(2025年6月25日時点)
-
Proプラン:月額 $20(年間契約の場合は月あたり $17)
- Sonnet 4 が利用可能(Opus 4 は利用不可)
-
Maxプラン:使用量に応じて月額 $100(Proの約5倍)、または $200(Proの約20倍)
- Sonnet 4 と Opus 4 の両方が利用可能
私はMaxプランを使っていますが、Proプランでも問題なく動きます
参考リンク
環境別セットアップ
Claude Codeの動作要件は環境によって異なる
Windows環境での手順
Windows環境では、WSL(Windows Subsystem for Linux)上で動かす
WSLとUbuntuのセットアップ
WSLが有効になっていることが前提。Claude Codeの動作にはUbuntu 20.04以降が必要。
-
管理者権限でPowerShellまたはコマンドプロンプトを開く
-
Ubuntu-24.04をインストール
Claude Codeの要件(Ubuntu 20.04以降)を満たすため、最新のUbuntu-24.04を入れる。
(利用可能なディストリビューションはwsl --list --onlineで確認できる)wsl --install -d Ubuntu-24.04 -
Ubuntuのユーザーアカウントを作成
インストールが完了すると、デフォルトユーザーの作成を求められる。ユーザー名、パスワードの順に入力。 -
インストール完了の確認
入力が完了するとWSL上のUbuntu-24.04が立ち上がる。exitでログアウトしてコマンドプロンプトに戻る。再度入る場合はwsl -d Ubuntu-24.04。 -
curlのインストール
この後のnvmインストールで使うため、curlを入れておく。sudo apt-get install curl
Node.js環境の設定
Claude CodeはNode.js 18以上が必要。
環境別実行方法
-
Windows環境の場合:
PowerShellまたはコマンドプロンプトでwslコマンドを実行してWSL内のターミナルで以下を実行 -
macOS・Linux環境の場合:
ターミナルで直接実行
-
NVM(Node Version Manager)をインストール
Node.jsのバージョン管理ツール。プロジェクトごとにバージョンを切り替えられる
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
exec $SHELL
- Node.jsをインストール
nvm install --lts
Claude Codeのインストールとセットアップ
Claude Codeをインストールする。
インストール
環境別実行方法
-
Windows環境の場合:
WSLのUbuntu上で実行 -
macOS・Linux環境の場合:
ターミナルで直接実行
- Claude Codeをインストール
npm install -g @anthropic-ai/claude-code
- インストール確認
claude --version
バージョンが表示されればOK(2025年7月8日時点の最新は1.0.43)。
認証設定
- ログイン開始
claude "/login"
-
ターミナル表示スタイルを選択
指示に従ってお好みのスタイルを選ぶ。
-
認証方法を選択
サブスクリプション(ProまたはMaxプラン)を使うので、「1」を選択。
- ブラウザ認証
- ブラウザが自動起動するので、Anthropicアカウントでログイン
- ブラウザが起動しない場合は、表示されているURLを直接開く
- 承認依頼が表示されるので、承認
- 認証トークンの入力
- 承認完了後に表示される認証トークンをコピー
- ターミナルに戻り、トークンを入力
- セットアップ完了
- 認証が成功したらEnterキーで続行
- セキュリティに関する注意事項が表示される。Enterキーで続行
-
/exitコマンドでClaude Codeを終了
これで準備は完了
アプリケーションの作成
前回のClineの記事と同じお題——画像キャプション生成アプリを作る。
プロジェクトの作成
- プロジェクトディレクトリを作成
mkdir ai-caption-app-claude
cd ai-caption-app-claude
mkdir tests
-
テスト用画像の配置
E2Eテスト用の画像tests/sample.jpgを配置しておく。Playwrightのテストで使う。
Windows環境の場合:WSLのディレクトリは、エクスプローラーのアドレスバーに\\wsl$を入力して開けます。
プロジェクトを開く
Windows環境での手順
-
Cursor拡張機能をインストール
拡張機能でCursor Remote WSLを検索してインストール。
-
WSLに接続
Cmd/Ctrl + Shift + Pでコマンドパレットを開き、WSL: Connect to WSL using Distroと入力してUbuntu-24.04を選択。

-
接続確認
接続が成功すると、Cursor左下にWSL: Ubuntu-24.04と表示される。
-
プロジェクトディレクトリを開く
WSL接続が完了したら、Cursorの「Open project」からプロジェクトディレクトリを開く。

先の手順で作成したai-caption-app-claudeディレクトリを選択。
macOS・Linux環境での手順
macOS・Linux環境では、Cursorで直接プロジェクトディレクトリを開ける。
先の手順で作成した ai-caption-app-claude ディレクトリを開く。
プロジェクト設定ファイルの作成
プロジェクトのガイドラインを./CLAUDE.mdに記載する。Clineの.clinerulesと同じ役割で、技術スタックや設計方針を伝えるファイル。
前回とほぼ同じ内容だが、今回はE2Eテストの要件とWSL上でのテスト実行の注意点を追加している。
./CLAUDE.mdはプロジェクト単位の設定だが、全プロジェクト共通の設定も可能。詳細は公式ドキュメントで。
# プロジェクト概要
## 技術スタック
- フロントエンド: Vanilla JavaScript, HTML, CSS(外部ライブラリなし)
- バックエンド: Node.js, Express
- 画像アップロード: multer
- AI連携: @google/generative-ai
- モデル: gemini-2.5-flash(画像入力対応)
- 環境変数: dotenv
- E2Eテスト: Playwright
## プロジェクト構造
- /public: フロントエンド静的ファイル
- /: server.jsなどのバックエンド
- /tests: Playwrightのテストファイル
## コーディングガイドライン
### 一般
- コードはクリーンで読みやすく
- fetch APIでフロントとバックエンドを通信
- async/await + 適切なエラーハンドリング
- APIキーは`.env`に格納(ハードコーディングしない)
### 命名規則
- 変数・関数: camelCase
- 定数: UPPER_SNAKE_CASE
- ファイル名: 意味のある命名(例:imageHandler.js)
### E2Eテスト要件
- 画像アップロードには`tests/sample.jpg`を使用
- キャプション生成の動作を確認
- テスト結果のスクリーンショットは内容がわかるファイル名で保存
- **WSL環境での実行を考慮**:
- WSLのUbuntu環境でPlaywrightを実行する場合、X11転送やVNC設定が不要なheadlessモードを使用
- `playwright.config.js`でheadless: trueを設定し、WSLでの安定した実行を確保
- WSLでのファイルパス(/mnt/c/など)やパーミッション問題に注意
- 必要に応じて`sudo apt update && sudo apt install -y fonts-noto-cjk`でフォントをインストール
## 編集禁止ファイル
- "!.env"
- "!node_modules/"
Claude Codeの起動
-
Claude Codeを起動
コマンドパレット(Cmd/Ctrl + Shift + P)を開き、Run Claude Codeと入力して起動。

-
プロジェクトフォルダの信頼性を確認
初回起動時に、フォルダの信頼性確認が表示される。プロジェクト内のファイルを読み取り・実行するための権限確認なので、自分で作成したプロジェクトなら「1. Yes, proceed」で続行。

アプリケーション開発とE2Eテストの作成
Claude Codeが起動したら、以下の指示を入力する
画像をアップロードするとプレビューを表示し、AIが自動でキャプションを生成するアプリを作成してください。
この1文で、バックエンド・フロントエンドの実装からE2Eテストまで全部進む。途中で質問があればClaude Codeが確認してくる
実際の開発プロセス
開発の様子を動画にした
Claude Codeが最初に作ったタスクリスト。

最初にタスクリストを作って、それに沿って順次作業を進めていました。Clineがいきなり実装に入ったのと比べると、計画を立ててから動くタイプ
セットアップと実行
Claude Codeの指示に従って、パッケージのインストールと環境設定。
npm install
.envファイルにGoogle Generative AIのAPIキーを設定。
GOOGLE_API_KEY=your_api_key_here
アプリケーションを起動するとこんな画面。

アプリケーションの動作確認
実際に動かしてみた
画像をアップロードするとプレビューが表示され、AIがキャプションを生成してくれる。UIも普通に使えるレベルで出てきた
E2Eテストの実行と問題解決
動作確認後、PlaywrightでE2Eテストを実行。初回はエラーが出た

このエラーをClaude Codeに報告したら、原因を特定して修正してくれた
修正後、再度テストを実行。今度は通った

スクリーンショットもtests/screenshots/に自動生成されている。

これでアプリの作成とテストは完了
同じお題で並べてみて
Clineと同じお題をClaude Codeでやってみた結果、 成果物の品質に大きな差はなかった。エージェントの違いより、裏で動いてるAIモデルの性能差のほうが結果に効いてくる印象
違いがあるとすれば、Claude Codeは最初にタスクリストを作ってから動くところと、ターミナルベースで動くところ。Clineのほうがエディタとの統合感はある。どっちが良いかは好みの範囲
Discussion