OAR

Open Agent Relay

コーディングエージェントの舵を、どこからでも。

手元のマシンで動くコーディングエージェントを、スマートフォン、タブレット、別のパソコンなど、あらゆるブラウザーから操作できるセルフホスト型の Web リレーです。

curl -fsSL oar.sh/install | sh

実行する前にスクリプトを読んでください。Linux と macOS では Node.js は不要です。見つからない場合や古すぎる場合は、インストーラーが専用の Node.js を用意します。Windows では Node.js 22.13 以降が必要です。

セルフホストあなたのマシン、あなたのキーMITリレーにテレメトリーなし

利用シーン

どこにいても、本物の仕事を

OAR 自身の開発履歴を再現したものです。Cloudflare 上のメールサーバーとマルチプレイヤーゲームを、ブラウザーから動かしています。エージェントの思考を読み、質問に答え、ターンの途中で軌道修正できます。

スマートフォンで表示した OAR: 3 つのサブエージェントが依存ゼロの SMTP クライアントを完成させ、1,105 件のテストがグリーンになったとエージェントが報告し、それに「テストしたら動いた」と返信している スマートフォンで表示した OAR: 3 つのサブエージェントが依存ゼロの SMTP クライアントを完成させ、1,105 件のテストがグリーンになったとエージェントが報告し、それに「テストしたら動いた」と返信している
スマートフォンで — 席を外している間に、3 つのエージェントが SMTP クライアントを仕上げました。
OAR のデスクトップ表示: エージェントが、自分のデプロイですべてのメールボックスが起動できなくなったことを報告し、マイグレーションの順序が原因だった理由を説明し、本番が壊れている間も 37 件の統合テストがすべてパスしていたと述べている OAR のデスクトップ表示: エージェントが、自分のデプロイですべてのメールボックスが起動できなくなったことを報告し、マイグレーションの順序が原因だった理由を説明し、本番が壊れている間も 37 件の統合テストがすべてパスしていたと述べている
「デプロイして」— ひとこと送るだけで、エージェントは自分の失敗まで詳しく報告します。
展開した Thoughts ブロックを表示する OAR: エージェントは、Durable Object の input gating のせいでチェックが await をまたいで競合することを推論し、6 件のメッセージから 6 個のオブジェクトができたこと、修正して 78 件のテストがグリーンになったことを報告している 展開した Thoughts ブロックを表示する OAR: エージェントは、Durable Object の input gating のせいでチェックが await をまたいで競合することを推論し、6 件のメッセージから 6 個のオブジェクトができたこと、修正して 78 件のテストがグリーンになったことを報告している
答えだけでなく、そこに至る推論も読めます — 思考は画面に表示されます。
OAR の質問カード: エージェントが、SPF と DKIM に失敗したメールを planDelivery() でどう扱うかを尋ね、3 つの選択肢と自由入力欄を示している。ヘッダーには未回答の質問が 1 件と表示されている OAR の質問カード: エージェントが、SPF と DKIM に失敗したメールを planDelivery() でどう扱うかを尋ね、3 つの選択肢と自由入力欄を示している。ヘッダーには未回答の質問が 1 件と表示されている
判断が必要になると、エージェントは質問して待ちます — 返事はポケットの中からどうぞ。
実行中のターンを軌道修正する OAR: 前の追加メッセージにはターンの途中で取り込まれ、返信とまとめて処理されたことを示す印が付き、新しいリクエストは Stop ボタン付きで実行中、下書きのメッセージは Steer ボタンでの送信を待っている 実行中のターンを軌道修正する OAR: 前の追加メッセージにはターンの途中で取り込まれ、返信とまとめて処理されたことを示す印が付き、新しいリクエストは Stop ボタン付きで実行中、下書きのメッセージは Steer ボタンでの送信を待っている
ターンの途中で軌道修正 — 次の思いつきが、進行中の作業にそのまま加わります。
OAR の複数選択の質問カード: エージェントがどのメールボックスイベントで Web Push を送るかを尋ね、4 つの選択肢のうち 3 つにチェックが入り、Select several がオンで、Reply with selection でまとめて送信できる OAR の複数選択の質問カード: エージェントがどのメールボックスイベントで Web Push を送るかを尋ね、4 つの選択肢のうち 3 つにチェックが入り、Select several がオンで、Reply with selection でまとめて送信できる
答えが 1 つとは限らない質問もあります — 当てはまるものをすべて選び、返信は 1 回。

エージェントチーム

1 つのターンに、クルー全員

エージェントは作業をサブエージェントに分け、並列に進められます。OAR はそのすべてを画面に表示します。使っているモデル、いま実行しているコマンド、リアルタイムのトークン数、経過時間、そしてスマートフォンからも押せる Stop ボタン。

  • バックグラウンドタスクは、読んでいる間も、軌道修正している間も、席を離れている間も動き続けます。
  • サブエージェントは 1 つずつ追跡でき、個別に中止できます。
  • Claude と Copilot のタスクシステムにそのまま対応しています — バックグラウンドエージェントにも、切り離されたシェルにも。
3 つのバックグラウンドサブエージェントが SMTP クライアント、API と送信経路、設定 UI を並列に進めている Claude セッションを表示する OAR。それぞれにリアルタイムのトークン数、経過時間、Stop ボタンがある 3 つのバックグラウンドサブエージェントが SMTP クライアント、API と送信経路、設定 UI を並列に進めている Claude セッションを表示する OAR。それぞれにリアルタイムのトークン数、経過時間、Stop ボタンがある
3 つのエージェントが 1 つの仕事を分担 — リアルタイムのトークン数と、それぞれの Stop ボタン。
Copilot のバックグラウンドタスクを実行する OAR: GPT-5.6-sol と Haiku 4.5 で動く 2 つのバックグラウンドエージェントと、監視中の Bash シェル。それぞれに実行中のコマンド、トークン数、経過時間、Stop ボタンがあり、その上にバックグラウンド継続の返信が表示されている Copilot のバックグラウンドタスクを実行する OAR: GPT-5.6-sol と Haiku 4.5 で動く 2 つのバックグラウンドエージェントと、監視中の Bash シェル。それぞれに実行中のコマンド、トークン数、経過時間、Stop ボタンがあり、その上にバックグラウンド継続の返信が表示されている
Copilot でも同じクルー — バックグラウンドエージェントとシェル、それぞれにモデルと Stop。

セッションの監視

エージェントを見守るエージェント

エージェントは、同じリレー上やペアリングしたリレー上のほかのセッションを購読でき、そこで何かが起きると起こされます。きっかけは、回答を待っている質問、エラー、返信、完了したバックグラウンドタスク、静かになったセッションです。ポーリングは要りません。OAR が見守る側の会話に短いメモを書き込み、そこから先はエージェントが引き受けます。

  • 購読は通知するだけです。イベントが何かを承認したり、何かに回答したりすることはありません。エージェントにできることは、購読する前とまったく同じです。
  • 会話で最初の購読は、カードであなたが承認します。その後、ヘッダーに watching N sessions と表示され、購読ごとに Unsubscribe があります。
  • ペアリングしたリレーをまたいでも使えます。各イベントにはリレーの名前が付き、接続が切れていた間の出来事は、まとめて 1 行で再送されます。
  • 立て続けのイベントは 1 通のメッセージに、慌ただしい 1 時間はダイジェストにまとまります。それでも質問とエラーはすぐに届きます。
  • エージェント同士のやり取りでは、メモと返信が 1 行に折りたたまれます。どのサブエージェントも、その完全な記録をワンクリックで開けます。
OAR: リリース用のセッションが、ほかの 2 つのセッションを見守っています。完了した返信はコンパクトなリレーイベントの行として届き、「watching 2 sessions」の一覧が Unsubscribe 付きで開いています。ペアリングしたリレー上のセッションも見守りたいというエージェントの依頼が、Allow / Deny のカードで承認を待っています OAR: リリース用のセッションが、ほかの 2 つのセッションを見守っています。完了した返信はコンパクトなリレーイベントの行として届き、「watching 2 sessions」の一覧が Unsubscribe 付きで開いています。ペアリングしたリレー上のセッションも見守りたいというエージェントの依頼が、Allow / Deny のカードで承認を待っています
ほかの 2 つのセッションを見守るセッション。イベントはコンパクトな行で届き、新しい購読はあなたの Allow を待ちます。
OAR: 返信には、実行した 2 つのサブエージェントがモデル、トークン数、実行時間とともに並びます。その下では、ペアリングしたリレー上のエージェントからのプロンプトとその返信が 1 行に折りたたまれています(「note from ci-box · 夜間ベンチマーク · replied」) OAR: 返信には、実行した 2 つのサブエージェントがモデル、トークン数、実行時間とともに並びます。その下では、ペアリングしたリレー上のエージェントからのプロンプトとその返信が 1 行に折りたたまれています(「note from ci-box · 夜間ベンチマーク · replied」)
サブエージェントは行として報告を返し、開けば完全な記録が読めます。別のリレーのエージェントからのメモとその返信は、1 行に折りたたまれます。

ランタイム

1 つのリレー、8 つのランタイム

ランタイムは会話ごとに選べます。キューも、履歴も、UI も 1 つです。

OAR のデスクトップ画面。Agent モードで deepseek-flash を使う DeepSeek のチャット: プロンプトは DeepSeek に関する今日の主なニュースを出典付きで求め、返信は短い箇条書き 3 つと DeepSeek の API ドキュメントへのリンク 6 つを示し、ツールアクティビティには WebSearch の呼び出しが 3 回(うち 1 回は中国語)並んでいる OAR のデスクトップ画面。Agent モードで deepseek-flash を使う DeepSeek のチャット: プロンプトは DeepSeek に関する今日の主なニュースを出典付きで求め、返信は短い箇条書き 3 つと DeepSeek の API ドキュメントへのリンク 6 つを示し、ツールアクティビティには WebSearch の呼び出しが 3 回(うち 1 回は中国語)並んでいる
DeepSeek も使えます。DeepSeek の API 上で動く Claude Code で、ここでは deepseek-flash。Web 検索を 3 回(うち 1 回は中国語)行い、出典付きで答えます。

テーマ

昼も、夜も

OAR には Day モードと Night モードがあり、このページのスクリーンショットはすべて、上部バーの切り替えに連動します。境界線をドラッグして 2 つを見比べてください。隣のスマートフォンは、このページがいま使っていないほうのモードを表示します。

シンタックスハイライトされたコードブロックを含む返信の OAR デスクトップ表示: 同じ画面を、動かせる境界線の左側に Day モード、右側に Night モードで表示している
コードブロックを含む 1 つの返信: 左が Day、右が Night。境界線をドラッグするか、矢印キーで動かせます。
スマートフォンで表示した Day モードの OAR: コードブロックを含む同じ返信 スマートフォンで表示した Night モードの OAR: コードブロックを含む同じ返信
同じ会話をスマートフォンで。このページがいま使っていないほうのモードで表示しています。

機能

OAR でできること

プランの使用状況

プランの残りを、いつでも把握

OAR はプロバイダーごとにプランの使用状況を追跡し、1 つのモーダルにまとめます。ターンの途中でも「Check Usage」を開けば、今夜のエージェント作業がまだプランに収まるかどうかがわかります。プロバイダーに止められる前に、エージェントを操作しているのと同じブラウザータブで確認できます。

  • Claude のサブスクリプション: 5 時間のセッション枠、週間の上限、モデルごとのセッションコスト。
  • Copilot: プレミアムリクエストのクォータと、SDK ワーカーのターンごとの詳細 — AI クレジット、トークン、モデル呼び出し。
  • DeepSeek: 残高、任意の月間予算、日別・モデル別の推定支出、そして Web 検索の回数。
  • Claude API: 今日と今月のモデル別の推定支出、そして任意の月間上限のバー。
  • Cursor と Grok にも専用のカードがあり、同じパネルから情報が届きます。
  • 数値はワーカー自身の報告とプロバイダーのクォータ API から取得し、作業に合わせて更新されます。
スマートフォンで表示した OAR の使用状況モーダル、Max プランの Claude カード: 現在の 5 時間セッションが 72 パーセント、週間の上限が 41 パーセント、週間の Opus が 23 パーセントで、モデルごとのセッションコストの内訳も表示されている スマートフォンで表示した OAR の使用状況モーダル、Max プランの Claude カード: 現在の 5 時間セッションが 72 パーセント、週間の上限が 41 パーセント、週間の Opus が 23 パーセントで、モデルごとのセッションコストの内訳も表示されている
スマートフォンで見る Max プランの Claude — 5 時間枠の 72% を使用、モデルごとのセッションコストも。
OAR の使用状況モーダル、Pro+ プランの GitHub Copilot カード: プレミアムリクエストは 1,500 件中 1,062 件を使用、プランのクォータは 31 パーセント、チャットと補完は無制限で、SDK ワーカーの直近のターンの詳細として AI クレジット、トークン、モデル呼び出しが表示されている OAR の使用状況モーダル、Pro+ プランの GitHub Copilot カード: プレミアムリクエストは 1,500 件中 1,062 件を使用、プランのクォータは 31 パーセント、チャットと補完は無制限で、SDK ワーカーの直近のターンの詳細として AI クレジット、トークン、モデル呼び出しが表示されている
Pro+ プランの Copilot — プレミアムリクエストは 1,500 件中 1,062 件を使用。SDK ワーカーのターンごとの詳細は、トークンやモデル呼び出しまで。
OAR の使用状況モーダル、DeepSeek のカード: 開始時の残高 $25.00 のうち $6.60 を使用、月間予算 $10.00 のうち $5.97、DeepSeek Flash と DeepSeek V4 Pro の日別支出を示す 30 日間のグラフ、キャッシュヒット・キャッシュミス・出力に分けた支出、そして検索 6 回を数える Search 行のあるモデル別の推定支出 OAR の使用状況モーダル、DeepSeek のカード: 開始時の残高 $25.00 のうち $6.60 を使用、月間予算 $10.00 のうち $5.97、DeepSeek Flash と DeepSeek V4 Pro の日別支出を示す 30 日間のグラフ、キャッシュヒット・キャッシュミス・出力に分けた支出、そして検索 6 回を数える Search 行のあるモデル別の推定支出
DeepSeek — 開始時の残高に対する現在の残高、月間予算、日別・モデル別の支出、そして Web 検索の回数まで。
OAR のコンテキスト使用状況モーダル: 1M のコンパクション枠のうち 318.4k トークンを使用。内訳はシステムとツール、メッセージ、空き容量、自動コンパクト用の予約分で、自動コンパクト枠のスライダーと、思考および思考テキストの切り替えがある OAR のコンテキスト使用状況モーダル: 1M のコンパクション枠のうち 318.4k トークンを使用。内訳はシステムとツール、メッセージ、空き容量、自動コンパクト用の予約分で、自動コンパクト枠のスライダーと、思考および思考テキストの切り替えがある
コンテキストウィンドウも — Claude が思考するかどうか、その思考を読むかどうかも選べます。

ひとつだけ、はっきりお伝えします。これは請求明細ではありません。クォータの数値はプロバイダーから取得していますが、セッションコストは OAR がトークン数からクライアント側で算出した推定値です。請求書ではなく、目安としてご覧ください。

インストール

クイックスタート

  1. すでに使っているプロバイダーの CLI が少なくとも 1 つ必要です(Copilot、Claude、Cursor、Grok のいずれか、または OpenAI、DeepSeek、Claude Console の API キー)。Linux と macOS ではほかに何も要りません。Windows では Node.js ≥ 22.13 も必要です。
  2. ワンライナーを実行します。Linux と macOS では、これから行う内容を表示し、一度だけ確認を求めます。お使いの Node.js が十分に新しければそれを使い、そうでなければ OAR 専用の Node.js をダウンロードしてから、@oar-sh/oar をホームディレクトリにインストールします。root 権限は一切要りません。macOS での動作はまだテストしていません。
  3. インストーラーは新しい認証トークン入りの設定ファイルを書き出し、リレーを起動して、リレーの URL と QR コードを表示します。開けばすぐに使えます。systemd がユーザーセッションを動かしている環境では、リレーはサービスとして動き、再起動後も自動で立ち上がります。Windows では、インストーラーが oar setup に処理を引き継ぎ、トークン、アクセス範囲、ポートを尋ねます。そのあと oar start でリレーを起動してください。
  4. オプション(既定ではオフ): スマートフォンから直接つなぐための LAN アクセスは oar setup で有効にできます。ネットワークの外からアクセスするためのトンネルは設定ファイルで指定し、あなたがインストールした cloudflared を使います。その後は oar だけでメニューが開き、起動、停止、再起動、状態、URL、サービスを選べます。ターミナルでの Copilot セッションは oar copilot です。

続きはドキュメントの 初回起動 へ — サインイン、スマートフォンでリレーを開く方法、そしてその先のすべてを説明しています。

信頼

セキュリティについて、率直に

OAR はあなたのハードウェア上で動き、既定では localhost にのみバインドします。認証トークンはローカルで生成され、マシンの外に出ることはありません。リモートアクセスはオプトインで、あなたが管理するトンネルを経由します。ひとつだけ、はっきり認識しておいてください。リレーするエージェントは、あなたのユーザー権限で動作します。OAR が広げるのは手の届く範囲であって、サンドボックスを提供するわけではありません。

FAQ

よくある質問

Copilot のサブスクリプションは必要ですか?
いいえ。ランタイムが 1 つあれば十分です。OAR は、すでにお持ちのエージェントをそのままリレーします。
作業中のエージェントにメッセージを送れますか?
はい。Claude と、Copilot の既定の SDK エンジンでは、送信した内容はターンの終了を待たずに、実行中のターンに加わります。エージェントが質問への回答を待っている場合は、メッセージはキューに入り、回答の直後に処理されます。
Windows で動きますか?
はい。リレーは Windows、macOS、Linux で動作し、ブラウザー側はどこでも動きます。
OAR は私のコードをどこかに送信しますか?
OAR 自体は何も送信しません。コードが送られるのは、あなたが呼び出したモデルプロバイダーだけで、各プロバイダーの CLI から使う場合とまったく同じです。
アップデートの仕組みは?
確認はオプトインです。設定で有効にするか「Check now」を押すまで、リレーはどこにも接続しません。新しいバージョンが表示されたら、タップして更新します。再起動するのは、ターンの途中のエージェントがいないときだけです。自動で更新されることはありません。
VPS やホームラボで動かせますか?
はい。Node が動く場所ならどこでも動きます。認証トークンは安全に保管し、ポートを開放するよりトンネルを使ってください。

変更履歴

新着情報

  1. 0.9.19

    • メモリが不足したリレーは、停止したままにならず、自動で再び起動するようになりました。リレーはヒープ上限(RAM の 60%、2048〜8192 MB。config.json の heapLimitMb で設定)を付けて起動し、上限に近づくとデータフォルダーの diagnostics にヒープスナップショットを 1 つ書き出します。ヒープスナップショットにはリレーの認証トークンと API キーが含まれるため、そのまま共有しないでください。ログには 10 分ごとと、ヒープが上限の 80% を超えたときに、リレーのメモリが記録されます。
    • エージェントのセッションは、後のリレーの更新で加わるプロバイダーを再起動なしで使えます。relay_tool はどのプロバイダー ID でも受け付け、リレーが現在の一覧と照合し、拒否するときはその一覧を示します。
    • Copilot は、ほかのプロバイダーのモデル ID(Copilot の claude-opus-5.5 に対する claude-opus-5-5 など)を、何かを作成する前に COPILOT_MODEL_UNAVAILABLE と最も近い候補を添えて拒否します。
    • すべての変更はリリースノートにあります。
  2. 0.9.18

    • Claude のチャットを Claude Console の API キーで動かせるようになりました。Claude API は Claude(サブスクリプション)と並ぶプロバイダーで、キーが属する Console の組織に課金されます。Settings → Providers → Claude API では、キー、既定のモデル、任意の月間支出上限(米ドル)を設定します。キーはリレーのマシンに保存され、二度と表示されません。New Chat で Claude API を選べ、そのチャットには金色の「Claude API」ラベルが付きます。
    • Claude のチャットは Subscription | API key の切り替えで、サブスクリプションとキーの間を行き来でき、Claude Code のセッションはそのまま保たれます。切り替えは次のターンから有効です。キーでの最初のターンにはプロンプトキャッシュがないため、費用が多めにかかります。サブスクリプションのチャットが Claude の使用量の上限で一時停止しているときは、キーへ移れるチャットであればバナーが切り替えを提案し、一時停止中のターンはすぐにキーで続行されます。勝手に切り替わることはありません。エージェントも relay_tool の send でセッションの課金先を切り替えられます。
    • 使用状況ビューに Claude API カードが加わりました:このリレーでキーを使ったターンの今日と今月の推定費用(モデル別、トークン数付き)と、設定した場合は月間上限のバー。数値は Claude Code 自身の見積もりで、実際の金額は Console の請求ページにあります。今月の見積もりが上限に達すると、キーでの新しいターンは実行されず、キーへの切り替えは拒否され、新しい Claude API チャットには CLAUDE_API_CAP_REACHED が返ります。そのとき New Chat には Start on subscription が表示されます。すでに実行中のターンは最後まで進みます。
    • DeepSeek と Claude API のチャットは、すべてのフックをオフにして起動します。フックもステータスラインも実行されず、フォルダーの設定で再びオンにすることもできません。マネージド設定のフックは引き続き実行され、Claude ログインで動くチャットはフックとステータスラインをそのまま使えます。
    • サブスクリプションのチャットが、Claude Code の設定から渡された API キー(env.ANTHROPIC_API_KEY、apiKeyHelper、Console ログイン)で動くことはなくなりました。ターンは Claude Code の起動時に止まり、キーの出どころと削除すべき設定を示すメモが表示されます。それより前に送られうるモデルへのリクエストは、最大 1 件です。
    • リレーのエージェントツールは relay_tool という名前になりました(Claude では mcp__relay__relay_tool)。アクションとフィールドは変わりません。独自の指示、権限ルール、フックで remote_relay を指定している場合は書き換えてください。OAR の MCP サーバー以外では、古い名前は拒否されます。
    • すべての変更はリリースノートにあります。
  3. 0.9.17

    • DeepSeek が独立したプロバイダーになりました。Settings → Providers → DeepSeek に DeepSeek の API キーを貼り付けると、New Chat で DeepSeek のモデルを選べます。DeepSeek のチャットはリレーのマシン上で Claude Code を DeepSeek の API に向けて動かし、4 つのモードすべて、ツール、質問カード、サブエージェント、軌道修正、バックグラウンドタスク、low・high・max の reasoning effort、1M のコンテキストウィンドウが使えます。
    • キーはリレーのマシンに保存され、ブラウザーには一切送られず、DeepSeek のワーカーにだけ渡ります。チャットのフォルダーにある .claude/settings.json や .claude/settings.local.json が、キーをほかへ送ることはできません。これは設定を守るもので、コマンドは対象外です。これらのファイルのフックやステータスラインは、どの Claude Code のチャットとも同じくリレーのユーザーとして実行されます。DeepSeek のチャットは、信頼できるフォルダーでだけ使ってください。
    • 使用状況ビューに DeepSeek カードが加わりました:アカウントの残高、このリレーでの DeepSeek ターンのモデル別の推定支出(DeepSeek の公開価格で、ピーク時間帯とオフピーク時間帯を区別)、直近 30 日の日別支出、そして設定した場合は月間予算。DeepSeek タブの Import usage export を使うと、エクスポートの対象日については DeepSeek 自身の数値がカードに表示されます。
    • グループ内の新しいセッションは、グループの先頭に表示されます。あなたが決めた並び順はそのまま残ります。
    • リレー自身の Anthropic の認証情報は、リレーが起動するエージェントに渡らなくなりました。ANTHROPIC_API_KEY と ANTHROPIC_AUTH_TOKEN はどのワーカーにも渡らず、リレーの環境にある Claude のログイントークンは Claude と Claude Cloud のワーカーにだけ渡ります。そうしたキーで動いていた Claude のチャットは、今後はホストの Claude ログインで動きます。
    • 修正: Inbox は先頭か、前回離れた位置で開きます。スマートフォンではセッションのヘッダーが 2 行になります。OpenAI の画像モデルが SDK エンジンで再び動きます。
    • すべての変更はリリースノートにあります。
  4. 0.9.16

    • エージェントは作業を止めずにあなたに質問できるようになりました。サイドバーの新しい Inbox には、このリレーとペアリングしたリレーからの未回答の質問がすべて 1 か所に並びます。そこでもセッションの中でも答えられますが、ペアリングしたリレーの承認カードはそのリレー側で開きます。
    • エージェントはプロンプトを 1 回だけ、または数分ごとに予約でき、リレーは再起動後もそれを保ちます。会話のヘッダーにはその予約が一覧になり、それぞれに Cancel ボタンが付きます。
    • エージェントはほかのセッションのモデル、モード、タイトル、グループ、作業フォルダーを変更できます。そのエージェントが開始していないセッションでは、先にあなたの Allow が必要です。
    • エージェントは開始したセッションをあなたのセッショングループに入れられます。セッションを見守るエージェントは、起こされる回数を減らすよう頼めます:数分ごとのまとめ、静かな時間帯、または対象から外すセッション。
    • エージェントが開始したセッションの 🧠 設定に新しいスイッチが加わり、そのセッションのエージェントが自分でもセッションを開始できるようになります。
    • 修正: リレーのイベントやほかの自動メッセージはあなたのメッセージとして数えられなくなり、互いにプロンプトを送り続けるエージェントはより早くあなたに尋ねます。
  5. 0.9.15

    • Windows では oar setup がリレーの起動方法を尋ねます:サインイン時、誰もサインインする前の起動時(管理者の確認が 1 回)、または起動しない。あとから oar autostart signin|boot|off|status で切り替えと設定の確認ができます。
    • oar uninstall はリレーを止め、OAR が作った自動起動エントリを外し、パッケージを削除します。設定・会話・アップロードは残り、その場所を表示します。--purge は delete と入力したあとにそれらも削除します。
    • 管理者の確認を拒否しても何も変わりません。プロファイルのパスに空白、アポストロフィ、ü のような非 ASCII 文字があっても起動時モードが動きます。
    • 手作りの自動起動タスクや、管理者しか読めないタスクは、コピーなしに削除・置き換えされません。OAR は止まって --replace を求め、それは先にコピーを残します。0.9.14 では起動時モードへの切り替えでそうしたタスクがコピーなしに削除されることがありました。
    • npm パッケージが小さくなりました:開発者向けの 2 つの README は GitHub だけにあります。
  6. 0.9.14

    • Windows の自動起動、または単なる gh copilot が起動したリレーで 0.9.13 から更新する前に: これらのリレーは会話をインストール済みパッケージの中に保存していたため、更新するとパッケージと一緒に消えてしまいます。すべての gh copilot セッションを閉じて oar stop を実行し(リレーが動き続ける場合はタスク マネージャーでその node.exe を終了)、パッケージの server\data と server\uploads フォルダーを安全な場所にコピーしてから、npm i -g @oar-sh/oar --allow-scripts=@oar-sh/oar,better-sqlite3,koffi で更新してください。--ignore-scripts は決して使わないでください。すべての手順はリリースノートにあります。
    • 自動起動と gh copilot のリレーは、oar start と同じデータをパッケージの外で使うようになりました。更新は、以前のバージョンがパッケージ内に置いていたデータを npm が削除する前にコピーし、リレーは次の起動時にそれを引き継ぎます。何も削除されず、どちらのデータベースが新しいか判断できない場合、リレーは止まってそう伝えます。
    • クラッシュや停電で残ったリレーのロックが次の起動を妨げることはなくなり、二つの起動が両方とも動くこともなくなりました。Windows の自動起動は %TEMP% とデータのドライブを最大 5 分待つため、RAM ディスクや遅れてマウントされるドライブでつまずくことはありません。
    • Cursor の会話は更新後もエージェントを保ち、アップロードは設定の dataDir に従い、oar setup --migrate-from はインストーラーの実行後でも動きます。
    • エージェントはリレーが再び動き出したときに起こしてもらえるようになり(relay_restarted)、再起動後も作業を続けられます。エージェントのプレビューツールは、自分の会話のプレビューだけを一覧にして閉じます。
    • 承認カードは入力したテキストではなくクリックで答えます。返信欄に入力した「yes」が拒否として扱われることはなくなりました。
    • 修正: フォルダーが削除または名前変更された会話は、CLI のせいにせずそのことを伝えます。質問に答えても長いターンが再送されることはなくなりました。再開したサブエージェントは記録を開け、実行中は一覧に表示されます。reasoning effort を受け付ける Cursor のモデルにはすべて effort が渡ります。
  7. 0.9.13

    • リレーの再起動: 🌄 Restart web relay は、待つことになる実行中のターン、保留するメッセージ、バックグラウンドタスクを先に一覧にし、それぞれが動き続けるかどうかも示します。Restart when idle で再起動をキューに入れ、Restart now は待ちません。待っている間はどのページにもバナーが出て、セッション、待った時間、Restart now と Cancel restart が表示されます。
    • キューに入った再起動がいつまでも待ち続けることはなくなりました。Settings › General で設定した時間(既定は 30 分)を過ぎると、バナーとプッシュ通知が「今すぐ再起動するか、待ち続けるか、取り消すか」を尋ねます。ターンの実行中に勝手に再起動することはありません。
    • Settings › General でオンにできます: リレーの再起動でターンが途切れたセッションに、再起動後、何をしていたか確認して続けるよう短いメモが一度届きます。あなたのメッセージが再送されることはありません。
    • タスクコンソールはリレーの再起動をまたいで残ります。終了した行は ✓ や ✘ 付きで戻り、実行中のコマンドの出力はすぐに読めます。| tail が出力をせき止めている箇所には印が付き、ファイルにログを書くようヒントが出ます。広い画面では、タスクの行と Stop がコンソールの下に見えたままです。
    • Load earlier はコンソールのヘッダーにも置かれ、テスト実行は最後の 64 KB ではなくログ全体で数えられ、vitest の RUN・PASS・FAIL バッジは塗りつぶしで表示されます。
    • スクリプトやエージェントがモデルを指定せずに送ったメッセージは、リストの最初のモデルに切り替わらず、会話のモデル・effort・モードを保ちます。remote_relay はプロバイダーにないモデルを拒否し、近い候補を示します(「did you mean 'gpt-5.4'?」)。
    • 見守るエージェントが、正常に終わったシェルコマンドのたびに起こされることはなくなりました。既定では、終了したサブエージェントと失敗したタスクだけを知らされます。task_finished を指定すれば、これまでどおりすべてのタスクの終了を受け取れます。
    • 修正: 接続が止まったままでも、ワーカーはリレーの再起動後に再接続します。タスク行の説明と要約にある認証情報は伏せられます。古いメッセージの読み込み直後のスクロールが取り消されることはなくなり、上へスクロールした瞬間に届いたメッセージも ⌄ バッジに数えられます。タスクパネルが一瞬縮むこともなくなりました。ユニットテストは再び Windows で通ります。
  8. 0.9.12

    • タスクコンソール: タスクパネルのバックグラウンドコマンドやモニターをクリックすると、その出力をライブで読めます。色はそのまま、認証情報は伏せられ、進捗バーは最後の状態にまとめられ、Load earlier でログ全体をさかのぼれ、専用の Stop もあります。Claude のバックグラウンドシェルとモニター、Copilot のデタッチ/アタッチされたシェル、Grok のターミナルで開けます。
    • 静かなタスクとテスト実行: 行に「no output for 12 min」と表示され、Settings › General で選んだ時間(既定は 10 分)を過ぎると琥珀色になります。テスト実行(vitest、Playwright、node:test、jest、pytest)には ✓ 412 ✘ 2 のチップが付き、クリックすると最初の失敗に移動します。
    • Claude のバックグラウンドコマンドは既定で 2 時間、最大 8 時間まで実行できます(Settings › Providers › Claude)。Claude には、長い実行はファイルにログを書き、再起動をまたぐ必要がある実行は nohup で始めるよう伝えられます。
    • サブエージェントの行にはステップ数が表示されます。エージェントは remote_relay の read_task_output でペアリングしたリレー上のタスクの出力を読めます。
    • 長い会話もすばやく開き、さかのぼれます。会話がどれだけ長くても、リレーは要求されたページだけを読み込みます。
    • 会話に戻ったときやページを再読み込みしたときは、読んでいたメッセージに戻ります。古いページも含めてです。そのために各会話が保持するメッセージ数は Settings › General で設定できます。
    • 会話リストはアクティビティを色で示します。作業中のセッションのタイトルは明るい緑のまま、待機中のものは濃い緑になり、アニメーションの点はなくなりました。
    • 修正: 履歴のずっと上を読んでいる間に、新しいメッセージが間のメッセージを飛ばして表示されることはなくなりました。新しいメッセージは ⌄ ボタンに数えられて待ち、下へスクロールすると順番に読み込まれます。そこから送ったメッセージでは末尾に移動します。遅れて読み込まれる画像が、読んでいるテキストを押し下げることもなくなりました。Copilot のバックグラウンドタスクは「unknown」ではなく、終了コードを含めてどう終わったかを報告します。
  9. 0.9.11

    • セッショングループ: エージェントが開始したセッションは、それを開始したセッションの下に並び、グループの状況をまとめたピル(「3 · 1 waiting for you, 2 running」)が付きます。グループは中のすべてが終わると折りたたまれ、名前を付けたり、まとめてアーカイブや停止をしたりできます。折りたたまれたメンバーの質問は先頭の行に表示されます。
    • ドラッグ&ドロップ: セッションをグループに入れる、グループから出す、並べ替えることができます。セッションを別のセッションの上にドロップすると新しいグループになります。スマートフォンでは長押しして移動、キーボードでは Move up と Move down を使います。
    • Settings › Sharing に共有中のリンクが一覧され、コピー、更新、共有停止ができます。開かれるたびのアクセスログ(時刻、国、ブラウザー、オフにしない限り IP アドレス)も見られます。
    • 共有リンクはパスを外に出しません。パスを表示する、ファイル名だけ残す、両方隠す、から選べます。Preview as shared で閲覧者に見える内容を確認でき、🙈 リストには閲覧者から隠したメッセージがまとまります。
    • セキュリティ: 誤ったトークンが 10 回続くとそのアドレスは 1 分間ロックされます。ライブチャネルはリレー自身のオリジンだけを受け付け、転送ヘッダーは信頼したプロキシからのものだけを使い、?token= はページのサインインにだけ使われます。別ホストのリバースプロキシの背後では trustProxy と allowedOrigins を設定してください。
    • Day/Night が ⋯ メニューに戻りました。隣には新しい About OAR があり、バージョン、プロバイダー、累計、リレーの状態がひと目でわかります。
    • 修正: プレビューのリンクはリレーを再起動しても残ります。再起動で実行中のバックグラウンドタスクが忘れられることはなくなりました。ワーカーは再起動後に再接続し、PATH に node がなくても起動します。上のほうを読んでいる間に会話がスクロールすることはなくなり、リーダーの幅の広い表は専用の枠内でスクロールします。
  10. 0.9.10

    • エージェントがエージェントを見守る: エージェントは、自分のリレーやペアリングしたリレー上のほかのセッションを購読し、そこで起きたことで起こされます。きっかけは、回答を待っている質問、エラー、返信、完了したバックグラウンドタスク、静かになったセッションです。購読は通知するだけで、何も承認しません。会話で最初の購読はカードであなたに確認し、ヘッダーには watching N sessions と、購読ごとの Unsubscribe が表示されます。
    • サブエージェントの記録をまるごと開けます。思考、入力と結果を含むすべてのツール呼び出し、そして返信まで、実行中もリアルタイムで表示されます。ツール出力を残す期間は Settings → General で決められます。
    • エージェント間のメモは 1 行に折りたたまれ、開くとプロンプトと返信が表示されます。エージェントは各プロバイダーのプランの残りを確認でき、セッションが作業中か、バックグラウンドで処理中か、アイドルかもわかります。
    • ファイルブラウザーで、フォルダーを作成し、ファイルとフォルダーの名前を変更、削除できます。右クリック、スマートフォンでは長押しで操作します。
    • ⌄ ボタンで最新のメッセージに戻れます。ボタンにはその間に届いた件数も表示されます。会話の表示は、ストリーミング中の返信や、開始したバックグラウンドタスクにも追従し続けます。
    • プロセスがまだ動いているセッションをアーカイブするときは、先に確認するようになりました。最初のチャットを作る前でも Settings を開けます。
    • 修正: 切断された WebSocket でリレーが落ちることはなくなりました。スマートフォンで ⌄ をタップしてもキーボードが開かなくなりました。キューに入れたリレーの再起動が、処理中のリレーでいつまでも待ち続けることはなくなりました。ホストをスリープから復帰させても、実行中のターンが再起動されなくなりました。長いコマンドを待っている Cursor のターンが、固まったとみなされて終了することもなくなりました。会話を切り替えた直後に送ったメッセージは、送った会話に表示されます。
  11. 0.9.9

    • oar だけでメニューが開きます。リレーが動いているかどうかを、バージョン、URL、ポート、アクセス範囲、サービスとあわせて表示し、起動、停止、再起動、URL と QR コード、設定、サービス、更新、Doctor を選べます。新コマンド: oar stop、oar restart、oar status、oar url、oar service。ターミナルでの Copilot セッションは oar copilot になりました。oar setup はアクセス範囲(このマシンのみ、または LAN)とポートを尋ね、変更した設定は実行中のリレーに反映されます。
    • ファイルが画面いっぱいに表示されます。画像、動画、音声は黒い背景に、テキストは読みやすい幅の段に。フォルダーの中やチャットのメディアをスワイプでめくれ、矢印キーでも同じことができます。PDF はブラウザー自身のビューアーで開き、音声はビューアー内で再生され、戻るジェスチャーはビューアーだけを閉じます。
    • メッセージをピン留めできます。各メッセージの Hide の隣に Pin ボタンがあります(スマートフォンでは吹き出しをタップすると表示されます)。ピンのある会話はヘッダーに件数付きの 📍 ボタンを表示し、一覧から該当メッセージへ移動できます。履歴のずっと上にあっても構いません。
    • ダウンロードは今あるとおりのファイルを渡します。リンクにはファイルのバージョンが付き、保存名には最後に変更した時刻が付きます。リレーとあなたの間のどのキャッシュも、API の応答を保持できません。
    • 内蔵の Cloudflare トンネルは、あなたがインストールした cloudflared を使います。同梱していたコピーはなくなりました。トンネルを使っていた方は、更新後に cloudflared をインストールしてください。リレーは見つけ次第トンネルを開始します。
    • プロバイダー SDK: Copilot SDK 1.0.17、Claude Agent SDK 0.3.292、Cursor SDK 1.0.36。
    • 修正: PDF が再びブラウザーのビューアーで開くようになりました。音声ファイルと SVG は本来の種類として配信されます。アップロードした動画でシークできます。日本語、中国語、絵文字を含む名前のファイルが再び配信されます。履歴へのジャンプは、着地した場所にとどまります。
  12. 0.9.8

    • OAR にロゴができました。カワウソです。起動画面、サインインボックス、タブのアイコン、インストールしたアプリのアイコンが Day モードと Night モードに連動し、テーマは最初の描画より前に適用されます。
    • インストールしたアプリは、ひと続きの動きで起動します。起動画面が、スマートフォンのスプラッシュ画面からそのまま続きます。
    • Claude セッションがコンテキストをコンパクト化している間、実行中のターンの上に Compacting context… という行が表示されます。完了後は Context compacted に変わり、トークン数を示します。
    • 自動コンパクト枠の変更が、きちんと反映されるようになりました。セッションは、何も実行していないときに一度だけ再起動し、返信でそのことを知らせます。
    • Linux と macOS のインストーラーが、最後までやり遂げるようになりました。確認は 1 回、Node.js がない場合や古すぎる場合は専用のものを用意し、root は不要で、終わったときにはリレーが動いています。新コマンド: oar start と oar setup --start。
    • スクロールバーがマウスでつかみやすくなりました。ポインターを乗せている間、幅が 2 倍になります。
  13. 0.9.7

    • Claude Cloud(実験的機能、既定ではオフ): Anthropic のサンドボックスで、GitHub リポジトリの専用クローンに対して Claude Code を実行するチャットです。リポジトリとブランチを一覧から選び、ターンをリアルタイムで追い、質問に答え、停止し、ターンの合間にモデルを切り替えられます。結果は push されたブランチとして戻ってきます。
    • 会話を削除する代わりにアーカイブできます。会話を右クリック(スマートフォンでは長押し)するとメニューが開きます: 開く、名前の変更、停止、強制終了、アーカイブ、削除。
    • エージェントセッション: 有効にすると、エージェントは自分が動いているリレー上で別のセッションを開始し、完了を待ち、結果を読めるようになります。
    • Claude セッションのコミットとプルリクエストには Co-authored-by: Open Agent Relay (model) が付きます。OAR の行、Claude Code 自身の行、行なしのいずれかを、リレーごと、フォルダーごとに選べます。
    • Check Usage は直近の読み取り値ですぐに開き、リアルタイムで読み取るのは開いているタブだけです。
    • 修正: 1 つの段落に価格が 2 つあっても、数式として表示されなくなりました。エラーコードに触れた返信が、失敗したターンとして保存されることもなくなりました。Windows では、プロセス一覧の読み取り中にリレーが固まらなくなりました。
  14. 0.9.6

    • Claude セッションは使用量の上限に達すると一時停止し、リセット後に再開します。バナーが再開時刻を示し、Resume now と Cancel を選べます。一時停止はリレーを再起動しても維持されます。リセットが 6 時間以上先の場合はあなたの操作を待ち、上限の 90 % に達すると別のバナーで警告します。
    • 何も出力しないコマンドが、ターンを失敗させることはなくなりました(Copilot、Cursor、Grok)。ターンが無言でいられるのは、何も実行中でなければ 2 分、モデルへのリクエスト中は 5 分、ツールの実行中は 30 分です。
    • Copilot のターンは、失敗するときもきちんと失敗します。失敗は、エージェントのテキストを上に残したまますぐに表示されます。固まったターンでも Stop が効き、完了した返信はリレーの再起動後も残り、停止したランタイムのコマンドは止められ、コマンドの実行中に送ったメッセージはその完了を待ちます。
    • ペアリングしたリレー上のエージェント同士が、セッションを通して応答し合えます。あなたの発言がないままエージェント間のプロンプトが 30 回続くと、次の 1 回は先にあなたに確認します。
    • サブエージェントは実行中のターンの中で 1 行のヘッダーに折りたたまれ、プランボードは対応する返信の中に表示されます。あなたの選択は、セッションのモードにも反映されます。
    • 失敗時のメモがリレーの再起動を勧めることはなくなり、リレーはコンソール出力を relay-console.log に残します。
  15. 0.9.5

    • Claude の返信が、あなたのメッセージの下ではなくバックグラウンド継続として公開された場合に、会話が最大 5 分間ブロックされることはなくなりました。あなたのメッセージは約 45 秒の無音のあとで完了し、その返信を示す短いメモが付きます。
    • エージェントは、別のリレーで開始するセッションやプロンプトを送るセッションの reasoning effort を設定できます。
    • 別のリレーからの返信を待つ処理が、リモートのエージェントがまだ作業中なのに途中の回答で止まることはなくなりました。
    • Windows のセッションワーカーも、Linux と同様にワーカーログを書き出すようになりました。
  16. 0.9.4

    • リモートリレー: Settings → Relays で 2 つのリレーをペアリングすると、一方のエージェントが、もう一方のセッションを一覧表示し、読み、プロンプトを送り、新しく開始できます。
    • ペアリングしたリレーは、会話の中であなたが言及して初めて、その会話で使えるようになります。制限はリレーごとに設定でき、Ask モードと Plan モードでは書き込み操作の前に確認があり、トークンはリレーの外に出ません。
    • Grok と Copilot の拡張機能エンジンが、新しい OAR MCP サーバーを通じて本物のツールを使えるようになりました。
    • 実行中の返信を追いかける: 3 つのトグルで、伸びていく返信の思考、回答、ツール一覧のいずれかを常に表示しておけます。
    • Suspend host(Windows)は、エージェント、バックグラウンドタスク、CI の実行が終わるまで待ちます。Stop は、ターンをキャンセルする前に確認します。
    • 修正: Claude のモデルを切り替えても次のメッセージが取り残されなくなり、アイドル状態の接続は 65 秒間開いたままになります。
  17. 0.9.3

    • 実行中のターンを軌道修正: Claude と Copilot では、エージェントの作業中に送信したメッセージがそのターンに加わります。
    • Copilot のバックグラウンドエージェントとシェルがタスクパネルに表示されます。モデル、実行中のツール呼び出し、そしてきちんと効く Stop 付きです。
    • 質問カードで複数の回答を選べます。
    • 下書きはデバイスをまたいでも安全です。操作していないデバイスが、入力中の内容を上書きすることはなくなりました。
    • タイトルフィルターですべての会話を検索できます。スマートフォンを回転させても、読んでいた位置が保たれます。
    • 会話を削除すると、そのワーカーも停止し、OAR がその会話用に作成した CLI セッションも削除されます。
  18. 0.9.2

    • セルフアップデート(オプトイン): 設定から、または oar update で更新できます。あなたが指示するまで、バージョンの確認は一切行いません。
    • Copilot は既定で SDK ワーカーエンジンで動作します。
    • 画像、動画、音声がエージェントの返信にインラインで埋め込まれます。タップして開き、拡大し、ダウンロードできます。
    • Copilot のモデルカタログが正確になりました。実際のコンテキストウィンドウと、モデルごとの reasoning effort を表示します。
    • Windows では、誰もログインしていなくても、システムの起動時にリレーを開始できます。
    • セッション、キュー、ワーカーの信頼性に関する多数の修正。
  19. 0.9.1

    グローバルバイナリを修正し、インストール後に oar が見つかるようにしました。

  20. 0.9.0

    OAR — Open Agent Relay としての最初のリリース。

すべてのリリースノートを GitHub で見る