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

環境変数

OAR のほとんどは、Web UI か config.json で設定します。環境変数を使うのは、リレーが起動する前にわかっていなければならないことや、外から固定したいことです。たとえば、リレーがファイルを置く場所、oar.sh に接続してよいかどうか、プロバイダーのプログラムがある場所です。このページでは、ユーザーが設定できる変数を領域ごとにまとめて示します。

設定する場所 #

リレーが変数を読み込むのは、起動時の 1 回だけです。リレーを起動するプロセスの環境で設定し、変更したらリレーを起動し直してください。

  • サービスを使わない oar start: リレーは、oar start を実行したシェルの環境でバックグラウンドで起動します。そのシェル、またはそのシェルが読み込むプロファイルで変数を設定します。
  • systemd ユーザーサービス(oar service install、およびユーザーセッションがある Linux でのインストーラー)は、シェルを読み込みません。書き込まれるユニットファイルが設定するのは、COPILOT_WEB_RELAY_CONFIG、COPILOT_WEB_RELAY_DATA_DIR(シェルが別の値を設定していても、常にインストール自身の data/)、COPILOT_WEB_RELAY_LOG_DIR、そしてコマンドを実行したシェルの PATH に ~/.local/bin と Node.js のフォルダーを加えたものだけです。ユニットが存在し、systemd のユーザーセッションが応答する場合、oar start は常にこのサービスを使うので、シェルでエクスポートした変数はリレーに届きません。ユニットに変数を追加する設定は OAR にはありません。また、oar service install と oar setup --start はユニットファイルを書き直すので、自分で追加した行は残りません。自動起動とサービスを参照してください。
  • Windows の自動起動は、Settings → General → Autostart (Windows)(設定 → 一般 → 自動起動、Windows)で設定し、サインイン時またはシステムの起動時に動作します。小さなスクリプトを実行し、そのスクリプトが COPILOT_WEB_RELAY_CONFIG、COPILOT_WEB_RELAY_DATA_DIR、COPILOT_WEB_RELAY_LOG_DIR を設定して(システム起動時のものは Node.js のフォルダーを PATH にも追加します)、リレーを起動します。こちらもシェルから変数をコピーせず、変数を追加する設定も OAR にはありません。
  • サービスとして動いていないリレーを oar restart で再起動すると、古いプロセスと同じ環境で新しいプロセスが起動します。その場合に変数を変えるには、oar stop を実行してから、その変数を持つシェルで oar start を実行します。

インストーラーの変数は、リレーではなくインストールスクリプトが、スクリプトを実行するコマンドラインで読み込みます。OAR のインストールを参照してください。

エージェントのワーカーに届く変数 #

すべての会話は、リレーが起動するワーカープロセスの中で動きます。このページの変数のほとんどはリレー自身が読み込みます。いくつかはワーカーが読み込み、リレーの値がワーカーに届くかどうかは、ワーカーの起動方法によって決まります。

  • tmux なし(Windows、および tmux がインストールされていない Linux と macOS)では、ワーカーはリレーの環境で起動します。ただし、リレーがすべてのワーカーから取り除くもの(下記)は除きます。リレーに変数を設定すれば十分です。
  • tmux の下(tmux がインストールされた Linux と macOS)では、リレーは決まった変数のリストだけをワーカーに渡します。それ以外の変数は届きません。tmux サーバーがまだ動いていない場合、起動処理が立ち上げる tmux サーバーがリレーの環境の残りを保持することもありますが、それを当てにしないでください。

決まったリストは、このページで扱う範囲では COPILOT_WEB_RELAY_CONFIG、COPILOT_WEB_RELAY_LOG_DIR、COPILOT_WEB_RELAY_DATA_DIR、COPILOT_SDK_PATH、COPILOT_PROVIDER_MAX_PROMPT_TOKENS、COPILOT_PROVIDER_MAX_OUTPUT_TOKENS、CLAUDE_CONFIG_DIR、CLAUDE_CODE_EXECUTABLE、CURSOR_AGENT_STORE_DIR、GROK_CLI_COMMAND、GROK_ALWAYS_APPROVE、OAR_MCP_SERVER です。0.9.17 で追加 これらの変数と 1 回の起動の値(ワーカーの種類、モデル、フォルダー)は、そのワーカー自身のコマンドにだけ入り、tmux サーバーが以降のすべてのセッションのために保持する環境には入らなくなりました。どのワーカーのコマンドも、まずホストの Claude Code セッションの変数(下記)と、この起動で値のないリストの各変数と各プロバイダーキーの設定を解除します。以前の起動、古いリレー、または tmux サーバーを起動したシェルが残した値は、ワーカーに届きません。

0.9.17 で追加 CLAUDE_CODE_OAUTH_TOKEN は、すべてのプラットフォームで Claude と Claude Cloud のワーカーにだけ渡されます。tmux の下では、リレーのユーザーだけが読めるファイルを通じて渡されます。Claude Cloud を参照してください。0.9.18 で追加 Claude API 用に保存したキーも同じ方法で、Claude API のワーカーにだけ渡されます。Claude API を参照してください。ANTHROPIC_API_KEY と ANTHROPIC_AUTH_TOKEN は、どのプラットフォームでもどのワーカーにも渡されません。tmux の下では、tmux サーバーやログインプロファイルが何を保持していても、ワーカーのコマンドがこれらの設定も解除します。Claude を参照してください。

ワーカーが読み込む変数 tmux の下
OAR_TURN_STALL_IDLE_MS、OAR_TURN_STALL_MODEL_MS、OAR_TURN_STALL_TOOL_MS 渡されません。 tmux の下で動くワーカーには効果がありません。
CLAUDE_CODE_AUTO_COMPACT_WINDOW(Claude のワーカーが実行する Claude Code が読み込みます。DeepSeek や 0.9.18 で追加 Claude API のチャットの Claude Code には渡されません) 渡されません。
OAR_MCP_SERVER、CLAUDE_CONFIG_DIR、CLAUDE_CODE_EXECUTABLE、CURSOR_AGENT_STORE_DIR、GROK_CLI_COMMAND、COPILOT_PROVIDER_MAX_* 渡されます。リレーは GROK_CLI_COMMAND、それが設定されていなければ GROK_COMMAND を、すべての Grok のワーカーに GROK_CLI_COMMAND として渡します。
XAI_API_KEY(Grok CLI が読み込みます) 渡されません。
COPILOT_SDK_PATH 渡されます。自分で設定した値、またはリレーが解決したフォルダーです。COPILOT_PKG_DIR はリレーだけが読み込みます。

Claude Code の中から起動したリレー #

0.9.17 で追加 Claude Code セッションのシェル(たとえばエージェントのシェル)から起動したリレーの環境には、そのセッションの変数が入っています。リレーは、tmux の有無にかかわらず、すべてのワーカーからそれらを取り除きます。これにより、どのワーカーの Claude Code も、自分がそのセッションの一部だと誤認しません。

  • 名前で指定:CLAUDECODE、CLAUDE_CODE_ENTRYPOINT、CLAUDE_CODE_EXECPATH、CLAUDE_CODE_CHILD_SESSION、CLAUDE_CODE_AUTO_BACKGROUND_TIMEOUT_MS、CLAUDE_AGENT_SDK_VERSION、CLAUDE_AGENT_SDK_CLIENT_APP、CLAUDE_PID、CLAUDE_EFFORT、CLAUDE_PROJECT_DIR、CLAUDE_ENV_FILE
  • ファミリーで指定:すべての CLAUDE_CODE_SESSION_*(セッション ID を含む)、すべての CLAUDE_CODE_*_SESSION_ID、すべての CLAUDE_CODE_MESSAGING_*

自分の設定は残ります。それ以外のすべての CLAUDE_CODE_* 変数(CLAUDE_CODE_USE_BEDROCK や CLAUDE_CODE_GIT_BASH_PATH など)、それ以外のすべての CLAUDE_AGENT_SDK_* 変数、CLAUDE_CONFIG_DIR、そしてファミリーの中にある 2 つの設定 CLAUDE_CODE_SESSION_START_ANNOUNCEMENTS_BEFORE_PROMPT と CLAUDE_CODE_SESSION_LOG です。DeepSeek のチャットの Claude Code が受け取る変数はさらに少なくなります。DeepSeek を参照してください。

優先順位 #

変数によって異なり、どちらが優先されるかは表に記載しています。要点は次のとおりです。

  • データフォルダー(dataDir)、ワークスペースの許可リスト、プレビューの設定、トンネルのトークン、バイナリ、モードについては、変数が config.json より優先されます。トンネルのマーカーヘッダーは両方が統合されます。config.json にはログフォルダーのキーはありません。
  • CLAUDE_CODE_EXECUTABLE と GROK_CLI_COMMAND については、パネルからインストールしたプログラムが変数より優先されます。パネルはプログラムを config.json に保存し、リレーを起動するたびに設定し直します。
  • Cursor のセッショントークンについては、Web UI で保存した値が変数より優先されます。機能フラグはその逆で、Features(機能)タブで保存した値より変数が優先されます。
  • リレーのポートとトークンには変数がありません。 これらは config.json にあります(config.json を参照)。ポートは oar setup --port で変更できます。

インストーラー #

oar.sh/install(macOS と Linux)と oar.sh/install.ps1(Windows)が読み込みます。スクリプトを実行するシェルの前に置きます。

curl -fsSL oar.sh/install | OAR_VERSION=0.9.19 OAR_PORT=3400 sh
$env:OAR_VERSION = '0.9.19'; irm oar.sh/install.ps1 | iex
変数 値 / 既定値 動作
OAR_VERSION x.y.z。未設定なら最新版をインストール そのバージョンをインストールします。OAR_CHANNEL より優先されます。macOS、Linux、Windows。
OAR_CHANNEL beta(Windows では BETA も可。Windows では大文字小文字を区別しません)。それ以外の値や未設定は stable チャネル beta チャネルに従います。macOS、Linux、Windows。
OAR_PORT ポート番号。未設定なら設定ファイルのポート、なければ 3333(使用中なら次の空きポート) このポートを設定ファイルに書き込みます。既存の設定ファイルのポートも上書きします。使用中のポートではインストールが止まります。macOS と Linux のみです。Windows のインストーラーにはこの変数がなく、oar setup が尋ねます。
OAR_NODE private 自分の Node.js で足りる場合でも、~/.oar/runtime/node にある OAR 専用の Node.js を使います。macOS と Linux のみです。
OAR_DRY_RUN 空でない任意の値(例:1) 計画を表示するだけで、何もインストールしません。0 でも設定済みとみなされます。macOS、Linux、Windows。
OAR_YES 空でない任意の値 --yes と同じで、インストール前に確認しません。macOS と Linux のみです。
OAR_STATE_ROOT フォルダー。既定は ~/.oar インストーラーが設定ファイル、データ、自身のフォルダーを置く場所です(OAR がファイルを置く場所)。リレーと oar コマンドもこれを読み込みます。下記を参照してください。macOS と Linux のインストーラーはこれを読み込みます。Windows ではスクリプト自体は無視しますが、最後に実行する oar setup が読み込みます。

リレー #

変数 値 / 既定値 動作
OAR_STATE_ROOT フォルダー。既定は ~/.oar、Windows では %APPDATA%\oar グローバルインストールの状態(config.json、data/、logs/)を移動します。oar を実行するすべてのシェルで設定してください。そうしないと、コマンドは既定の場所を探します。git チェックアウトは独自の構成を保ち、この変数を無視します。
COPILOT_WEB_RELAY_CONFIG ファイルパス。既定はパッケージ内の server/config.json リレーを自分で起動する場合(node server/server.js)にリレーが読み込む設定ファイルです。oar copilot は、ファイルが存在すればこれを使います。oar start とサービスは、インストール自身の config.json を使います。oar コマンドを参照してください。
COPILOT_WEB_RELAY_DATA_DIR フォルダー。既定は config.json の dataDir、なければ server/data データフォルダーです(データベース、アップロード、Cursor のエージェントストア、0.9.17 で追加 deepseek-claude にある DeepSeek のチャットの Claude Code の状態)。dataDir より優先されます。oar start と oar copilot はこれをリレーに引き渡します。systemd サービスと oar status は、インストール自身の data/ を使います。
COPILOT_WEB_RELAY_LOG_DIR フォルダー ログフォルダーです。グローバルインストールでは、既定は状態フォルダーの logs です。自分で起動したリレーは、COPILOT_WEB_RELAY_DATA_DIR が設定されていればその logs に、なければ server/logs に relay-console.log を置き、ワーカーのログは server/logs に置きます。
COPILOT_WEB_RELAY_NODE node プログラムのパス。既定はリレーを実行している Node.js リレーがワーカーの起動に使う Node.js です。0.9.11 で追加 設定しない場合、どのプラットフォームでもワーカーはリレー自身の Node.js でフルパスを使って動くので、リレーの PATH に node がなくても起動します。Copilot の拡張機能エンジン用の OAR の MCP サーバーの実行にも使われます。
OAR_NO_CONSOLE_LOG 1 でオフ。それ以外の値は何もしません リレーがコンソールのコピーをログフォルダーの relay-console.log に保存するのを止めます。
OAR_NO_UPDATE_CHECK 1 手動の確認も含め、oar.sh に一切接続しません(OAR の更新)。Settings → General の更新の確認は、確認が無効になっていると応答し、--to なしの oar update は拒否されます。oar update --to X.Y.Z は引き続き使えます。それ以外の値は何もしません。
OAR_UPDATE_MANIFEST_URL URL。既定は https://oar.sh/latest.json リレーと oar update が読み込む更新マニフェストです。
OAR_MCP_SERVER 0、false、off、no でオフ OAR の MCP サーバーを Grok のセッションと Copilot の拡張機能エンジンから外します。その場合、これらはプレビューの指示をテキストで受け取り、relay_tool ツールは使えません。ほかのプロバイダーはツールをプロセス内に持つので、影響を受けません。エージェントツールを参照してください。
OAR_TURN_STALL_IDLE_MS、OAR_TURN_STALL_MODEL_MS、OAR_TURN_STALL_TOOL_MS ミリ秒。既定は 120000、300000、1800000 ターンが無音のまま失敗するまでの時間です。それぞれ、処理中のものがないとき、モデルへのリクエスト中、ツール呼び出し中に適用されます。0 はその段階に上限がないことを意味します。ワーカーが読み込み、tmux の下のワーカーには渡されません。エージェントのワーカーに届く変数と下記を参照してください。
COPILOT_WORKSPACE_ROOT_ALLOW_LIST :(Windows では ;)で区切ったフォルダー。未設定なら任意 会話を開始できるフォルダーとそのサブフォルダーです。workspaceRootAllowList より優先されます。存在しないフォルダーは警告を出して除かれ、1 つも残らなければ任意のフォルダーが許可されます。空の変数では、設定ファイルのキーが有効なままです。会話を始めるを参照してください。
COPILOT_REMOTE_<FLAG> 1、true、yes、on または 0、false、no、off 機能フラグを固定します。下記を参照してください。
OAR_HOST_SUSPEND_DRY_RUN 1、true、yes、on Windows の Suspend host(ホストをスリープ)が、スリープをログに書くだけで、マシンをスリープさせません。流れを試すためのものです。

ターンの停滞タイマー #

3 つの OAR_TURN_STALL_* 変数は、SDK エンジンで動く GitHub Copilot と OpenAI、Cursor、Grok のワーカーが読み込みます。現在の段階の時間枠より長く無音のままのターンは、システムメモとともに失敗します。表示される内容は、ターンとキューの表にあります。

  • 値は 0 以上の数値でなければなりません。それ以外は無視され、既定値が使われます。
  • OAR_TURN_STALL_IDLE_MS だけを設定した場合、モデルとツールの時間枠はそれとの比率を保ちます。240000 に設定すると、どちらの既定値も 2 倍になります。固定するには、それらも設定してください。アイドル時間枠を 0 にすると、ほかの 2 つも設定していない限りそれらも 0 になり、3 つの段階すべてで上限がなくなります。
  • Claude と、Claude のワーカーで動く 0.9.17 で追加 DeepSeek は、無音のターンをログに残すだけで、終了させることはありません。これらでは OAR_TURN_STALL_MODEL_MS の既定値は 600000 で、ツールの時間枠も同じように OAR_TURN_STALL_IDLE_MS に比例します。これらでは、モデルの時間枠の変数が設定されているのに空または数値でない場合、値は 600000 ではなく 300000(アイドル時間枠に比例して調整)になります。
  • 拡張機能エンジンと Claude Cloud は、これらの変数を読み込みません。
  • Grok では、アイドル時間枠を 0 にしても監視はオフになりません。3 つの時間枠がすべて既定値に戻り、OAR_TURN_STALL_MODEL_MS と OAR_TURN_STALL_TOOL_MS は無視されます。
  • 変数を読み込むのはワーカーなので、tmux の下では効果がありません(上記を参照)。

機能フラグ #

設定の Features タブにフラグが表示されます。変数は、タブで保存した値にかかわらずフラグを特定の値に固定します。リレーは起動時に変数を読み込みます。フラグの名前を大文字で COPILOT_REMOTE_ の後に書きます。値は、オンなら 1、true、yes、on、オフなら 0、false、no、off で、大文字小文字は問いません。それ以外は無視され、保存された値が有効なままです。存在するフラグは次の 4 つです。

変数 タブのラベル 既定値
COPILOT_REMOTE_SESSION_WORKER_ROUTING_ENABLED Session worker routing(セッションワーカーのルーティング) オン
COPILOT_REMOTE_SESSION_WORKER_CONTINUATION_ROUTING_ENABLED Continuation answer routing(継続応答のルーティング) オン
COPILOT_REMOTE_SESSION_WORKER_FALLBACK_RESTART_ENABLED Worker fallback restart (reserved)(ワーカーのフォールバック再起動、予約済み) オフ。何も変わりません
COPILOT_REMOTE_IMAGE_CONVERSATION_CONTINUITY_ENABLED Generated-image continuity(生成画像の継続性) オン

セッションワーカーのルーティングをオフにすると、SDK エンジンは使えなくなります。

プレビュー #

プレビューには、previews ブロックと専用のホスト名も必要です。preview を参照してください。各変数は、そのブロックの同じキーより優先されます。

変数 値 / 既定値 動作
COPILOT_PREVIEWS_ENABLED 1/true または 0/false プレビューをオンまたはオフにします。それ以外の値では previews.enabled が有効なままです。
COPILOT_PREVIEWS_PORT ポート番号 プレビューのリスナーのポートです。0 は空いているポートを使います。それ以外は 1024 以上で、リレーのポート以外にします。使えない値では port キーが有効なままです。変数も port キーもない場合は、リレーのポートに 1 を足した値です。
COPILOT_PREVIEWS_BIND_HOST アドレス。既定は 127.0.0.1 プレビューのリスナーがバインドするアドレスです。ループバック以外のアドレスには config.json の previews.allowPublicBind: true も必要で、そうでなければプレビューはオフのままです。
COPILOT_PREVIEWS_PUBLIC_BASE_URL http(s) の URL プレビューの公開アドレスです。プレビューがオンのときは必須で、ホスト名はリレーのものと異なる必要があります。http(s) の URL でない値はないものとみなされ、代わりにキーが使われることはありません。
COPILOT_PREVIEWS_ALLOWED_TARGET_HOSTS カンマで区切ったホスト名 リレー自身のマシン以外に、ポートのプレビューが向けられるホストです。設定されているものの空の変数は空のリストを意味し、allowedTargetHosts を無視します。

Cloudflare トンネル #

config.json の cloudflaredTunnel ブロックと、あらゆるトンネルのマーカーヘッダーに関する変数です。各 COPILOT_CLOUDFLARED_* 変数は対応するキーより優先され、マーカーヘッダーは統合されます。

変数 値 / 既定値 動作
COPILOT_CLOUDFLARED_MODE managed または disabled cloudflaredTunnel.mode を上書きします(Cloudflare Tunnel)。それ以外の値は無視されます。managed にはトークンが必要です。
COPILOT_CLOUDFLARED_TOKEN トンネルのトークン cloudflaredTunnel.token を上書きします。
COPILOT_CLOUDFLARED_BINARY 名前またはパス。既定は PATH 上の cloudflared cloudflaredTunnel.binary を上書きします。
COPILOT_TUNNEL_MARKER_HEADERS カンマで区切ったヘッダー名 cf-ray 以外に、リクエストがトンネル経由とみなされる追加のマーカーヘッダーです。そうしたリクエストはセッションワーカーのパスガードに拒否され、誤ったトークンはサインインのロックアウトの回数に数えられます。0.9.11 で追加 config.json の tunnelMarkerHeaders に置き換えられるのではなく、追加されます。tunnelMarkerHeaders: [] でこの変数が無効になることはなくなりました。

プロバイダー #

GitHub Copilot #

CLI の見つけ方は GitHub Copilot を参照してください。

変数 値 / 既定値 動作
COPILOT_SDK_PATH フォルダー SDK エンジンのワーカーが読み込む copilot-sdk フォルダーです。パッケージキャッシュにある最新の CLI の隣のものの代わりに使われます。リレー自身のモデルの一覧とセッションの取り込みは、これを読み込みません。
COPILOT_WEB_RELAY_CLI_EXECUTABLE、次に COPILOT_CLI_EXECUTABLE、次に COPILOT_CLI_PATH プログラム。既定は copilot Linux と macOS で拡張機能エンジンが実行する Copilot CLI です(Windows では常に gh copilot を実行します)。最初の変数は config.json の cliPath より優先されます。
COPILOT_CONFIG_HOME フォルダー。既定は ~/.copilot oar copilot が拡張機能のラッパーを書き込む場所です。
COPILOT_PKG_DIR フォルダー 追加で探すパッケージキャッシュです。
XDG_CACHE_HOME、XDG_DATA_HOME フォルダー Linux で、2 つの既定のパッケージキャッシュがある場所です(それぞれの中の copilot/pkg)。
GH_TOKEN、GITHUB_TOKEN GitHub のトークン gh auth token の結果の代わりに、Check Usage(使用状況の確認)の Copilot カードに使われます。GH_TOKEN が先に読み込まれます。
COPILOT_SESSION_STATE_DIR フォルダー。既定は ~/.copilot/session-state Copilot CLI のセッション状態フォルダーが別の場所にある場合に指定します。そのフォルダーが存在する場合にだけ使われます。

OAR_MCP_SERVER と COPILOT_REMOTE_SESSION_WORKER_ROUTING_ENABLED は Copilot にも適用されます(上記を参照)。

OpenAI #

API キーとベース URL は Settings → Providers → OpenAI(設定 → プロバイダー → OpenAI)で設定し、変数はありません。2 つの変数で、SDK エンジンで動く OpenAI のトークンの上限を調整できます。OpenAI を参照してください。

変数 値 / 既定値 動作
COPILOT_PROVIDER_MAX_PROMPT_TOKENS 正の整数 OAR の表の代わりに使う、モデルのプロンプトの上限です。使えない値はログに出して無視されます。
COPILOT_PROVIDER_MAX_OUTPUT_TOKENS 正の整数 出力についての同じ設定です。

生成した画像のフォルダーは COPILOT_SESSION_STATE_DIR に従います。

Claude #

Claude を参照してください。

変数 値 / 既定値 動作
CLAUDE_CONFIG_DIR フォルダー。既定は ~/.claude Claude の設定フォルダーです。サインインと、セッションのフォルダーを探す場所に使われます。0.9.17 で追加 DeepSeek のチャットには使われません。その Claude Code は状態をデータフォルダーの deepseek-claude に保存します(DeepSeek)。0.9.18 で追加 Claude API のチャットは、Claude のチャットと同じようにこれを使います。
CLAUDE_CODE_EXECUTABLE ファイルパス Agent SDK に同梱されたビルドの代わりにワーカーが使う Claude Code のプログラムです。パネルからインストールや更新をするとこれが設定され、プログラムが config.json に保存されます。それ以降は、起動のたびにそのプログラムが自分で設定した変数より優先されます。サインインでは PATH 上の claude を実行します。
CLAUDE_CODE_OAUTH_TOKEN Claude のサインイントークン CLAUDE_CONFIG_DIR のサインインの代わりに Claude Code が読み込みます。0.9.17 で追加 Claude のワーカーは tmux の下でも受け取ります。どのワーカーが受け取るかは Claude Cloud を参照してください。
ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN Anthropic のキーまたはトークン 0.9.17 で追加 どのワーカーにも渡されません。Claude のチャットはホストの Claude のサインイン(CLI のサインインファイル、または CLAUDE_CODE_OAUTH_TOKEN)で動き、リレーの環境にあるキーでは動きません。0.9.17 より前はすべてのワーカーが受け取り、Claude Code は Claude のサインインよりどちらかを優先していました。0.9.18 で追加 Claude API のチャットは、これらではなく Settings → Providers → Claude API(設定 → プロバイダー → Claude API)に保存したキーで動きます。
BASH_DEFAULT_TIMEOUT_MS、BASH_MAX_TIMEOUT_MS、CLAUDE_CODE_AUTO_BACKGROUND_TIMEOUT_MS OAR が設定 0.9.12 で追加 リレーの環境からは読み込まれません。OAR は、起動するすべての Claude セッションと 0.9.17 で追加 すべての DeepSeek セッションに、Claude background command limit(Claude のバックグラウンドコマンド上限)からこれらを設定します(上限、8 時間、2 分)。バックグラウンドコマンドの上限を参照してください。
CLAUDE_CODE_AUTO_COMPACT_WINDOW トークン数 OAR ではなく Claude Code が読み込み、自動コンパクト化ウィンドウを設定します。Claude Code がウィンドウをこの変数から取ったと報告すると、スライダーの下の行に from CLAUDE_CODE_AUTO_COMPACT_WINDOW(CLAUDE_CODE_AUTO_COMPACT_WINDOW から)と表示されます。tmux の下のワーカーには渡されません。0.9.17 で追加 DeepSeek のチャットは無視します(DeepSeek)。コンパクト化を参照してください。

Claude API 0.9.18 で追加 #

Claude API には専用の変数はありません。キーは Settings → Providers → Claude API で設定します。リレーの環境にある ANTHROPIC_API_KEY は使われません。リレーは保存したキーを Claude API のワーカーにだけ渡し、そのワーカーの Claude Code は、自身の環境の ANTHROPIC_API_KEY としてキーを受け取ります。Claude API を参照してください。

Claude API のチャットはリレーのホストで Claude Code を動かすので、Claude の変数が適用されます。違いは次のとおりです。

変数 Claude API のチャットでは
CLAUDE_CONFIG_DIR Claude と同じく使われます。チャットは Claude の設定フォルダーを共有します。
CLAUDE_CODE_EXECUTABLE Claude と同じく使われます。
BASH_DEFAULT_TIMEOUT_MS、BASH_MAX_TIMEOUT_MS、CLAUDE_CODE_AUTO_BACKGROUND_TIMEOUT_MS Claude と同じく、OAR が Claude background command limit から設定します。
CLAUDE_CODE_AUTO_COMPACT_WINDOW 無視されます。
CLAUDE_CODE_OAUTH_TOKEN、CLAUDE_CODE_USE_BEDROCK、CLAUDE_CODE_USE_VERTEX、CLAUDE_CODE_USE_FOUNDRY、すべての ANTHROPIC_* 無視されます。OAR は保存したキーを使って Claude Code を https://api.anthropic.com に向けます。
CLAUDE_CODE_EFFORT_LEVEL、CLAUDE_CODE_SUBAGENT_MODEL、CLAUDE_CODE_SUBAGENT_MODEL_FORCE、CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL 無視されます。OAR がチャットから reasoning effort とモデルを設定します。
CLAUDE_CODE_SUBPROCESS_ENV_SCRUB 無視されます。これがあると Claude Code は plan モードを抜け、すべてのシェルコマンドをサンドボックスで実行してしまいます。

Claude Cloud #

Claude Cloud を参照してください。

変数 値 / 既定値 動作
CLAUDE_CODE_OAUTH_TOKEN Claude のサインイントークン CLI の認証情報ファイルの代わりに、リレーとそのクラウドワーカーが Claude Cloud に使います。0.9.17 で追加 このトークンが届くのは、すべてのプラットフォームで Claude Cloud と Claude のワーカーだけです。tmux の下ではリレーのユーザーだけが読めるファイルを通じて、tmux なしでは継承する環境を通じて届きます。GitHub Copilot、OpenAI、Cursor、Grok、DeepSeek のワーカーと 0.9.18 で追加 Claude API のワーカーは、このトークンなしで起動します。0.9.17 より前は、tmux なしで起動したすべてのワーカーが受け取り、tmux の下では起動処理が立ち上げた tmux サーバーが、以降のすべてのセッションのためにこれを保持していました。トークンだけでサインインするホストの Claude のチャットは、現在は tmux の下でも受け取ります。
CLAUDE_CONFIG_DIR フォルダー。既定は ~/.claude CLI のサインイン(.credentials.json)を読み込む場所です。
OAR_CLAUDE_CLOUD_BRANCH_LOOKUP off、0、false、no(大文字小文字は問わない) New Chat(新しいチャット)のブランチの一覧が git に問い合わせるのを止めます。それ以外の値ではオンのままです。

DeepSeek #

0.9.17 で追加 DeepSeek には専用の変数はありません。API キーとベース URL は Settings → Providers → DeepSeek(設定 → プロバイダー → DeepSeek)で設定します。ベース URL は Advanced(詳細設定)の下にあります。リレーの環境にある DEEPSEEK_API_KEY や DEEPSEEK_BASE_URL は使われません。リレーは保存した値を DeepSeek のワーカーに渡し、ほかのワーカーはどちらも受け取りません。DeepSeek を参照してください。

DeepSeek のチャットはリレーのホストで Claude Code を動かすので、上の Claude の変数が関係しますが、すべてではありません。

変数 DeepSeek のチャットでは
CLAUDE_CODE_EXECUTABLE Claude と同じく使われます。
BASH_DEFAULT_TIMEOUT_MS、BASH_MAX_TIMEOUT_MS、CLAUDE_CODE_AUTO_BACKGROUND_TIMEOUT_MS Claude と同じく、OAR が Claude background command limit から設定します。
CLAUDE_CONFIG_DIR 無視されます。Claude Code は状態をデータフォルダーの deepseek-claude に保存します(フォルダーとセッション)。
CLAUDE_CODE_AUTO_COMPACT_WINDOW 無視されます。
CLAUDE_CODE_OAUTH_TOKEN、CLAUDE_CODE_USE_BEDROCK、CLAUDE_CODE_USE_VERTEX、CLAUDE_CODE_USE_FOUNDRY、すべての ANTHROPIC_* 無視されます。OAR は保存したキーを使って Claude Code を DeepSeek のエンドポイントに向けます。
CLAUDE_CODE_EFFORT_LEVEL、CLAUDE_CODE_SUBAGENT_MODEL、CLAUDE_CODE_SUBAGENT_MODEL_FORCE、CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL 無視されます。OAR がチャットから reasoning effort とモデルを設定します(reasoning effort、モデル)。
CLAUDE_CODE_SUBPROCESS_ENV_SCRUB 無視されます。これがあると Claude Code は plan モードを抜けて既定のモードになり、エージェントがファイルを編集できるようになるうえ、すべてのシェルコマンドをサンドボックスで実行してしまいます。
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 自分の設定にかかわらず、OAR が 1 に設定します。Claude Code 自身の Anthropic への通信(更新、テレメトリー)はオフになります。

リレーがワーカー用に持つ設定(ワーカーの種類、リレーのフォルダーとツールファイル、SESSION_ID、およびすべての COPILOT_WEB_RELAY_*、COPILOT_PROVIDER_*、DEEPSEEK_*、OAR_* 変数)はワーカーの中にとどまり、Claude Code にも、そのエージェントが実行するコマンドにも見えません。キー自体は DeepSeek のエンドポイント用のトークンとして Claude Code に届くので、エージェントのコマンドはキーを読めます。キーの保存場所を参照してください。それ以外の自分の変数は、Claude のチャットと同じように届きます。

Cursor #

Cursor の API キーは Settings → Providers → Cursor(設定 → プロバイダー → Cursor)に保存します。リレーの環境にある CURSOR_API_KEY は使われず、リレーはワーカーに保存したキーを渡します。Cursor を参照してください。

変数 値 / 既定値 動作
CURSOR_SESSION_TOKEN ダッシュボードのセッショントークン ライブのプランバーに使われます(Check Usage)。パネルに保存したトークンがこれより優先され、これは Cursor アプリのサインインより優先されます。
CURSOR_AGENT_STORE_DIR フォルダー。既定はリレーのデータフォルダーの cursor-agents(0.9.14 で追加。以前はリレーのサーバーフォルダーの data/cursor-agents) 会話ごとのエージェントの状態を保存する場所です。

Grok #

Grok を参照してください。

変数 値 / 既定値 動作
GROK_CLI_COMMAND プログラム名またはパス。既定は grok サインイン、モデルの検出、ワーカーに使う Grok のプログラムです。設定されていない場合は GROK_COMMAND が読み込まれます。リレーはどちらかを、tmux の下でも、GROK_CLI_COMMAND としてワーカーに渡します。パネルからインストールや更新をするとプログラムが config.json に保存され、それ以降は起動のたびにそれが変数より優先されます。
GROK_ALWAYS_APPROVE 0。既定は 1 0 にすると、Grok を --always-approve なしで起動します。その場合、OAR は権限のリクエストに 1 件ずつ allow-once(今回のみ許可)で応答します。tmux の下のワーカーにも渡されます。
XAI_API_KEY xAI のキー OAR ではなく Grok CLI が、サインインの代わりとして読み込みます。アカウントの行が認識するのは、CLI でのサインインだけです。tmux の下のワーカーには渡されません。

ユーザー向けではないもの #

ソースやログには、ほかの名前も現れます。これらは設定ではありません。スタブとテスト用のフック(*_STUB_*、*_ALLOW_STUB_SPAWN、COPILOT_WEB_RELAY_DISABLE_CLI_SPAWN、OAR_PACKAGE_SPEC、OAR_CLAUDE_CLOUD_API_BASE_URL、0.9.18 で追加 OAR_ANTHROPIC_API_BASE_URL、OAR_HYGIENE_DENYLIST)、リレーが自身のワーカープロセス用に設定する変数(COPILOT_WEB_RELAY_WORKER_KIND、*_RELAY_MODEL、SESSION_ID、COPILOT_WEB_RELAY_ROOT、COPILOT_WEB_RELAY_SERVER_DIR、OAR_MCP_SERVER_ATTACHED、OpenAI の設定から埋めるその他の COPILOT_PROVIDER_*、0.9.17 で追加 DeepSeek の設定から埋める DEEPSEEK_API_KEY、DEEPSEEK_BASE_URL、DEEPSEEK_CLAUDE_CONFIG_DIR、0.9.18 で追加 Claude API の設定から埋める OAR_CLAUDE_API_KEY と CLAUDE_API_RELAY_MODEL。キーは、オーナーだけが読めるファイルを通じて tmux の下のワーカーに渡されます)、開発者向けの調整用の設定(COPILOT_SDK_RELAY_*、CLAUDE_RELAY_*、OAR_BOOT_REPORTING_WINDOW_MS、OAR_RELAY_RESTART_MAX_WAIT_MS、COPILOT_WEB_RELAY_CLAUDE_AUTH_BIN、COPILOT_WEB_RELAY_CLI_BIN_DIR、COPILOT_WEB_RELAY_*_WORKER_PATH)、OAR が Grok 用に 1 に設定する GROK_DISABLE_AUTOUPDATER、ランチャーが設定する COPILOT_WORKSPACE_ROOT です。oar メニューは NO_COLOR に従います。それ以外には手を触れないでください。