すべてのページ
このページの内容

Cursor

Cursor プロバイダーは、Cursor のエージェントを Cursor Agent SDK を通じてリレーのマシンで動かします。OAR は会話ごとに 1 つのワーカープロセスを起動します。エージェントは会話の作業フォルダーで、Cursor アカウントのモデルを使って作業します。Claude と違い、マシン上のサインインは使いません。OAR に Cursor の API キーを渡します。

このページでは Cursor に固有の点を説明します。チャット、キュー、ファイルブラウザーはどのプロバイダーでも同じように動きます。Cursor をほかと比べるにはプロバイダーの概要を参照してください。

必要なもの #

  • Cursor の API キー。OAR に一度貼り付けます。有効にするを参照してください。
  • インストールするものはありません。Cursor にはマシン上の CLI も Cursor アプリも必要ないので、Cursor サブタブには CLI の行がありません。

各要素の場所:

対象 場所
エージェント リレーのマシン上のワーカープロセスで、会話ごとに 1 つ、会話の作業フォルダーで動きます。
API キー そのマシン上のリレーのデータベースにあります。パネルに再び表示されることはなく、ブラウザーにも送られません。
エージェント自身の状態 会話ごとのフォルダーで、会話の最初のターンで作られます。ファイルブラウザーの Session(セッション)で開きます。

既定では、状態フォルダーはリレーのデータフォルダーの cursor-agents の下にあります。グローバルインストールでは ~/.oar/data/cursor-agents(Windows では %APPDATA%\oar\data\cursor-agents)、git チェックアウトでは server/data/cursor-agents です。0.9.14 で追加 0.9.14 より前のグローバルインストールでは、状態フォルダーはパッケージのフォルダーの中にあり、更新でそのフォルダーが置き換わるため、会話がエージェントを失うことがありました。フォルダーがまだ残っている会話は、引き続きそれを使います。CURSOR_AGENT_STORE_DIR で場所を移せます。環境変数を参照してください。

有効にする #

Settings → Providers → Cursor(設定 → プロバイダー → Cursor)を開きます。パネルの見出しは Cursor SDK です。

項目 既定 動作
Enable Cursor for New Chat model selection(新しいチャットのモデル選択で Cursor を有効にする) キーを保存するとオン New Chat(新しいチャット)で Cursor を選べるようにします。キーを保存する前はチェックできません。
Cursor API key(Cursor API キー)。欄の表示は Cursor API key… 空 自分のキーです。保存すると、欄の表示は Saved API key (enter to replace)(保存済みの API キー、入力すると置き換え)になります。保存したキーを使い続けるには空のままにします。
Cursor model ID(Cursor モデル ID) composer-2.5 新しい Cursor の会話が最初に使うモデルです。空欄は composer-2.5 を意味します。
Save Cursor settings(Cursor の設定を保存) キーとモデルを保存します。初めて新しいキーを保存すると、Cursor が有効になります。
Remove saved key(保存したキーを削除) 確認を求めた後、キー、検出したモデル、Select Models(モデルを選択)での選択を削除し、Cursor をオフにします。モデル ID は残ります。

欄の下のステータス行に、現在の状態が表示されます。

ステータス 意味
Not configured. New conversations use GitHub Copilot. キーが保存されていません。
API key saved but currently disabled. Enable it to allow Cursor selection in New Chat. キーは保存されていますが、スイッチがオフです。
Cursor is enabled. Select Cursor in New Chat to use it. 準備ができています。

保存したときの動作:

  • モデルの検出。 Cursor が有効な状態で新しいキーを保存したとき、モデルを変更したとき、または Cursor を再び有効にしたとき、OAR はキーで使えるモデルと、各モデルの推論の選択肢を Cursor に問い合わせます。この問い合わせは 20 秒でタイムアウトします。失敗すると、通知に警告として表示されます(例:Cursor model discovery failed: …)。検出が成功するまで、一覧には既定のモデルだけが入ります。
  • キーの変更。 新しいキーを保存すると、検出したモデルが消去され、Cursor が有効なら検出がもう一度実行されます。すでにキーが保存されていた場合、リレーはターンの途中のものも含めてすべての Cursor ワーカーを停止するので、新しいキーはターンの合間に保存してください。ワーカーは次のメッセージで新しいキーを使って再び起動します。
  • キーの削除は、Cursor の会話のどれかがメッセージを送ったことがあるか、キューにメッセージがある間は拒否されます:Cannot remove Cursor API key while N active Cursor conversation(s) still exist. Disable Cursor for new conversations instead. そのため、削除によって実行中のターンが影響を受けることはありません。代わりに Cursor をオフにしてください。削除が通ると、まだメッセージを送っていない会話は Copilot に戻ります。Cursor をオフにしただけでは、会話は移りません。

あとは通常どおり会話を始めます。New Chat でプロバイダー Cursor SDK を選びます。会話を始めるを参照してください。

モデルと reasoning effort #

一覧の出どころ。 上に挙げたタイミングで、キーを通じて Cursor 自身から取得します。そのうちどれを入力欄に表示するかは 🤗 Select Models → Cursor SDK(モデルを選択 → Cursor SDK)で選びます。💾 Save enabled models(有効なモデルを保存)で選択を保存し、Refresh(再読み込み)で検出をもう一度実行します。何も選んでいないときは、検出したすべてのモデルが表示されます。Cursor model ID のモデルは常に表示されます。

メッセージごと。 会話では、メッセージごとにモデルと reasoning effort を変えられます。Cursor のモデル ID は Cursor の表記どおりに使います。自分に提供されているモデル(有効にしたもの、Cursor model ID、会話自身のモデル)にない ID は、Cursor model "…" is not available で拒否されます。

reasoning effort。 reasoning effort の選択肢は、モデルが示すとおりにモデルから取得します。OAR が知っているレベルは none、low、medium、high、xhigh、max です。Cursor の extra-high は xhigh として表示されます。OAR が知らないレベルは表示されません。

  • none は常に一覧にあります。モデルが推論をオフにできる場合、none は推論をオフにします。できない場合、入力欄ではその項目が default(既定)と表示され、モデルは通常どおりに動きます。
  • reasoning effort を示さないモデルには none だけがあり、default と表示されます。
  • 思考のスイッチがあるモデルでは、レベルを選ぶと思考がオンになり、none でオフになります。

ほかのモデルのサブエージェント。 Cursor に組み込まれたサブエージェントのメニューでは、少数のモデルしか選べません。そこで OAR は、Select Models で有効にしたモデルごとに 1 つのサブエージェントを宣言します。これでエージェントは、たとえば Grok や GPT のモデルにタスクを任せられます。名前ではドットがダッシュになります(grok-4.5 は grok-4-5)。サブエージェントはそのモデルの既定のバリアントで動き、reasoning effort は指定できません。選択の変更は次のメッセージから有効になります。

Cursor での OAR の機能 #

機能 Cursor での動作
リレーモード plan は SDK 自身のプランモードで動きます。agent は通常のモードです。ask と autopilot では、モードが変わったときにメッセージの前に [Relay mode: …] の行が付きます。リレーモードを参照してください。
質問カード OAR 独自の ask_user ツールを通じて表示されます。エージェントには、質問するにはこれしか方法がないと伝えられています。質問は最大 4 つ、選択肢はそれぞれ 2〜6 個で、複数選択も可能です。返信の本文に書かれた質問はカードになりません。ask_user を参照してください。
プランボード Cursor にはプランを終える手順がありません。plan モードで、最終的な返信に箇条書きか番号付きの行が 2 行以上あると、OAR は Plan ready for review(プランのレビュー準備完了)を表示し、Implement in autopilot(autopilot で実装)、Stop here and prompt myself(ここで止めて自分でプロンプトを書く)、Stop here(ここで止める)を示します。文章で書かれたプランにはボードが出ません。
軌道修正とキュー 軌道修正はできません。ターンの間に送ったメッセージはその後ろで待ち、送信ボタンは Queue(キューに入れる)と表示されます。ターンとキューを参照してください。Stop(停止)は実行中のターンを終わらせます。エージェントが質問への回答を待っている間も同じです。
バックグラウンドタスク タスクパネルはありません。エージェントがバックグラウンドの作業を始めると、Background task <status>: … というアクティビティ行が表示されます。
サブエージェント それぞれ開始と終了のあるサブエージェントとして表示され、そのテキスト、思考、ツール呼び出しはビューアーに表示されます。1 階層だけで、サブエージェント自身のサブエージェントは表示されません。Stop はサブエージェント 1 つではなく、ターン全体を終わらせます。
添付ファイル 5 MB までの画像はメッセージに含めてエージェントに渡されます。それより大きい画像やその他のファイルは、エージェントが読むためのパスとしてメッセージに書かれます。
コンテキストの表示 🧠 ボタンには、合計とモデルのウィンドウに対する割合が表示され、カテゴリはありません。1 つのターンで複数回モデルを呼び出した場合、数値は推定で、その旨が表示されます。ウィンドウはモデルの一覧の情報から、一覧にない場合は組み込みの表から取得します。
コンパクト化 OAR は自動コンパクト化を設定も表示もしません。/compact はどのプロバイダーとも同じように使えます。会話のコンパクト化を参照してください。
再開 リレーは Cursor のエージェントの ID を保存し、再起動の後やワーカーのハンドルが閉じられた後にそのエージェントを再開します。エージェントを再開できない場合は、新しいエージェントが作られます。再起動と再開を参照してください。
エージェントツール preview と relay_tool がツールとしてエージェントに渡されます。relay_tool は、リレーにペアリングしたリレーがあるか、エージェントセッションが有効なときだけ渡されます。エージェントツールとエージェントセッションを参照してください。

作業フォルダーの .cursor フォルダーにある Cursor 自身のプロジェクトルール、サブエージェントのファイル、MCP サーバーは読み込まれません。エージェントのツールとサブエージェントは OAR 自身が定義します。

長くアイドルだったエージェント #

30 分使われなかった Cursor のエージェントは閉じられ、次のメッセージで開き直されます。アイドルのまま数時間たつとサインインが古くなるためです。この動作は表に出ません。それでもサインインが古くなっていた場合、OAR はエージェントを作り直してメッセージをもう一度送ります。これを最大 2 回行い、Cursor session re-authenticated; retrying this message on a fresh agent handle. というアクティビティ行を追加します。3 回目に失敗すると、うまくいかないときにあるサインインのメッセージでターンが終わります。

使用状況 #

Cursor のターンでは、返信の下に使用状況の行はありません。📊 Check Usage(使用状況の確認)には Cursor カードがあります。Cursor がオフの間は Cursor is not enabled in provider settings. と表示されます。数値は 2 つの情報源から取得し、カードにはどちらを使ったかが表示されます。

OAR による支出の推定。 OAR は各ターンの後に、エージェントの課金済みの支出を Cursor から読み取り、増えた分を現在の課金サイクルに記録します。各ターンは、それを実行したモデルのプールに振り分けられます。

プール モデル
Cursor Models(Cursor モデル) composer、cursor-、cheetah、sonic で始まる名前、または grok を含む名前です。
Other Models claude、sonnet、opus、haiku、fable、codex、gemini、deepseek、kimi、qwen、llama、mistral、minimax を含む名前、または gpt、glm、o と数字で始まる名前です。
Unclassified(未分類) auto、cost、balance、intelligence、router を含む名前、そして上のどちらのプールにも当てはまらないすべての名前です。支出があるときだけ表示され、どのプールで処理されたかを Cursor が示さないという注記が付きます。

照合では大文字と小文字を区別せず、ルーターの名前が最初に確認されます。

プランに何が含まれているかを、Cursor は SDK に伝えません。そのため自分で入力します。

項目 既定 動作
Cursor Models pool (USD)(Cursor Models プール、USD) 空 そのプールの月間の枠です。空欄にすると枠が消え、カードには支出だけが表示されます。
Other Models pool (USD)(Other Models プール、USD) 空 もう一方のプールについて同じです。
Billing resets on day of month(課金のリセット日、毎月) 1 サイクルが始まり直す日で、1〜31 です。日数の少ない月では、その月の最終日が使われます。
Save allowances(枠を保存) 3 つの欄を保存します。
Reset tracked spend(記録した支出をリセット) 確認を求めた後、3 つの欄を保存し、現在のサイクルの合計を消去します。プランやアカウントを変えた後に使います。OAR はエージェントの現在の合計から数え始めるので、過去の支出が二重に数えられることはありません。

メーターは、モデルの生のコストを枠と比べて示します。カードには Cursor が実際に請求した額も表示されます。プランに含まれる利用では、これは 0 のことがよくあります。これらの数値はすべて推定です。Cursor が遅れて報告したコストは、それを確認したターンに記録されます。正確な情報源は Cursor 自身の Spending ダッシュボードで、カードからリンクされています。

ダッシュボードから取得するライブのプランバー。 ダッシュボードのセッショントークンがあると、カードには Cursor のダッシュボードからライブで読み取った Plan usage (total)(プランの使用状況、合計)、Auto + Composer、API のバー、プラン名、プランに含まれる支出とオンデマンドの支出、サイクルの実際の日付が加わります。そのときローカルのプールのメーターは補助的な表示に下がります。このトークンは API キーではなくセッションの Cookie で、API キーではこれらの数値を読み取れません。

項目 動作
Dashboard session token (live plan bars)(ダッシュボードのセッショントークン、ライブのプランバー) cursor.com にサインインしたタブの WorkosCursorSessionToken Cookie の値です(ブラウザーの開発者ツールの Application → Cookies にあります)。
Save token(トークンを保存) トークンを保存します。欄にはスペースを含められず、最大 8192 文字です。
Remove(削除) 確認を求めた後、保存したトークンを削除します。環境変数や Cursor アプリから取得したトークンは引き続き使われます。

OAR は次の順にトークンを探します。

  1. 保存したトークン。
  2. リレーの環境の CURSOR_SESSION_TOKEN。Cursor アプリのないホスト向けです。
  3. リレーのマシンにある Cursor アプリのサインイン。設定なしで、アプリのローカルの状態から読み取ります。

欄の下のステータス行に、使用中の情報源が表示されます。トークンはリレーにとどまり、ブラウザーに送られることはありません。Cursor がトークンを受け付けない場合、カードは推定値に戻り、どの情報源が拒否されたか、またはトークンが見つからなかったことを表示します。

エージェントは、relay_tool の usage アクションで同じ数値を読み取れます。

環境変数 #

リレーを起動する環境で設定します。

変数 効果
CURSOR_SESSION_TOKEN ライブのプランバーに使うダッシュボードのセッショントークンです。パネルで保存したトークンがこれより優先され、これは Cursor アプリのサインインより優先されます。
CURSOR_AGENT_STORE_DIR 会話ごとのエージェントの状態を置くフォルダーで、リレーのデータフォルダーの cursor-agents の代わりに使われます。Session ボタンもこれに従います。
OAR_TURN_STALL_IDLE_MS、OAR_TURN_STALL_MODEL_MS、OAR_TURN_STALL_TOOL_MS Cursor のターンが何も出力しないまま失敗するまでの時間です。処理中のものがないときは 120 秒、モデルリクエスト中は 5 分、ツール呼び出し中は 30 分で、0 は無制限です。ターンとキューを参照してください。セッションが tmux の下で動く場合、エージェントには渡されません。エージェントに届く変数を参照してください。

API キーはこの方法では設定できません。リレーはパネルのキーをワーカーに渡し、自身の環境にある CURSOR_API_KEY は無視します。

制限 #

上の表にある機能の欠落(軌道修正なし、タスクパネルなし、コンパクト化の設定なし、サブエージェントは 1 階層)のほかに、次の制限があります。

  • 質問カードは、エージェントが ask_user を呼び出すかどうかに左右されます。
  • 支出と枠は推定です。Cursor から取得するのはダッシュボードのバーだけです。
  • Cursor のプランの使用量の上限に達しても、会話は一時停止しません。ターンはほかの失敗したターンと同じように失敗するので、メッセージをもう一度送ります。

うまくいかないとき #

表示される内容 理由と対処
返信に System note: the Cursor runtime could not authenticate (…). Set or renew the Cursor API key in provider settings, then retry. と表示される OAR がエージェントを 2 回作り直した後も、Cursor がキーを拒否しました。Settings → Providers → Cursor に有効なキーを貼り付けて保存します。
New Chat に Cursor がない、または開始すると Cursor API key is not configured で失敗する キーが保存されていません。キーを保存します。
ステータス行に API key saved but currently disabled. と表示される Enable Cursor for New Chat model selection にチェックを入れます。
保存後に Cursor model discovery failed: … または Cursor model discovery returned no models と表示される キーが間違っているか、Cursor が 20 秒以内に応答しませんでした。キーを確認してもう一度保存するか、🤗 Select Models の Refresh を使います。そこで再読み込みに失敗すると、Cursor model discovery failed. Cached Cursor models were kept: … と表示されます。
Cursor model "…" is not available そのモデルは、このキーで使えるモデルの一覧にありません。一覧を再読み込みするか、別のモデルを選びます。
Invalid Cursor model ID Cursor model ID に、モデル ID に使えない文字が含まれています。モデルの一覧から ID をコピーします。
System note: the Cursor runtime sent nothing for Ns while a model request was running, so the relay ended the turn. ターンが許容時間を超えて何も出力せず(環境変数を参照)、OAR がターンを取り消しました。メッセージをもう一度送ります。ターンとキューを参照してください。
同じ内容で … while a tool was running (…) コマンドが 30 分間何も出力せずに実行されました。OAR_TURN_STALL_TOOL_MS を大きくするか、0 にして無制限にします。
System note: the turn completed without a text reply. エージェントが何も書かずに終了しました。何をしたのかエージェントに尋ねます。
Cannot remove Cursor API key while N active Cursor conversation(s) still exist. それらの会話をアーカイブするか削除します。または、代わりに Cursor をオフにします。
Check Usage の Cursor カードに推定値しか表示されず、トークンが見つからないと表示される リレーのマシンに Cursor アプリのサインインがありません。Dashboard session token にトークンを貼り付けるか、CURSOR_SESSION_TOKEN を設定します。
Live plan bars unavailable — Cursor did not accept … トークンの有効期限が切れています。Cursor アプリにもう一度サインインするか、新しいトークンを保存します。
That does not look like a WorkosCursorSessionToken cookie value 貼り付けたテキストにスペースか改行が含まれているか、8192 文字を超えています。Cookie の値だけをコピーします。
Session ボタンがグレーアウトしている 会話でまだターンが実行されていません。