← 返回列表

Claude Codeシリーズチュートリアル3:なぜターミナルのみが提供されたのか

1.3 なぜターミナルでコードを書くのか?

例え話をしましょう:あなたが新しい機能を書いている最中に、3つのファイルに散らばっていて、一部の呼び出しがモジュールをまたがっている低レベルのユーティリティ関数を変更する必要があることに突然気づいたとします。エディタを開き、全体を検索し、ファイルを一つずつめくり、慎重に修正して、テストを再実行する——赤い表示。エラーメッセージを見て、スタックトレースを調べ、修正してもう一度。

このプロセスで実際に「どう修正すべきか考える」のに費やす時間は半分にも満たないかもしれません。残りの半分は機械的な作業です:ファイルを探す、参照を修正する、コンパイルを待つ、マウスをクリックする。

AIをターミナルに置く第一の目的は、これらの機械的な作業を圧縮することです。

ターミナルはコードに最も近い場所

VS Code、JetBrains、Vimなど、どのエディタを使っていても、コードを書く過程でターミナルを避けて通れません。npm testgit loggrepmake build——これらの操作は元々コマンドラインで行うものです。

では、あなたのAIパートナーも同じターミナルにいれば、事は簡単になります。ファイルの内容をチャットウィンドウにコピペする必要も、自分で「私のプロジェクトにはUserServiceというクラスがあり、それはsrc/services/user.tsの42行目にあります…」と説明する必要もありません。Claude Codeはプロジェクトのルートディレクトリにいるので、自分で確認します。

これはコンテキストにおける次元の違う優位性です。Claude Codeに「ログインモジュールのエラーハンドリングをリファクタリングして」と言えば、実際にauth/login.tserrors.tsを読み、それを呼び出しているすべての場所を探し、直接修正します。その過程であなたが伝送役を務める必要はありません。

「オペレーター」の役割から解放される

ブラウザのAIチャットを使っているとき、私たちは無意識のうちに「仲介者」の役割を果たしていることがよくあります:AIがコードを出力し、それを読み、検証し、コピーしてからエディタに貼り付けます。コードが動けば万々歳、動かなければエラーをコピーして再度質問し、またコピーする。このプロセスはフローを大きく妨げます。

Claude Codeの設計思想は、あなたを再び「考える人」の立場に戻すことです。あなたがアイデアを言い、それが実行します。修正後はターミナルで直接diffを確認し、受け入れるかどうかを決めます。さらに、テストやリントを実行してくれます。あなたは座ったまま、コードを読み、判断することに多くの時間を費やし、ウィンドウを切り替えることに時間を取られません。

なぜエディタプラグインではないのか?

「では、なぜエディタにAIプラグインを直接組み込まないのか?」と疑問に思うかもしれません。

エディタプラグインも有用で、多くのチームがすでに使用しています。しかし、ターミナル上のClaude Codeには、プラグインでは代替しにくいいくつかの利点があります:

  1. エディタに依存しない。 今日VS Codeを使い、明日Neovimに変えても、GUIのないリモートサーバーでも、Claude Codeは使用できます。あなたの選んだツールとは無関係です。
  2. より「枠を超えた」ことができる。 ターミナルでは、任意のシェルコマンドを実行できます。つまり、できることの範囲が格段に広がります——Dockerコンテナを起動してデータベースマイグレーションを検証したり、リモートブランチをプルしてコンフリクトを確認したり、コード修正後に自動でE2Eテストを実行したりできます。こういったことは、エディタプラグインでは通常は行えないか、とても慎重に行わなければなりません。
  3. バッチ処理と自動化。 Claude Codeをスクリプトに組み込み、数十のリポジトリを処理させたり、ドキュメントを一括生成させたり、Issuesを自動処理させたりできます。このとき、それはもはや「アシスタント」ではなく、パイプラインの一部です。

私自身の小さな例

以前、約2万行のJavaScriptプロジェクトをTypeScriptに移行する必要がありました。私のやり方は、手動で一つずつファイルに型を追加するのでも、エディタプラグインにすべてを任せるのでもありませんでした。

プロジェクトディレクトリで直接Claude Codeを起動し、こう指示しました:「このプロジェクトを段階的にTypeScript strictモードに移行して。一度に数ファイルずつ修正し、修正が終わるたびにtsc --noEmitを実行して、エラーがあれば自分で修正し、すべて通るまで続けて。」

その後30分間、私が基本的にやったことはただ一つ:修正のdiffを確認し、承認するか拒否するかだけでした。たまに「ここはanyではなく、インターフェースを定義して」と伝えると、また作業を続けました。最終的にプロジェクトのコンパイルが通り、予想よりも何倍も速く終わりました。

これはもちろん、Claude Codeがプラグインより賢いという意味ではありません。しかし、「修正→検証→修正」というサイクルを自分で完結できるという点が、チャット型AIとの最も根本的な違いです。

結局のところ、ターミナルはAIに手足を与える

AIをターミナルに組み込むことは、本質的にAIに実行能力を与えることであり、単なる提案能力ではありません。

これにより、あなたのコードリポジトリは単に読み取り可能なテキストの集まりではなくなり、AIが「触って」修正し、検証できる実際の環境になります。これは大きな飛躍です。

あなたは依然としてプロジェクトの方向性とすべての重要な決定を掌握していますが、面倒で創造性の低い、繰り返しの切り替えが必要な作業には、より適切な担い手ができたのです。

评论

暂无已展示的评论。

发表评论(匿名)