コンテンツへスキップ
創業プロモーション:先行支援者にはOpenLimiter Proを50%OFFで提供

設定

OpenLimiterは、すべてをあなた自身のユーザーアカウントの下にある1つの状態ディレクトリに保持します。設定ファイル、キャッシュ、ロック、そして任意の手動ドキュメントです。このページは、それがどこにあり、各ファイルが何をするかを説明します。

状態ディレクトリ

各プラットフォームで状態ディレクトリがどこにあるか
プラットフォームパス
Windows%LOCALAPPDATA%\openlimiter
macOS~/Library/Application Support/openlimiter
Linux${XDG_STATE_HOME:-~/.local/state}/openlimiter

プラットフォームが対応している場合、このディレクトリは制限的なパーミッションで作成されます。シンボリックリンクだと判明したパスは、たどられるのではなく、拒否されます。

その中にあるもの

状態ディレクトリの中のファイル
ファイル役割
openlimiter-config.jsonopenlimiter initによって書き込まれます。connectorの一覧、それぞれが検出されたかどうか、statuslineのレイアウトを記録します。
openlimiter-cache.jsonすべてのコマンドが読み取り、すべての書き込み側がマージする、ただ1つのキャッシュです。
openlimiter.lock書き込み側だけが保持します。読み取り側が取ることは決してありません。
manual.json任意です。あなたが手で管理するquotaです。その構造については取り込みを参照してください。

キャッシュの振る舞い

  • 1つのスキーマ、1つのファイル、1つのロック。調停すべき競合する状態ファイルはありません。
  • 読み取り側がロックを取ることは決してありません。読み取り側はファイルを開き、その開いたディスクリプタを検証したうえで読み進めます。そのため、チェックの後にパスがすり替えられても、読み取るバイト列を差し替えることはできません。
  • 書き込み側はロックを取り、読み取り、マージ、書き込みのすべてがその内側で行われます。5秒より古いロックは、放棄されたものとみなされ、回収されます。
  • すべての置き換えは、リネームの前に安定したストレージへフラッシュされるため、読み取る側は以前の内容か新しい内容のどちらかを見るだけで、部分的なファイルを見ることは決してありません。

キャッシュの健全性は、いつでもopenlimiter doctorで確認できます。キャッシュの状態と、検証に失敗して取り除かれた行の数を出力します。

statuslineのレイアウト

statuslineは、プロバイダーごとにコンパクトな1セルを描きます。名前、5ブロックのバー、パーセンテージで、行の先頭には全体の理由コードとルーティングの推薦が来ます。設定ファイルの中の6つのキーが、その行がどう組み立てられるかを決め、openlimiter configがそれらを読み書きする方法です。

10 August 2026に取得、合成フィクスチャ
NO_COLOR=1 node packages/cli/dist/bin.js statusline
OpenLimiter NEAR_CAP PREFER ANTIGRAVITY  CLAUDE ###.. 64.0%  CODEX ####. 84.0%  ANTIGRAVITY #.... 28.0%  OPENCODE ####. 92.0%
MANUAL #.... 35.0%  OPENROUTER ###.. 62.3%

すべてのキー

statuslineのキーと、それぞれが受け付ける値
キー受け付ける値意味
orderプロバイダーidをカンマ区切りで、またはNONEセルが現れる順番です。あなたが列挙したものが先に来て、除外したプロバイダーはすべて、その後ろの組み込みの順番、つまりサブスクリプションのプランの後にクレジットとAPIのmeterという順番に従います。NONEは、その組み込みの順番に戻る方法です。デフォルトはNONE
metersworstまたはall複数のmeterを持つプロバイダーは、上限に最も近い1つを表示するか、PROVIDER:METERという名前の別々のセルとしてすべて表示します。meterはセッション、日次、週次、月次、クレジットの順に並びます。デフォルトはworst
width40から400までの整数行が折り返す前に、1行が使ってよい桁数です。あなたのターミナルを測ることは何もありません。statuslineのホストはターミナルを渡さずにこのコマンドを実行するため、ここで指定した数値がそのまま尊重されます。デフォルトは140
rows1または2レイアウトが使ってよい行数です。デフォルトは2
barstrueまたはfalsefalseにすると、0.1.0の単純な1行を、そのままバイト単位で復元します。デフォルトはtrue
colorautoalways、またはneverautoはターミナルに従います。statuslineのホストの場合、通常は無色を意味します。ホストがターミナルを渡す代わりに出力をキャプチャするためです。alwaysは、ホストがエスケープコードを理解することをあなたが宣言する方法です。デフォルトはauto

読み書きの方法

10 August 2026に取得
openlimiter config get statusline
statusline.order=NONE
statusline.meters=worst
statusline.width=140
statusline.rows=2
statusline.bars=true
statusline.color=auto

一度に1つのキーずつ、書き込む前に検証されます。そのキーが使えない値を渡すと終了コード2になり、期待していたものが示されます。文書全体がアトミックに置き換えられるため、部分的な書き込みは発生しません。このコマンドが変更するのはstatuslineのキーだけです。connectorの一覧はopenlimiter initのものであり、それ以外のキーを指定すると終了コード2になります。

openlimiter config set statusline.order codex,claude
statusline.order=codex,claude

openlimiter config set statusline.meters all
statusline.meters=all

openlimiter config set statusline.width 12
openlimiter config: statusline.width must be a whole number from 40 to 400.

openlimiter config set statusline.theme dark
openlimiter config: unknown statusline key. Known keys: order, meters, width, rows, bars, color.

openlimiter initを再実行しても、ここで設定した内容はそのまま保たれ、connectorだけが再検出されます。このバージョンが読み取れないstatuslineキーがあっても、描画を止めるのではなくデフォルトにフォールバックするため、手で編集した1つのフィールドの誤字が、残り5つを犠牲にすることはありません。

行に収まりきらないとき

行は切り捨てられるのではなく、折り返されます。区切りは2つのセルの間に入り、セルの内側に入ることは決してなく、2行が上限です。それを超えると、上限に最も近いプロバイダーが残され、最後の行の末尾に、表示しきれなかった数が示されます。

10 August 2026に取得、合成フィクスチャ
openlimiter config set statusline.rows 1 && NO_COLOR=1 node packages/cli/dist/bin.js statusline
OpenLimiter NEAR_CAP PREFER ANTIGRAVITY  CODEX ####. 84.0%  OPENCODE ####. 92.0%  +4 more

0.1.0の行を、リクエストに応じて

このレイアウトより前の形式は、バーのない単純な1行でした。それに対してスクリプトを書いていた場合、bars falseでそれを正確に復元でき、テストがその文字列を固定しているため、ずれることはありません。

10 August 2026に取得、合成フィクスチャ
openlimiter config set statusline.bars false && node packages/cli/dist/bin.js statusline
OpenLimiter NEAR_CAP CLAUDE 64.0% OPENROUTER 62.3% CODEX 84.0% ANTIGRAVITY 28.0% OPENCODE 92.0% MANUAL 35.0% PREFER ANTIGRAVITY

Claude Codeの設定

自分のクローンへの絶対パスを使ってください。フォワードスラッシュは、Windowsを含むすべてのプラットフォームで機能します。

settings.json
{
  "statusLine": {
    "type": "command",
    "command": "node /absolute/path/to/openlimiter/packages/cli/dist/bin.js statusline"
  },
  "hooks": {
    "UserPromptSubmit": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "node /absolute/path/to/openlimiter/packages/cli/dist/bin.js hook"
          }
        ]
      }
    ]
  }
}

2つのうちどちらが書き込むか

statuslineだけです。セッションのペイロードを受け取る経路であり、キャッシュを更新する経路です。hookは読み取るだけで、書き込むことは決してありません。

認証情報

認証情報ライブラリの呼び出しはインターフェースの裏にあり、adapterはこのリリースではスタブ化されているため、ドライバーが与えられるまでopenlimiter initはキーを保存できません。あなたのマシン上の他の何にも触れません。

connectorの検出

検出は、CLIがconnectorに渡す環境の純粋な関数です。状態ディレクトリに手動ドキュメントが置かれているといった、CLIだけが観測できる事実は、明示的なマーカーとして届きます。だからこそ、データを受け取れなかったconnectorを、openlimiter doctorが準備完了だと主張することは決してありません。

ターミナル
openlimiter doctor
CONNECTOR DETECTED FRESHNESS DRIFT
claude no unknown UNVERIFIED
openrouter no unknown UNVERIFIED
codex no unknown UNVERIFIED
antigravity no unknown UNVERIFIED
opencode no unknown UNVERIFIED
manual yes fresh UNVERIFIED
CACHE ok DROPPED 0

パースできなかったキャッシュ、あるいは行が取り除かれた状態でパースされたキャッシュがある場合、その旨を伝える1行が赤字で追加されます。これはプロバイダーではなくキャッシュに対する報告です。壊れたファイルは、それが誰の値を保持していたかを信頼して語れないためです。