1ヶ月ほぼ毎日Claude Codeを使ってわかった魅力と所感
はじめに
Claude CodeとはAnthropic社が提供しているAIコーディングエージェント(Anthropic社曰く、エージェント型コーディングツール)であり、ターミナル上で動作するソフトウェアである。VS CodeのGitHub CopilotやClineのような拡張機能でもなく、VS CodeをフォークしたCursorやWindsurfのようなIDEでもない。公式ドキュメントはこちら。
(公式ドキュメントは初心者向けにも分かりやすくまとまっており、利用前に全体像を把握するためにまず一読を推奨したい)
Maxプランに加入して1ヶ月ほぼ毎日使ってきた。基本的な使い方や紹介は他にも記事が多くあるので、ここではなぜClaude Codeに魅力を感じて使ってきたのか、1ヶ月間の利用経験を通じて得た実感をもとにまとめる。環境はmacOS。
理由は大きく3つある。
- Maxプランで定額で使えるようになった
- ターミナルで完結する
- 自律的にタスクをこなす能力の高さ
1ヶ月使って感じた3つの魅力
Maxプランで定額で使えるようになった
Anthropic社のClaudeを利用するにはアカウント登録が必要で、Free、Pro、Maxのプランがある。2025年5月2日からこのMaxプランに(同年6月4日からはProプランでも)Claude Codeへのアクセスが含まれるようになった。
これが最も大きい理由である。
3月中旬あたりにメインのAIコーディングエージェント系のツールをCline(Anthropic APIを利用)からClaude Codeに切り替えた。Clineのときでもそうだったが、ついAPIの利用料金が気になってしまってだんだんと使わなくなってしまった。
しかし定額で使えるようになったことで、利用料金を気にせずに何度でも気軽に実行できる。レスポンスが期待と違ってもストレスなく依頼し直すことができる。ハルシネーションがあったとしても笑って許せる(実務的には許せてはいないが)。ごちゃごちゃにされたコードをgit checkout .
で元に戻すといった、何も得るものがなく、ただの浪費となってしまったというような虚無感に包まれることなく、何度も試すことができる。
試してみるための心理的障壁がなくなったのは本当に大きい。
ターミナルで完結する
開発に関する相談、設計、ブランチ作成、テストコードを含めての実装、確認(これはIDEですることもある)、コミット、プルリクまでの一連の流れがターミナルで完結する[1]。プルリクがマージされたらステージングにリリースするなどのCI/CDを構築済みなら、プルリクのマージの指示を出せばリリース作業も自動で完了する。コミットメッセージもプルリクのメッセージも自動で考えてくれるので本当に助かる。ターミナルで完結するので基本的にキーボードのみで終わる。
自律的にタスクをこなす能力の高さ
ChatGPTやGeminiなどでDeep Researchを実行すると、さまざまな情報を集めて整理し、かつ、その情報源や思考の過程をユーザーが確認することができるようになっている。同じように、Claude Codeに依頼をすると、コードを調査し、必要な施策をまとめ、ToDoリストにし、タスクを消化していく過程を確認して見守ることができる。納得感のある単位でタスクを分割し、途中でエラーが発生すると自律的に修正しつつ依頼をこなしていくので安心して任せることができる(とは言ってもまだまだ暴走することはある)。
Anthropic社がエージェント型コーディングツール(agentic coding tool)と標榜しているだけはある。
以下は実際にVibe Codingの検証で利用した際にClaude Codeが作成したToDoリストである。事前に用意したREADME.mdを読んでClaude Codeが必要なタスクを考えて自律的に消化していった。
⏺ Update Todos
⎿ ☒ package.jsonとtsconfig.jsonの作成
☒ 基本的なHonoアプリケーションのセットアップ
☒ 日本の祝日データ(2025-2027)の実装
☒ 営業日計算ロジック(土日・祝日除外)の実装
☒ REST API(/)エンドポイントの実装
☒ MCPサーバー(/mcp)エンドポイントの実装
☒ TypeScript型定義の作成
☒ Zodバリデーション機能の実装
☒ テストの実装
☒ OpenAPI仕様書の作成
依頼を追加すれば必要なタスクも増やして処理してくれる。
> 動作確認をしたい
⏺ Update Todos
⎿ ☒ package.jsonとtsconfig.jsonの作成
☒ 基本的なHonoアプリケーションのセットアップ
☒ 日本の祝日データ(2025-2027)の実装
☒ 営業日計算ロジック(土日・祝日除外)の実装
☒ REST API(/)エンドポイントの実装
☒ MCPサーバー(/mcp)エンドポイントの実装
☒ TypeScript型定義の作成
☒ Zodバリデーション機能の実装
☒ テストの実装
☒ OpenAPI仕様書の作成
☐ 開発サーバーの起動
☐ REST APIの動作確認
☐ MCPエンドポイントの動作確認
Clineとの違い
ClineにはモードとしてPlanとActがあり、それぞれのモードで生成AIのモデルを変えることができたりして便利に感じていたが、Claude Codeではこのように提案から実装までモードを変えずにできる。モードレスというと語弊があるかもしれないが、こういった状態がないため思考が中断されないのがいい(shift-tabによるauto-acceptモードの切り替えはある)。
ClineではClineをドライバーとして人間がナビゲーターとなり面倒を見る必要があったが、Claude Codeは自律的にタスクを考えて消化していくのでアシスタントのようであり、人間はディレクターとなる。
実践Tips
Claude Codeを日々使って感じた細かなコツや注意点を、Tipsとしていくつか紹介する。
モデルの選択について
Claude CodeのGAと同時にClaude 4ファミリーとしてClaude Opus 4とClaude Sonnet 4が発表された。OpenAIのcodex-mini-latestやGoogleのGemini 2.5 Proに比べて信頼して使えるモデルだと感じる(モデルの進化は早いので数ヶ月後にはまた状況が変わるかもしれない)。
Opusは複雑な問題への解決や長時間動作させるタスクに向いていると言われている[2]。そのためか分からないがプロンプトが短くて曖昧であったりコンテキストが小さい場合には「Opusが考える最高の状態」を目指す傾向があるように思える(小規模でもアブダクションを頑張りすぎてる?)。例えば、Dockerfileの整理を依頼しただけなのにMySQLからPostgreSQLのライブラリを使うように全面的に書き換えることもあった。
/init
や複雑なことを解決するために提案がほしい時はOpusでいいが、普段は、特にリファクタリングなど渡すコンテキストが大きくない場合は、Sonnetでもあまり変わらない気がしている。また、Sonnetのほうがレスポンスが早い。
あくまでも個人的なイメージだが、長時間auto-acceptで動作させても確認が大変になるだけなので、抽象を具体にするまでの過程はOpus、具体を実現するのはSonnetか?と今のところは考えている。
CLAUDE.md
前述の/init
でプロジェクトのメモリを作るのもいいが、まずは$HOME/.claude/CLAUDE.md
に保存されるユーザーメモリを整理する。どういう役割でどういうコードを書いてほしいか、例えば、オブジェクト指向プログラミングで継承よりもコンポジションを重視してほしい、など、書いていないとすぐに継承を使いがち。暗黙の了解はAIには伝わらない。
コンテキストを制御する
Claude Codeを利用し続けるとauto-compactが作動するが、この際ユーザーメモリを含めてメモリを忘れてしまっている印象を受ける。今まで日本語でやり取りしていたのが英語になったりする。auto-compact後はメモリを読み込み直させるのは忘れずに実行するといい。また重要なことはauto-compactが作動するまでに#
でメモリとして書き出したり、.md
ファイルとして書き出しておいた方がいいかもしれない。
また、やり取りの流れがおかしな方向に進み始めたときは、/clear
を実行してコンテキストをクリアしてからメモリを読み込み直させる方法もある。が、残タスクを覚えていたりするためどこまでがクリアされているのか分からないのであまり効果を感じないときもある。
EDITOR=viを設定する
/memory
でメモリが編集できるが、設定がないと何かしらのアプリが立ち上がる(自分の環境ではテキストエディット)。環境変数にEDITOR=vi
を設定しておくことでClaude Codeと同じ画面でviでメモリが編集できるようになる。アプリが切り替わらない。
Bashモード
Claude CodeにはBashモードがあるため、Claude Code起動中に!
に続けてコマンドが実行できる。ls -la
やgit log --oneline
、git status
など、ちょっとした確認をすぐに実行できる(viなどユーザーのインタラクティブな操作が必要なものは無理だし出力を展開するためにCtrl+rは必要)。利用中のソフトウェアから離れてターミナルに切り替える手間がない。作業の流れが中断されないのは地味だけど大きな利点である。
やり取りを記録する
拡張機能やIDEとは違ってターミナル上で動作するのでセッションを簡単にテキストファイルとして保存できる。iTerm2[3]にあるセッションの自動保存機能も便利。自動保存だと保存しすぎてしまうので、残しておきたいと思うものは手動で別途保存している。
CLIとして活用する
標準入力をClaude Codeに渡せるため、以下のような使い方もできる。個人的にはこの使い方の可能性をさらに広げて探っていきたい。
duckdb -c "<何かを集計するクエリ>" | claude -p "分析してわかりやすくまとめて"
その他
他にも設定が色々とあるので公式ドキュメントを確認してみるといい。改行と通知は設定したほうがいいかも(自分の環境ではいつの間にか通知されなくなってしまったが)。
運用上の注意点
注意点として、Claude Codeがウェブ検索できるようになったとはいえ、
- フレームワークやライブラリが実際に存在するかどうか
- バージョンが古くないかどうか
- API仕様を正しく理解しているか
- フレームワークの項目やオプションが実際に存在するかどうか
は、特に慎重に確認する必要がある。このあたりはまだまだ正しくないことが多い印象である。そのまま実装やテストを行わせるとどんどんおかしい方向に行きがちなので公式ドキュメントを確認するようにしている。Claude 4ファミリーのTraining dataのknowledge cut-offは2025年3月なのにNode.jsのLTSとして18をすすめてくることがある。
余談: キーボード選びのちょっとした注意
キーボードは75%以上のレイアウトのをおすすめする。Claude Codeからの指示待ちでは、
1. Yes
2. Yes, and don't ask again this session (shift+tab)
3. No, and tell Claude what to do differently (esc)
となるが、65%以下のキーボードでは1キーの左隣がESCキーがあることが多く、Yesのつもりがうっかり指示を断ってしまうことがある…。
おわりに
プログラミングは、コーディングだけを指すのではなく、問題を発見して理解し、解決策を検証し、そのプロセスでさらに理解を深め、また新たな解決策を探りつつ検証していくという、試行錯誤を反復して行うプロセスと考えている。仮説->設計->実装->検証->次の仮説となる。Claude Codeが定額で利用できるようになったことでこうした試行錯誤を失敗を恐れることなくでき、満足するまで何度でもできるようになったのは本当に大きな変革だと感じている。
ただし、試行錯誤が簡単にできる一方で、開発履歴や変更内容が細かく分かれて積み重なり、どこで何を検証したのか、どう判断したのかが後から追いにくくなる可能性もある。検証した解決策を守るためにもバージョン管理や自動テスト、ドキュメントの整備がとても重要である。ドキュメント化しておくことでAIにも振り返りさせやすい。
また、実装面では、参照透過性を持ち副作用のない計算とI/O周りで副作用のあるアクションとを分けることもとても重要である。これらを意識して実装されているコードベースとそうでないコードベースではClaude Codeが生成するコードの品質が全く異なる印象がある。ポン出しで終了のプロトタイプレベルならコードの理解しやすさは問題にならないが、継続性のあるプロダクトを作るなら必須。人間にとって理解しやすいコードはAIにとっても理解しやすいコードとなる。
現状ではしばらくはClaude Codeがメインになると思っているが、数ヶ月後にはわからない。Anthropicがプランを見直すかもしれないし、Gemini DiffusionやjulesなどGoogleの動きも気になるし、GitHub Copilot Workspaceも気になる。OpenAIのChatGPTにあるCodexもいい体験だった(Codex CLIのほうはいまいち)。少なくともClineに戻ることはなさそう。MicrosoftのMarketplaceの利用規約に抵触するため(個人の見解として)、CursorやWindsurfはVS Codeの拡張機能が使えないのでメインにはならないかな。
最後に、AIを活用するために必要な能力は、
- 問いを見つける
- 問いを理解し明確に言語化する
- 実現したいことを正確にAIに伝える
- AIの提案を鵜呑みにせずに、批判的に評価し取捨選択する
という、問題発見能力や言語化を含めてのコミュニケーション能力、批判的な思考が不可欠だと思う。このような能力は人間相手でも変わらないのでどの場面でも役に立つため、基礎をしっかりと学習し続けつつ経験を積む必要があると日々感じている(人間相手よりAI相手のコミュニケーションのほうが気が楽ではある)。
-
gitコマンドとghコマンドが必要 ↩︎
Discussion
Claude CodeにPlanモードが追加されたので追記しました。
Planモードを使うかどうかは検討中。今まで通り「提案して」でもいいような気がしてる。