Closed9

月額料金せず従量課金でAIコードエディタを使う (Cursor + Codeium)

Ryo NakaeRyo Nakae

前提

  • CursorのProプランやGitHub Copilotのサブスクリプションを契約するほどコードを書かない
    • めちゃくちゃ書く日もあれば全く書かない日もある
    • めちゃくちゃ書く月は、CursorのProプランを契約したとしても500回/月のリクエストをすぐに使い果たしてしまう
  • けどAIによるコード補完やチャットは使いたい
  • Claude 3.5 SonnetやGPT-4oを使いたい
    • 使った分だけ費用が発生するのは構わない(サブスク費用よりは安くなるので)
  • なるべくCursorを使いたい(チャットの体験が良いので)
  • Autocompleteも使いたい
  • まず無料枠を使って、使い切ったらAPIの利用に切り替えて…みたいなことをしたくない
    • 面倒なので
  • なるべくデータが収集・保持されないサービスを使いたい
Ryo NakaeRyo Nakae

結論

https://www.cursor.com/
https://codeium.com/

  • 無料プランでCursorを使う
    • モデルはAPIのものを使う
      • 基本的にGPT-4o mini(安いので)
      • 性能が欲しい場合はClaude 3.5 Sonnet
    • 有料機能(AutocompleteとComposer)を無効にする
      • 無料枠でも多少は使えるが、枠を使い切ると使えなくなるので、最初から無効にしておく
    • データ収集を無効にできる
  • Autocomplete用に、CursorにCodeiumを入れる
    • 無料プランでも無制限のAutocompleteが使える
    • データ収集を無効にできる
      • そうするとチャット機能が使えなくなるが、Cursorのチャット機能があるので問題ない
    • CodeiumのAutocomplete以外の設定を無効にする

それぞれのデータ収集に関する説明は以下。
CodeiumはAutocompleteではデータ保持しないようになっている気もする。

https://www.cursor.com/privacy
https://codeium.com/security

Ryo NakaeRyo Nakae

Codeiumの登録とアカウント設定

https://codeium.com/settings

  • Individualプラン(無料プラン)で始める
  • Disable code snippet telemetryをオンにする

  • こうすると、上記の通りチャット機能が無効化されるが、Cursorのチャット機能を使うので問題ない
  • チャット周りのUXは、Codeiumも頑張ってはいるけど、Cursorが圧倒的に良い。
Ryo NakaeRyo Nakae

Codeiumのインストールと設定

  • CursorにCodeiumをインストールして、使えるようにする
    • トークンを入力したりする
  • Codeiumの設定をする
    • Autocomplete以外無効にするような設定


ちなみに日本語訳
  • Codeium: Disable Supercomplete
    • Codeium Supercomplete(ベータ版)を無効化するかどうか。
  • Codeium: Enable Command Side Hint Education
    • 複数行を選択した際にCodeiumコマンドショートカットを表示する。
  • Codeium: Enable Config
    • Codeiumをグローバルまたは特定の言語で有効/無効化する。
  • Codeium: Enable Explain Problem
    • AIが提供する Codeium: Explain Problem(問題説明)のホバーポップアップを有効化する。
  • Codeium: Enable In Comments
    • 有効にすると、コメント内でCodeiumがオートコンプリート提案を行う。
  • Codeium: Enable Search
    • Codeiumのインデックスエンジンを有効化します。この機能により、コードベース全体を認識したチャットやオートコンプリートモデルが利用可能になり、検索機能も強化されます。
    • CPU使用量に関する注意点:
      • 初回有効化時、Codeiumは作業スペースをインデックス化する際に約25%のCPUを使用します。この処理は、作業スペースのサイズに応じて10分以内に完了し、その後CPU使用率は通常に戻ります。
  • Codeium: Index Storage Path
    • Codeiumのインデックスデータを保存するカスタム絶対パスを設定します。自宅ディレクトリがNFSマウントの場合に使用します。
  • Codeium: Search Max Workspace File Count
    • インデックス化が有効の場合、Codeiumは指定された最大ファイル数まで作業スペースをインデックス化します。この制限を引き上げると、パフォーマンス問題が発生する可能性があります。0またはそれ以下の値は無制限として扱われます。
    • デフォルト値: 5000
  • Codeium: Snooze Time
    • Codeiumのオートコンプリートがグローバルで再開されるまでのスヌーズ時間(分単位)。
    • デフォルト値: 60分
  • Codeium: Aggressive Shutdown
    • VS Codeを閉じても言語サーバープロセスが終了しない場合に、この設定を使用します。
  • Codeium: Detect Proxy
    • 自動プロキシ検出を有効化する。
  • Codeium: Enable Code Lens
    • AI対応のインラインアクションボタンをエディタ内で有効化する。
    • デフォルト値: true
  • Codeium: Indexing Retention Period
    • 指定された保持期間(日数)内にアクセスされていないインデックス化済みファイルを削除します。
    • デフォルト値: 30日
  • Codeium: Use Secret Storage
    • ローカルストレージよりもVS Codeシークレットを使用して認証情報を保存することを優先します。
Ryo NakaeRyo Nakae

Codeiumのキーボードショートカットの設定

Autocompleteに関わるもの以外はキーボードショートカットを削除。

Ryo NakaeRyo Nakae

Cursorの設定

General

  • Privacy modeをenabledに

Models

  • OpenAI API KeyとAnthropic API Keyを発行してペーストしてVerify
  • 利用モデルは基本的にはGPT-4o mini、性能が欲しい場合はClaude 3.5 Sonnet
    • それ以外はどうせ使わないので無効にしておく
    • 選択肢が多すぎると訳分からなくなるし

Features

  • Cursor TabとComposerは無効にする
  • Cmd + Iは無効化されたがCmd + Shift + IだとデカいComposerのウインドウが開いてしまうバグがあったので、後ほどキーボードショートカットを修正


Beta

  • とりあえず全部無効
  • Long Context Chat (Beta)は有効でもいい気もするけど、サイドパネルのチャット欄の高さが増えるのが気になるので無効

Ryo NakaeRyo Nakae

Cursorのキーボードショートカットの修正

  • 上記のように、Composerを無効にしているのにCmd + Shift + Iで大きいパネルが開いてComposerが使えてしまう
  • 使わないように決めたのに使えるのは気持ち悪いので、ちゃんと表示されないようにする

  • controlPanel.openControlPanelの「いつ」をcomposerIsEnabledにする
  • これで、Composerが有効の場合のみパネルが開くようになるので、スッキリ
Ryo NakaeRyo Nakae

VSCode + Continueとの比較

https://www.continue.dev/

  • OSSで無料で利用できるのは良い
  • 柔軟にカスタマイズできるのも良い
    • ただ、設定は~/.continue/config.jsonに保存されるので、VSCodeでは設定が同期されないのが微妙だった
  • Cursorは設定の同期がなくて、だからVSCodeを使いたいと思っていたが、Coninueでも出来ないのであれば別にCursorでええか…という気持ち

Autocomplete

  • Autocompleteが微妙だった
  • 利用モデルにはMistral Codestralが推奨されているが、データ収集されるかどうかがよく分からなかったので、あまり使いたくなかった
    • あとは補完されるコードの精度が微妙
  • 精度、応答速度、使い勝手のどれも、Codeiumの方が上な印象
    • Codeiumは自家製モデルを使っているとのこと
    • あとはコード全体をインデックスしているので精度も上がっているらしい
  • Codeiumは補完の候補を4つくらい出してくれて、それを選べるのが良い
  • CodeiumはAutocompleteをスヌーズ出来るのも地味に良い
    • Continueも有効/無効を切り替えられるが、「基本的には楽したいので補完して欲しい、でも今は邪魔だからオフにしたいんだよな」というときにCodeiumは便利

チャット機能

  • チャット機能はCursorが圧倒的に良い
  • Cursorの方が今開いているコードとかのコンテクストを追加するのがやりやすい
    • 開いているファイルをサジェストしてくれたり
  • Cmd + K(インラインチャット)が便利すぎる
    • VSCode + 拡張機能だと、コードの途中にポップアップパネルを表示するのは不可能らしい(参考
    • だからCursorはVSCode拡張ではなくフォークしているのだなと気づいた
      • GitHub Copilotもインラインチャット出来るが、公式の拡張機能の特権らしい(参考
  • Cursorはターミナルでもチャットできるのも便利

その他

  • ContinueにもDocs機能があるが、うまくインデックスしてくれなかったりと使い勝手がイマイチだった
  • CursorのDocsは今のところ失敗したこと無いので、信頼感がある
Ryo NakaeRyo Nakae

Cursor無料プラン + Codeium無料プランの所感

  • 月額料金がかからないのはスッキリして良い
  • Codeiumは無料なのに、レベルの高いAutocompleteが使えて良い
  • CursorのCmd + LとCmd + Kは使いやすくて良い
  • Composerは無効にすると操作がシンプルになって良い気がしている
    • もともと、チャット入力欄が
      1. Cmd + L(サイドパネル)
      2. Cmd + K(コードの途中に表示されるパネル)
      3. Cmd + I(画面下部にポップアップされるComposerのパネル)
      4. Cmd + Shift + I(画面全体を覆って表示されるComposerのパネル)
    • の4つあって、「多すぎやろ…」と思っていたので

気になる(けど別に我慢できる)ところ

  • Cursorは無料だと提案されたコードのApplyが出来ない
    • Copyできるしまぁいいかなという気持ち
このスクラップは2日前にクローズされました