CLIリファレンス
10個のコマンドに、1つのバイナリです。エージェントのツールも人間も同じインターフェースを使い、すべてのコマンドは、数値を作り出す代わりに、本物の失敗を報告します。
概要
openlimiter init
openlimiter snapshot [--refresh]
openlimiter statusline
openlimiter hook [--dry-run]
openlimiter ingest [--provider <id>] [--payload <json>]
openlimiter config get statusline[.<key>]
openlimiter config set statusline.<key> <value>
openlimiter doctor
openlimiter demo
openlimiter export
openlimiter serve [--port <n>] [--host <address>] [--no-qr]
statusline keys: order, meters, width, rows, bars, color.
statusline and ingest read JSON from standard input when it is piped in.
Exit codes: 0 success, 1 failure, 2 usage, 3 no bounded quota data.npm install -g openlimiterでグローバルコマンドをインストールし、各例をそのまま実行してください。
コマンド一覧
init
ローカル設定を状態ディレクトリに書き込み、すべてのconnectorとそれが検出されたかどうかを記録します。検出済みの一覧、または何もなかったことを報告します。
openlimiter init
Configuration saved. Detected: manualsnapshot
キャッシュされたquotaを表として出力します。--refreshを指定すると、まずすべてのconnectorにmeterを問い合わせ、検証を通過したものをキャッシュに取り込んでから出力します。範囲の定まったquotaデータが1つもない場合は終了コード3になります。
常に8列で、スペース1つで区切られているため、スクリプトは推測なしに行を分割できます。BARは10ブロックのmeterで、ターミナルが対応していれば色つきで、対応していないかNO_COLORが設定されている場合は#と.で描かれます。AMOUNTは、割り当て制ではなく価格制のプランの金額を運びます。RESETはウィンドウが切り替わる瞬間で、INはそこまでの残り時間です。表示するものがない列は、消えるのではなくNONEと表示されます。
openlimiter snapshot
PROVIDER METER BAR USAGE AMOUNT STATE RESET IN
CLAUDE FIVE_HOUR ####...... 42.00PERCENT NONE fresh 2026-08-10T04:00:32.969Z 5h0m
CLAUDE SEVEN_DAY ######.... 64.00PERCENT NONE fresh 2026-08-16T23:00:32.969Z 7d0h
OPENROUTER CREDITS ######.... 62.35PERCENT $12.47/$20.00 fresh NONE NONEペイロードを渡されたのに読み取れなかったconnector、あるいは検証で取り除かれた値がある場合、表の下にプロバイダー名と1つの固定文を添えた行が赤字で追加されます。その文はいつも私たち自身のものです。プロバイダーが送ったテキストがターミナルに届くことは決してありません。
statusline
statuslineのホストのためにステータス行を描画します。まず標準入力を読み取るため、Claude Codeのセッションペイロードは同じ呼び出しの中で取り込まれて描画され、そのうえでキャッシュにフォールバックします。表示されることの副作用として書き込みを行う、唯一のコマンドです。
全体の理由コードが先頭に来て、続いてルーティングの推薦、そしてプロバイダーごとにコンパクトな1セル、名前、5ブロックのバー、パーセンテージが続きます。表が描く10ブロックではなく5ブロックなのは、ステータス行はモデル名、ブランチ、ディレクトリと場所を共有しており、一目で読み取れる必要があるためです。パーセンテージは他の場所と同じように切り捨てられるため、バーがその値の得ていないブロックを光らせることは決してありません。
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%サブスクリプション系のプロバイダーが先に来て、クレジットやAPI系のプロバイダーが最後に来ます。時計仕掛けで補充されるウィンドウが、戻ってこない残高の隣に並ぶことのないようにするためです。プロバイダーの中では、meterはセッション、日次、週次、月次、クレジットの順に並び、セルには上限に最も近いmeterが表示されます。全体を見るにはopenlimiter snapshotを実行するだけで済みますし、statusline.meters allを設定すれば、すべてのmeterをそれぞれ独自のセルとして行に含められます。
openlimiter config set statusline.meters all && NO_COLOR=1 node packages/cli/dist/bin.js statusline
OpenLimiter NEAR_CAP PREFER ANTIGRAVITY CLAUDE:FIVE_HOUR ##... 42.0% CLAUDE:SEVEN_DAY ###.. 64.0% CODEX:PRIMARY ####. 84.0%
ANTIGRAVITY:PRIMARY #.... 28.0% OPENCODE:PRIMARY ####. 92.0% MANUAL:MONTHLY #.... 35.0% OPENROUTER:CREDITS ###.. 62.3%予算より幅の広い行は、切り捨てられるのではなく折り返されます。区切りは2つのセルの間に入り、セルの内側に入ることは決してありません。半分のバーは1つの値として読めてしまい、それは本来の値ではないためです。2行が上限です。それを超えると、上限に最も近いプロバイダーが残され、最後の行の末尾に、表示しきれなかった数が示されます。
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 moreopenlimiter 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 ANTIGRAVITYconfig
設定ファイルの中のstatuslineレイアウトを読み書きします。すべてのキーは書き込まれる前に検証され、拒否された値は終了コード2になり、期待していたものが示されます。このコマンドが変更できるのは、statuslineのセクションの外側にあるものではありません。各キーが受け付ける値については設定を参照してください。
openlimiter config get statusline
statusline.order=NONE
statusline.meters=worst
statusline.width=140
statusline.rows=2
statusline.bars=true
statusline.color=autoopenlimiter config set statusline.width 200
statusline.width=200
openlimiter config set statusline.rows 3
openlimiter config: statusline.rows must be 1 or 2.hook
キャッシュからagent context blockを出力します。ネットワークアクセスは一切行わず、何も書き込まず、すべてのプロバイダーがunknownのときは何も渡しません。正確な形式についてはagent contextを参照してください。
ingest
どんなスクリプトやエージェントからも、標準入力または--payloadによるインラインで、quotaのドキュメントを受け取ります。--providerがない場合、そのドキュメントは手動ドキュメントになります。指定した場合、そのドキュメントはそのconnectorのパーサーへ渡され、そのconnectorのラベルを保ちます。
openlimiter ingest --payload '{"meters":[{"name":"AGENT_BUDGET","used_percent":12.5,"reset_at":"2026-08-09T13:11:30.141Z"}]}'
Ingested 1 bounded meters. Cached meters: 3.doctor
connectorの検出状況、鮮度、drift、キャッシュの健全性を報告します。driftは、明示的な検証者が現れるまでUNVERIFIEDのままで、出力は設計上マスクされています。
demo
実際のアカウントに一切触れずに出力の形を確認できるよう、合成フィクスチャを描画します。出力される値はすべて架空のものです。以下のブロックは、そのコマンドの実際の出力を、編集せずに貼り付けたものです。
NO_COLOR=1 node packages/cli/dist/bin.js demo
PROVIDER METER BAR USAGE AMOUNT STATE RESET IN
CLAUDE FIVE_HOUR ####...... 42.00PERCENT NONE fresh 2026-08-10T09:12:01.000Z 4h59m
CLAUDE SEVEN_DAY ######.... 64.00PERCENT NONE fresh 2026-08-17T04:12:01.000Z 6d23h
OPENROUTER CREDITS ######.... 62.35PERCENT $12.47/$20.00 fresh NONE NONE
CODEX PRIMARY ########.. 84.00PERCENT NONE fresh 2026-08-10T09:12:01.658Z 5h0m
ANTIGRAVITY PRIMARY ##........ 28.00PERCENT NONE fresh 2026-08-11T04:12:01.658Z 1d0h
OPENCODE PRIMARY #########. 92.00PERCENT NONE fresh 2026-08-11T04:12:01.658Z 1d0h
MANUAL MONTHLY ###....... 35.00PERCENT NONE fresh 2026-09-10T04:12:01.658Z 31d0hexport
スクリプトがパースしやすい正規のJSONとしてキャッシュを出力します。キャッシュに範囲の定まったquotaデータがない場合は終了コード3になります。
serve
あなたのquotaの読み取り専用スナップショットを、あなた自身のローカルネットワーク上で提供し、同じネットワーク上のスマートフォンから見られるようにします。アドレスとスキャン用のQRコードを出力します。コマンドが起動するたびに新しいトークンが生成され、サーバーが決して受け取ることのないURLフラグメントの#t=の後ろに乗って運ばれます。ページは初回読み込み時にそのトークンをタブ自身のsessionStorageへ移し、アドレスバーを消去するため、どのブラウザ履歴にもその能力は残りません。それ以降の再取得はすべて、URLパラメータではなくAuthorization: Bearerヘッダーとしてトークンを送ります。前のリリースが出力していた、トークンをクエリパラメータとして含むアドレスも、このリリース1回分は引き続き応答するため、すでにスキャンまたは保存されたものが壊れることはありません。
終了コード
| コード | 意味 |
|---|---|
0 | 成功。 |
1 | 本物の失敗。 |
2 | 未知のプロバイダーidなどの、使用エラー。 |
3 | 範囲の定まったquotaデータが利用できません。 |
知っておく価値のある振る舞い
- 標準入力は範囲と時間の両方が制限されているため、コマンドが終わらないストリームを待ち続けることは決してありません。
- 表示されるパーセンテージは、丸められるのではなく切り捨てられるため、どの画面も到達していない上限を報告することはありません。
--providerと--payloadはそれぞれ値を必要とします。値なしでフラグだけを渡すと使用エラーになります。- このリリースでは、どのコマンドもネットワークに触れません。すべての経路は、あなたのマシン上にすでにある何かに対するパーサーです。