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- の下にあります。グローバルインストールでは ~/.(Windows では %APPDATA%\)、git チェックアウトでは server/ です。0.9.14 で追加 0.9.14 より前のグローバルインストールでは、状態フォルダーはパッケージのフォルダーの中にあり、更新でそのフォルダーが置き換わるため、会話がエージェントを失うことがありました。フォルダーがまだ残っている会話は、引き続きそれを使います。CURSOR_ で場所を移せます。環境変数を参照してください。
有効にする #
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- |
新しい Cursor の会話が最初に使うモデルです。空欄は composer- を意味します。 |
| Save Cursor settings(Cursor の設定を保存) | キーとモデルを保存します。初めて新しいキーを保存すると、Cursor が有効になります。 | |
| Remove saved key(保存したキーを削除) | 確認を求めた後、キー、検出したモデル、Select Models(モデルを選択)での選択を削除し、Cursor をオフにします。モデル ID は残ります。 |
欄の下のステータス行に、現在の状態が表示されます。
| ステータス | 意味 |
|---|---|
Not configured. New conversations use Git |
キーが保存されていません。 |
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- は xhigh として表示されます。OAR が知らないレベルは表示されません。
noneは常に一覧にあります。モデルが推論をオフにできる場合、noneは推論をオフにします。できない場合、入力欄ではその項目が default(既定)と表示され、モデルは通常どおりに動きます。- reasoning effort を示さないモデルには
noneだけがあり、default と表示されます。 - 思考のスイッチがあるモデルでは、レベルを選ぶと思考がオンになり、
noneでオフになります。
ほかのモデルのサブエージェント。 Cursor に組み込まれたサブエージェントのメニューでは、少数のモデルしか選べません。そこで OAR は、Select Models で有効にしたモデルごとに 1 つのサブエージェントを宣言します。これでエージェントは、たとえば Grok や GPT のモデルにタスクを任せられます。名前ではドットがダッシュになります(grok- は grok-)。サブエージェントはそのモデルの既定のバリアントで動き、reasoning effort は指定できません。選択の変更は次のメッセージから有効になります。
Cursor での OAR の機能 #
| 機能 | Cursor での動作 |
|---|---|
| リレーモード | plan は SDK 自身のプランモードで動きます。agent は通常のモードです。ask と autopilot では、モードが変わったときにメッセージの前に [Relay mode: …] の行が付きます。リレーモードを参照してください。 |
| 質問カード | OAR 独自の ask_ ツールを通じて表示されます。エージェントには、質問するにはこれしか方法がないと伝えられています。質問は最大 4 つ、選択肢はそれぞれ 2〜6 個で、複数選択も可能です。返信の本文に書かれた質問はカードになりません。ask_ を参照してください。 |
| プランボード | 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 は自動コンパクト化を設定も表示もしません。/ はどのプロバイダーとも同じように使えます。会話のコンパクト化を参照してください。 |
| 再開 | リレーは Cursor のエージェントの ID を保存し、再起動の後やワーカーのハンドルが閉じられた後にそのエージェントを再開します。エージェントを再開できない場合は、新しいエージェントが作られます。再起動と再開を参照してください。 |
| エージェントツール | preview と relay_ がツールとしてエージェントに渡されます。relay_ は、リレーにペアリングしたリレーがあるか、エージェントセッションが有効なときだけ渡されます。エージェントツールとエージェントセッションを参照してください。 |
作業フォルダーの . フォルダーにある Cursor 自身のプロジェクトルール、サブエージェントのファイル、MCP サーバーは読み込まれません。エージェントのツールとサブエージェントは OAR 自身が定義します。
長くアイドルだったエージェント #
30 分使われなかった Cursor のエージェントは閉じられ、次のメッセージで開き直されます。アイドルのまま数時間たつとサインインが古くなるためです。この動作は表に出ません。それでもサインインが古くなっていた場合、OAR はエージェントを作り直してメッセージをもう一度送ります。これを最大 2 回行い、Cursor session re- というアクティビティ行を追加します。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 にサインインしたタブの Workos Cookie の値です(ブラウザーの開発者ツールの Application → Cookies にあります)。 |
| Save token(トークンを保存) | トークンを保存します。欄にはスペースを含められず、最大 8192 文字です。 |
| Remove(削除) | 確認を求めた後、保存したトークンを削除します。環境変数や Cursor アプリから取得したトークンは引き続き使われます。 |
OAR は次の順にトークンを探します。
- 保存したトークン。
- リレーの環境の
CURSOR_。Cursor アプリのないホスト向けです。SESSION_ TOKEN - リレーのマシンにある Cursor アプリのサインイン。設定なしで、アプリのローカルの状態から読み取ります。
欄の下のステータス行に、使用中の情報源が表示されます。トークンはリレーにとどまり、ブラウザーに送られることはありません。Cursor がトークンを受け付けない場合、カードは推定値に戻り、どの情報源が拒否されたか、またはトークンが見つからなかったことを表示します。
エージェントは、relay_ の usage アクションで同じ数値を読み取れます。
環境変数 #
リレーを起動する環境で設定します。
| 変数 | 効果 |
|---|---|
CURSOR_ |
ライブのプランバーに使うダッシュボードのセッショントークンです。パネルで保存したトークンがこれより優先され、これは Cursor アプリのサインインより優先されます。 |
CURSOR_ |
会話ごとのエージェントの状態を置くフォルダーで、リレーのデータフォルダーの cursor- の代わりに使われます。Session ボタンもこれに従います。 |
OAR_、OAR_、OAR_ |
Cursor のターンが何も出力しないまま失敗するまでの時間です。処理中のものがないときは 120 秒、モデルリクエスト中は 5 分、ツール呼び出し中は 30 分で、0 は無制限です。ターンとキューを参照してください。セッションが tmux の下で動く場合、エージェントには渡されません。エージェントに届く変数を参照してください。 |
API キーはこの方法では設定できません。リレーはパネルのキーをワーカーに渡し、自身の環境にある CURSOR_ は無視します。
制限 #
上の表にある機能の欠落(軌道修正なし、タスクパネルなし、コンパクト化の設定なし、サブエージェントは 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_ を大きくするか、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_ を設定します。 |
Live plan bars unavailable — Cursor did not accept … |
トークンの有効期限が切れています。Cursor アプリにもう一度サインインするか、新しいトークンを保存します。 |
That does not look like a Workos |
貼り付けたテキストにスペースか改行が含まれているか、8192 文字を超えています。Cookie の値だけをコピーします。 |
| Session ボタンがグレーアウトしている | 会話でまだターンが実行されていません。 |