ClineとAIコーディングツールの現状

はじめに

近年、AIを活用したコーディングツールが急速に発展し、プログラマーの生産性向上や開発プロセスの効率化に大きな影響を与えつつあります。これらのツールは、コード補完、チャットアシスタント、コーディングエージェントなど、様々な形態で提供されており、プログラマーの作業をサポートしています。

その中でも、オープンソースのコーディングエージェントである「Cline」は、独特のポジションと活発なコミュニティによって注目を集めています。 本記事では、Clineを中心に、現在のAIコーディングツールの動向を探ります。Clineの特徴や利点、そして他のツールとの比較を通じて、AIコーディングツールの現状について考察します。また、Clineのアーキテクチャや実用面、コミュニティの動向についても解説します。

AIコーディングツールは、特に個人のプログラミングの世界に大きな変革をもたらしつつあります。本記事が、読者の皆様にとって、AIコーディングツールの理解を深め、活用するための一助となれば幸いです。

AIコーディングツールの分類

AIコーディングツールには3つのカテゴリーがあります。

  1. コード補完ツール
  2. チャットアシスタント
  3. コーディングエージェント

世間のプログラマーが「プログラミングにCopilotを使っています」という時は、GitHub Copilotのコード補完機能を指すことが多いです。しかし、AIコーディングツールはコード補完ツールだけではありません。チャットアシスタントやコーディングエージェントもAIコーディングツールの一部です。

以下にそれぞれのカテゴリーの特徴を説明します。

カテゴリー 代表的なツール 特徴
コード補完ツール Copilot、Cursor TabContinueCody ユーザーが書いているコードの続きをAIが提案する。
チャットアシスタント Copilot Chat、Cursor Chat、Continue、Cody AIがコーディングに関する質問や説明に回答する。ユーザーは質問にソースコードを付与できる。オプション機能として、コードが提案されたらユーザーは結果を適用できる。
コーディングエージェント Cline、Cursor Composer、Copilot Edits、Copilot Workspace*1 ユーザーの指示に従ってAIが自動でコーディングを実行する。変更・実行内容が提案され、ユーザーが許可する。

補足するとチャットアシスタントについては、エディタの外でChatGPTClaudeのユーザーインターフェースを使っている人もいます。典型的な作業フローとしては、ソースコードをコピペしてAIに質問をし、AIからの回答を再度コピペしてエディタのコードに貼り付けます。これらの操作をエディタ内で完結させたものが、チャットアシスタント型のツールです。

一方コーディングエージェント型のツールはユーザーがメッセージを入力するインターフェイスを持つのは同様ですが、返答と一緒にソースコードを追加・編集するためのアクションも返します。

コーディングエージェントの中でも著者が最近とくに注目しているのは、Clineです。ClineはVS Codeの拡張機能として提供されており、オープンソースで開発されています。

Clineの話をする前に、まずはコーディングエージェントの利用イメージと他の代表的なAIコーディングツールの現状を整理しておきましょう。

コーディングエージェントの利用イメージ

以下はCopilot Editsを利用する時の典型的な動作フローです。

まず右下のテキスト入力欄より「TODOアプリのAPIクライアントを設計してください」と送信しました。

Copilotは「APIクライアントを追加し、Todoの追加と削除をサーバーサイドで行うように変更します。」と返答し、現在編集しているpage.tsxの変更差分を表示します。それをAcceptボタンを押して適用します。

さらに「APIを実装してください。データはメモリ上に保持します。」と指示しました。Copilotは新規にpages/api/todos.tsというファイルを追加して中身を記述します。

このように指示→変更を繰り返します。変更内容を修正して欲しい場合は、その旨をCopilotへ伝えます。変更の補足情報として別のファイルを参照して欲しい時などは、メッセージ入力欄から追加できます。

公式のドキュメントでさらに詳しく説明されています。

code.visualstudio.com

Cursor

www.cursor.com

CursorはAIコーディング専用のエディタです。VS Codeのフォークであり、Cursorのサーバーに独自にトレーニングしたモデルを持っています。加えて、主要なOpenAIやAnthropicなどのモデルプロバイダーのAPIキーを設定して使うこともできます。

先進的な取り組みが多く、著者が初めてエディタ上でコーディングエージェントを実現しているのを見つけたのもCursor Composerでした。最近では、Shadow Workspaceという隠しElectronウィンドウを用いて、並列にコード編集できる機能を検討しているようです。

独立したソフトウェアサービスなので、サインアップして有料プランにアップグレードすると利用回数が増えるという料金体系になっています。著者が一時期使ってみた感じでは、月20ドルのプランでは利用回数が足りなかったので、さらに+20ドルで追加購入して合計40ドル支払っていました。試用や利用回数が少なければ無料プランでも十分だと思います。

ユーザーの数も多く、オーム社から以下の解説書も出ていたので購入しました。

Copilot Edits

code.visualstudio.com

Copilot Editsは、VS Code拡張機能のCopilot Chatの一部で、GitHub公式のツールです。

GitHubのサーバーで管理しているGPT-4oClaudeのモデルを使用します。他のコーディングエージェントの中では機能が最も簡素で、まだプレビュー版です。

GitHubのBusinessプランに加入しているので、現状著者が一番使っているのがCopilot Editsです。

実際に利用してみた感じでは、Copilot Editsは保守的な変更を提案してきます。また、Copilotのコード補完との精度にもギャップがあります。

Continue、Cody

www.continue.dev

Continueは、VS Codeの拡張機能であり、JetBrains製IDEにも対応しています。エディタ拡張部分がオープンソースとなっています。

sourcegraph.com

CodyもVS Codeの拡張機能として提供されていて、Sourcegraphによって開発されました。

この2つはコード補完とチャットアシスタントであり、コーディングエージェントではありません。なのでよく候補に上がるツールとして名前を紹介するだけに留めます。

コーディングエージェントはどの程度使い物になるのか?

著者自身は2024年の中頃にCursor Proをひと月利用して、その後Copilot Editsが登場したのでそちらに移行しました。

その経験からの感想なんですが、精度に関しては既存のコードベースで日常的な業務プログラミングのタスクを実行するレベルには達していません。コンテキストに入る情報とその処理能力に限界を感じます。「画面の一部を変更してください」レベルの気軽な指示もその背景にはつもりに積もったコードベースの経緯や設計があります。逆説的に私たちが普段行っているプログラミングタスクは結構な脳のワーキングメモリを消費していることが分かりますね。

しかし新規プロジェクトをボイラープレートにして、機能を継ぎ足していくような用途だとまずまず期待通りに機能します。このため小さいアプリケーションを1からたくさん作る趣味プログラマーにはおすすめできます。

以上で一通りツールの種類を紹介したので、ようやくClineの話に入ります。

Cline

github.com

Clineは、Saoud Rizwan氏によって開発されたVS Code拡張機能で、元々はClaude Devという名前でした。オープンソースで提供されており、VS Code拡張として利用できます。

Clineはコーディングエージェントのみを提供し、コード補完ツールやチャットアシスタントの機能はありません。そのため、CopilotやCodyと組み合わせて使っている人が多いです。

なぜClineに注目するのか

それは全ての仕組みがオープンソースソフトウェアであるため、学習に最適だからです。それに、後発なのでMCPサーバー(Model Context Protocol)の統合など新しいアーキテクチャを採用しており、参考になります。

また、ユーザーコミュニティが活発で変化が早いです。代表的なところでは後述しますが、独自にClineをフォークして配布している人たちがいます。

ちょっとリスキーに見える実験的な機能も積極的に追加されます。たとえば、ファイル読み込み、コード編集、コマンド実行などの操作をCline側で判断して提案します。ユーザーはそれを確認して許可して実行するという体ですが、自動承認モードがあり、ノールックでみんな自動運転気分で実行しています。

ファイル読み書きやコード実行などのアクションごとに自動許可範囲を設定できますが、早晩誰か事故るでしょう。昨年はBoltやCompute Use*2の時に「サンドボックスでコマンドを実行するので安全」というくだりが議論されていましたが、実際にローカルPCで自動実行しまくる便利なツールが登場してしまうと、ユーザーたちの衝動は抑えられないようです。

ユーザー「このプロジェクトにユニットテストを追加してください」AI「npm installしてもらっていいですか?」

これに対しては、予期しないコマンドが実行されないように、フォーク版ClineやCursorなどではホワイトリスト方式で実行できるコマンドを設定できるようにする、など検討されているみたいです。

Cursor YOLO Modeでは許可するコマンドを個別に管理できる

Clineのアーキテクチャ

Clineの根幹となるアイデアは、LangChainなどの近年のツールから続いているプレーンテキスト経由のプロンプトエンジニアリングです。コードの編集、ファイルの読み書き、コマンドの実行などのタスクを自動化するために、独自のXML記法で関数呼び出しや手続きを表現します。

LLMがそのプロトコルに沿ってXMLを提案してくるので、Clineはローカルでファイルの読み取りなどの関数を実行し、またLLMに返します。

replace_in_file ツールの例。これは、「あなた(LLM)に送信しているコンテキストのファイル情報の中で、SEARCH範囲をREPLACEに置き換えるためにXMLを生成してくれ」という論理的なテキスト仕様を宣言したプロンプトです。

## replace_in_file
Description: Request to replace sections of content in an existing file using SEARCH/REPLACE blocks that define exact changes to specific parts of the file. This tool should be used when you need to make targeted changes to specific parts of a file.
Parameters:
- path: (required) The path of the file to modify (relative to the current working directory ${cwd.toPosix()})
- diff: (required) One or more SEARCH/REPLACE blocks following this exact format:
  \`\`\`
  <<<<<<< SEARCH
  [exact content to find]
  =======
  [new content to replace with]
  >>>>>>> REPLACE
  \`\`\`
...
Usage:
<replace_in_file>
<path>File path here</path>
<diff>
Search and replace blocks here
</diff>
</replace_in_file>

このパターンのプレーンテキスト情報がシステムプロンプトsystem.tsには大量に定義されており「list_files ツール: ユーザーPCのディレクトリ内のファイル読み取り」から「execute_command ツール: シェルで特定のCLIコマンドを実行する」など危うげなものまで多岐にわたります。

Clineの実用面

なぜDeepSeekとセットで使っている人が多いのか

元の名前のとおり、ClineはClaudeのモデルをデフォルトにしています。しかし、Clineはモデルを切り替えることができ、DeepSeekなどの他のモデルを使うこともできます。DeepSeekはOpenAIなどと同じく独立したAIモデルのAPIを提供している企業です。ウェブを見ていると、Clineを使っている人はDeepSeek-V3をセットで使っている人が多いです。

それはClaudeGPTのAPIを使うと思ったより料金がかかるためです。なぜかというと、入出力トークンが多いためです。コーディング中に自動でLLMが意思決定をして、ファイルの読み込み→編集→読み込み→編集という作業を繰り返すことで、どんどんトークンを消費していきます。

また、前述のとおりそもそも動作させるためのシステムプロンプトも大きいです。Toolの論理的な仕様のテキストがすべて含まれます。ファイルを読み込むアクションが実行された場合、基本的にはそのファイルの内容がすべて含まれます。LLMがキャッシュAPIを使える場合は一部のトークンを節約できますが、それでもトークン数は多いです。

他には、各社モデルのプロバイダーのAPIのRate Limit(1分間にNリクエストの制限など)に到達するためです。これも入出力トークンが多いのと、作業中にリクエスト回数も頻発するためです。

まとめると、APIを頻繁に叩くため、みんな安くて性能が良くて穴場のAPIを求めています。今のところその矛先がDeepSeekに向いているのです。それによって最近はAPIの応答が遅延しているそうです。

DeepSeekのコスト感

Claude 3.5 Sonnetの入力は$3.75 / 1Mトークン(キャッシュなしの場合)に対して、DeepSeek-V3は$0.27 / 1Mトークン。さらに、2025年2月8日までは割引期間なので、$0.07 / 1Mトークンとなります。

割引期間中はDeepSeek-V3のコストはClaude 3.5 Sonnetの約1/54、終了後は約1/14です。

ローカルLLMでお得に使えるか?

DeepSeekと同じ水準、すなわちGPT 4oやClaude 3.5 Sonnetのミドルクラスのモデルに匹敵する精度を出すためには、パラメータ数の大きいモデルで推論をする必要があります。そのためにハイスペックマシンが必要です。主にCPU、VRAM、 RAMをちょっといいゲーミングPCレベルで調達する必要があるでしょう。

ユーザーの間では採用するモデルは、今のところqwen2.5-coder:32bがベターとされています。ClineはOllamaに対応していますのでOllamaのAPI経由でローカルLLMを使えます。しかし、Ollamaレジストリにあるモデルではコンテキストサイズやプロンプトテンプレートの問題で、Clineのコーディングは動作しないため、モデルをビルドする必要があります。カスタムビルドを公開している人もいます(qwen2.5-coder-clineなどのキーワードで検索してください)。著者は以下の記事でllama3.1:8bを自分でビルドして使うことができました。

zenn.dev

今後、DeepSeek-V3の量子化モデルがOllamaに対応します。llama.cppOllamaにDeeSeek-V3向けのアップデートが入ったためです*3。その時に自分のサーバーで動かすことで、改めて評価する予定です。

コミュニティと発展

フォーク版たち:Roo-Cline、Bao Cline、Cool Cline

これらはいわゆるBetter系の細かい機能を追加したサードパーティの拡張です。RooやBaoが独自に追加した機能を、Coolがチェリーピッキングしたり、オリジナルClineがさらに取り入れているようです。

Roo-Clineのライトユーザー向けのキラー機能としては、返答を日本語にする設定があります。それ以外には、パワーユーザー向けの高度な設定項目が多く含まれています。

著者としては、これらの代表的なフォークなら良いのですが、派生してどんどん怪しいフォークにまで手を出す敷居を低くするのは、やめたほうが無難と思います。

Roo-Clineで日本語を設定している様子

なぜフォーク版がたくさんあるのか

このようなフォーク版がたくさん存在する理由は、以下のような要因があります。

  • 実装を変更しないとカスタマイズができないため
    カスタマイズするためには、実装自体を変更する必要があり、多くのユーザーが自分用に本体を改造したくなります。著者も改造しています。

  • トークン数とコストが直結しているため
    前述のとおり、トークン数と利用コストが直接関係しており、効率化のために独自の最適化を行うインセンティブがあります。

  • ソースコードが約4000行(20,000行の間違えでした)のTypeScript+英語の文章(プロンプト)でシンプルなため
    ソースコードが比較的短く、シンプルであるため、理解しやすく、変更・拡張が容易です。

  • ClineでClineを変更できるという事情
    Cline自体を使ってClineのコードを変更できるため、開発者が自分で機能追加や修正を行いやすいこのプロジェクト特有の状況もあります。

  • メンテナーがほぼ一人であるため
    メンテナーがほぼ一人で開発を進めていることから、コミュニティによる機能追加や改善が進み、フォークが増えていると考えられます。

エンタープライズ向けはあるの?

Clineについては、利用者のPCから設定したモデルのAPIにダイレクトにデータが送信されます。中間のサーバーはありません。送信先としてAzureAWSGoogle Cloudを設定することができますのでそれらのサービスポリシーに従うことができます。また、OpenAIAnthropicもエンタープライズ向けのサービスを提供しているので、一度調べてみると良いでしょう。

CursorやContinueは自社のサーバーで独自のモデルをホストしています。これらを使用する際には、セキュリティを考慮する必要があります。サイトには「問い合わせをしてください」と書かれています。

DeepSeekについては、中国企業であることからデータの取り扱いを懸念する声もあります。筆者は使用していないため、詳しい読者がいればコメントをお寄せください。

追記:DeepSeek Open Platform Terms of Service

DeepSeekの利用規約について読者の関心が高かったのでDeepSeek Open Platform Terms of Serviceを読みました。

皆さんが気になるのは

  1. DeepSeekはユーザーの入力データに対して、サービスの運営および改善、またはサービスをサポートする基盤技術のために入力と出力を使用する可能性がある(4.2)
  2. 中国のデータ保護規制についてユーザーが責任を持つ(3.3)
  3. DeepSeekとの間で紛争が生じた場合、日本の裁判所ではなく中国の裁判所で争う(9.1)

という部分かと思います。これは著者の理解なので原文を確認してみてください。以下が原文とリンクになります。

DeepSeek Open Platform Terms of Service

原文(折りたたみ)

3.3 You shall ensure the legality of the source of end user data collected by applications, services, or tools developed using our Open Platform, ensuring that you have the legal rights to such data. This includes but is not limited to control rights, intellectual property rights, or rights to dispose of and license others to use the relevant data, without infringing on any third party's legal interests, or involving any trade secrets or other data that may have an adverse impact on security or public interests. For end user data involving personal data, you shall ensure that the collection and processing of personal data comply with the relevant requirements for personal data protection, meet the principles of legality, legitimacy, and necessity, and promptly respond to the rights requests of end users in accordance with the law.

4.2 In order to fulfill the requirements stipulated by laws and regulations or provide the Services specified in these Terms, and under the premise of secure encryption technology processing, strict de-identification rendering, and irreversibility to identify specific individuals, we may, to a minimal extent, use Inputs and Outputs to provide, maintain, operate, develop or improve the Services or the underlying technologies supporting the Services. Please be aware that unless we obtain your separate consent, we will not use the aforementioned data and content for any purposes unrelated to the Services.

9.1 The establishment, execution, interpretation, and resolution of disputes under these Terms shall be governed by the laws of the People's Republic of China in the mainland. 9.2 In the event of a dispute arising from the signing, performance, or interpretation of these Terms, the Parties shall make efforts to resolve it amicably through negotiation. If negotiation fails, either Party has the right to file a lawsuit with a court having jurisdiction over the location of the registered office of Hangzhou DeepSeek Artificial Intelligence Co., Ltd.

Clineにベットするべきか?

ベットする必要はありません。

プログラミングやフレームワークでも、このような製品のトレンド競争が勃発すると、どれか一つを選んで学習コストを投下することを他人に判断してほしいという勢力が出てくるのが常です。

著者としては今のフェーズで関心があるのならClineを実現するための技術を理解することをおすすめします。どのツールでもいいのでまず自分で試して、どうやってコーディングエージェントが実現されているのかを想像できると技術評価の際に不安がなくなります。

Clineがやっていることは他のツールでも実現可能です。今後他のツールも似たような体験になってくる可能性はあります。Clineがオープンソースであるため、その仕組みを知ることができます。

極論を言えば、Clineで実現できることは我々が手動で同じことをChatGPTに入力し続ければ実行できます。そもそも、近年のコーディングエージェントやプログラミング自動化パイプラインはLangChainなどの世代から続いており、それがエディタに統合され、モデルのAPIの機能や性能が豊富になって前提が変わり、新たな選択肢が取れるようになった、というだけの話です。

おわりに

本記事では、Clineを中心にAIコーディングツールの現状を紹介しました。

まとめると、AIコーディングツールは、コード補完ツール、チャットアシスタント、コーディングエージェントの3つのカテゴリーに分類され、最近はコーディングエージェント型のツール開発が活発です。

これらをユーザーとして体験したい場合はCursorやCopilot Editsから導入するといいでしょう。

Clineはオープンソースであり、新しいアーキテクチャを採用しているため、学習や研究に最適なツールと言えます。 補足として、著者はDevinWindsurfAiderなど、カバーできていないツールも多く存在します。o1 proなどの昨今の高額なプライシングの推論モデルも、まだ十分に試せていません。

根本的に、これらのAIコーディングツールの進化は、「ググってStack Overflowにあったコードをコピペする」コピペプログラミングを高度に自動化することです。しかし興味深いのは、今までコピペプログラミングにさえ手を出してこなかった人たちが、AIコーディングツールを使ってプログラミングを始めていることです。しかも、そういう人たちでも、課金すればするだけ成果が出る。そして、プログラミングを勉強することでコスト削減につながってしまうという構造が確立しているのも素晴らしいことです。

高性能な推論モデルによって解くべき問題は、実は多くなく、現行のモデルで十分だという議論があります。これを聞いたとき、プログラマーの業務でも高度なアルゴリズムや計算問題を活用する現場は一握りであることを思い出しました。AIコーディングツールによってプログラマーの母数は増えるでしょうが、果たして単純な業務プログラミングを満たすレベルになるのかは未知数です。逆に、コードを書いても解決できない領域が今より浮き彫りになるかもしれません。

また、このような自動化は学習や教育には不向きとする意見もあります。著者も専門教育を受けず、趣味と現場でプログラミングを覚えた人間なので、プログラミングの教育がどう変わるかは興味深いところです。希望的な観測では、新たなLLMネイティブな世代が自分たち向けの学習方法を確立してくれることを期待しています。

著者はもともとコーディング自動化ツールに関心がありました。昨今のAIコーディングツールの進化には目を見張るものがあり、エキサイティングです。

ただ、Clineに限らず、ユーザーが結構際どいことを行なっているように見えます。Web 2.0でAPIでマッシュアップをしていた時代に、APIの外部呼び出しの全能感からか、スクリプトキディ化する人が多かったことを思い出させます。実際にX(旧Twitter)で観測するユーザーたちも、今回のAIコーディングツールの進化でも同じような感じがします。

AIコーディングツールのご利用は計画的に。