GUIを超えて:AIコーディングにおいてCLIが優れている理由
私は数ヶ月間、Cursorとターミナルの間を行き来していましたが、それが自分のワークフローを邪魔していることに気づきました。GitHub Copilotのようなツールはオートコンプリートには最適ですが、コードの上に重なる別のレイヤーのように感じることがよくあります。AnthropicのCLIベースのアシスタントであるClaude Codeは、この状況を一変させます。ビルドプロセス、テスト、git操作が実際に行われる場所で動作するからです。
これは単なるチャットウィンドウではありません。Claude Codeはターミナルを第一級市民として扱います。スラッシュコマンドは、AIがファイルシステムやシェルと直接対話できるようにする専用のエントリポイントとして機能します。50以上のファイルに及ぶCommonJSからESMへの大規模な移行にこれを使用した結果、CLIアプローチは従来のIDE拡張機能よりもはるかに安定していることがわかりました。
CLIエージェント vs. IDE拡張機能:何が違うのか?
これら2つの違いを理解することは、仕事に適したツールを選択するのに役立ちます。IDE拡張機能は「ゴーストテキスト」体験に焦点を当てています。現在タブで開いているファイルに基づいて、入力中にコードを提案します。
Claude Codeはエージェントです。単に提案を求めるだけでなく、ミッションを与えます。ls、grep、npm testを実行する直接的なアクセス権を持っているため、自身の作業を検証できます。これにより、エディタとターミナルの間の絶え間ないコンテキストスイッチが不要になります。バグの修正やドキュメントの更新といったメンテナンス作業に特化したツールです。
ターミナルベースのワークフローの現実
CLIファーストのアシスタントへの切り替えは、良いことばかりではありません。私はClaude Codeを200時間以上使用してきました。ここでは、その長所と短所を正直にまとめます。
メリット
- 深いコンテキスト: Claude Codeはプロジェクトを自動的にインデックス化します。
/servicesフォルダがどこにあるかを説明しなくても、フォルダ構造を理解します。 - 実行能力: テストスイートを実行できます。テストが失敗した場合、スタックトレースを読み取り、手動入力なしで修正を繰り返します。
- 効率性:
/bugに続けてログのスニペットを入力する方が、手動でファイルに移動してコードをハイライトするよりも大幅に高速です。
トレードオフ
- コストの増大: エージェントがコンテキストを得るために多くのファイルを読み取るため、トークンの消費が早くなります。大規模なリポジトリに対する詳細な
/reviewは、APIクレジットで0.50ドルから1.00ドルほど簡単にかかる場合があります。 - ターミナルの習熟度: シェルコマンドに慣れている必要があります。GUIベースのgitツールを好む場合、学習曲線が険しく感じられるかもしれません。
- ループのリスク: 手動での設定変更が必要なビルドエラーの修正を試みる際、エージェントがループに陥ることがたまにあります。
はじめに
最良の結果を得るには、安定した環境が必要です。最新のNode.js LTSを推奨します。インストールは簡単ですが、入力を節約するためにエイリアスを設定することを強くお勧めします。
# グローバルにインストール
npm install -g @anthropic-ai/claude-code
# 起動と認証
claude
# プロのヒント: .zshrc または .bashrc にこれを追加
alias ai='claude'
起動したら、/initを実行してください。これにより、エージェントがプロジェクトをインデックス化し、タブとスペースのどちらのインデントを好むかといった、特定のコーディング規約を学習するのに役立ちます。
日々の開発業務に不可欠な4つのコマンド
Claude Codeの真の力は、その特定のスラッシュコマンドにあります。本番環境での重い作業を処理するために、私がそれらをどのように使用しているかを紹介します。
1. /bug による迅速なデバッグ
VitestやJestの実行が失敗したとき、ファイルを探し回るのに時間を無駄にしないでください。エラーを直接コマンドに貼り付けます。
/bug AuthServiceのログインフローで 'TypeError: null is not an object' が発生しています
Claudeはコードベースを検索し、AuthService.tsを見つけ、不足しているnullチェックを特定し、修正の適用を提案します。その後、テストを再実行して修正が機能することを確認できます。
2. /edit による複数ファイルの編集
/editコマンドは、構造的な変更に最適です。例えば、Prismaスキーマにtenant_idを追加し、対応するAPIルートを更新する必要があるとします。
/edit Prismaスキーマに 'tenant_id' を追加し、Userコントローラーを更新して、Zodバリデーションを修正してください
スキーマ、コントローラー、バリデーションファイルを特定し、すべての変更を一度に適用します。これにより、手動でファイルをナビゲートする時間を数分節約できます。
3. /review による事前チェック
プルリクエストをプッシュする前に、安全策として/reviewを使用します。新しいコード内のconsole.logステートメントや潜在的なロジックの欠陥を見つけるのに非常に優れています。
/review 直近2つのコミットにパフォーマンス上の問題やセキュリティリスクがないか確認してください
4. /compact によるコンテキスト管理
長いAIセッションは「コンテキストのドリフト」を引き起こす可能性があります。モデルが会話の古い部分に混乱することがあります。私は/compactを使用して進捗を要約し、トークンの履歴をリセットします。これにより、AIの応答の鋭さを維持し、API料金の急騰を防ぐことができます。
高度なヒント:出力のパイプ処理
ターミナルの出力をClaudeに直接パイプすることができます。これは、CI/CDパイプラインやローカル環境でのビルド失敗を修正するのに非常に便利です。
npm run build | claude "ビルドが失敗している理由を特定し、修正案を提示してください"
これにより、エージェントはログ全体を即座に取り込むことができます。チャットボックスに何画面分ものテキストをコピー&ペーストする必要がなくなります。
最終的な結論
Claude Codeのスラッシュコマンドを使用することで、私の「ボイラープレート作成時間」は約40%短縮されました。コードを理解する必要性がなくなるわけではありませんが、ファイル間を飛び回る退屈な作業を処理してくれます。IDEのサイドバーの制限に疲れているなら、AIとのやり取りをターミナルに移すことは論理的な次のステップです。

