Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
86d951c
fix(openai/responses): drop response.metadata for non-Codex clients
soulmachine Oct 25, 2026
8365de8
docs(readme): update Kimi model availability
kdcokenny Oct 25, 2026
bc80710
perf: index web-search support to remove registry write-lock convoy
Oct 26, 2026
3c948a5
perf(executor): decode upstream zstd synchronously and sniff unlabele…
JohnsonRan Oct 26, 2026
b4cbda5
docs(readme): add GPT-6.1 Terra
kdcokenny Oct 26, 2026
c6425a6
docs: add Ebb to "Who is with us?"
lucasnsaraujo Oct 27, 2026
a9e0d48
Merge pull request #7057 from lucasnsaraujo/docs/add-ebb
luispater Oct 27, 2026
f6d29ec
Merge pull request #6989 from kdcokenny/docs/kimi-k31-availability
luispater Oct 27, 2026
ba26dea
Merge pull request #7023 from JohnsonRan/patch/response-decode-sync-zstd
luispater Oct 27, 2026
65889d3
test: update tests for default template changes and environment compa…
luispater Oct 27, 2026
16c6b4b
perf(api): reuse response compression encoders with a smaller zstd wi…
JohnsonRan Oct 26, 2026
12f2caf
test(api): measure open-stream heap with empty encoder pools
JohnsonRan Oct 27, 2026
e30575d
Merge pull request #6995: index web-search support
luispater Oct 28, 2026
58874f3
feat(registry): index web-search support
luispater Oct 28, 2026
f6ee1e6
Merge pull request #7022: reuse response compression encoders
luispater Oct 28, 2026
a3e7689
refactor(api): reuse response compression encoders and add tests
luispater Oct 28, 2026
f7342c3
Merge pull request #6970 from soulmachine/responses-drop-metadata-non…
luispater Oct 28, 2026
ae65e26
feat(api): filter private metadata in OpenAI responses and improve SS…
luispater Oct 28, 2026
9717e32
fix(responses): reject late websocket interrupts after terminal events
luispater Oct 28, 2026
e324e48
perf(pluginhost): allow frontend auth providers to opt out of request…
luispater Oct 28, 2026
0fe3822
feat(pluginhost): support raw request body byte-range patching
luispater Oct 28, 2026
535110e
docs(readme): add Nia Live Demo to "Who is with us?"
nia-teams-admin Oct 28, 2026
3f2b8f2
Merge pull request #7082 from nia-teams-admin/docs/add-nia-live-demo
luispater Oct 28, 2026
90c447d
fix(responses): use tsc_ item id prefix for Gemini tool search calls
luispater Oct 28, 2026
fa42f39
test(openai): assert websocket disconnect error event
sususu98 Oct 29, 2026
02ee313
fix(devin): classify JSON control character errors
sususu98 Oct 29, 2026
56efc81
Merge pull request #7092 from sususu98/fix/slow-test-disconnect
sususu98 Oct 29, 2026
7df437c
fix(aistudio): buffer fragmented relay SSE frames
wozhenbang2004 Oct 29, 2026
498170a
fix(aistudio): add relay SSE frame reassembly helper
wozhenbang2004 Oct 29, 2026
89e472f
feat(usage): capture structured Anthropic Messages upstream usage det…
sususu98 Oct 28, 2026
24840fd
feat(usage): capture structured xAI usage across chat, responses, and…
sususu98 Oct 28, 2026
01551f5
feat(usage): capture structured OpenAI and Codex usage across respons…
sususu98 Oct 28, 2026
bd5ec53
feat(usage): capture structured Gemini, Vertex, AI Studio, and Antigr…
sususu98 Oct 28, 2026
d5eb4ca
perf(usage): optimize stream usage observation and large payload parsing
sususu98 Oct 28, 2026
97dd3a4
fix(usage): preserve stream failure usage, multipart image params, an…
sususu98 Oct 29, 2026
a6b4477
fix(home): restrict websocket access in home mode
hkfires Oct 29, 2026
82deffb
fix(usage): preserve output_item.done tool counts and multiline SSE u…
sususu98 Oct 29, 2026
eabcb1b
Merge pull request #7074 from sususu98/feat/structured-usage-7054
sususu98 Oct 29, 2026
265ca17
Merge pull request #7095: reassemble AI Studio SSE frames
hkfires Oct 29, 2026
d30edd7
Merge pull request #7102 from router-for-me/aistudio
hkfires Oct 29, 2026
4cb98e3
fix(logging): prevent deferred request retention on Responses WebSockets
GavinKung Oct 29, 2026
8dfb45d
Merge pull request #7106 from router-for-me/fix/responses-ws-deferred…
GavinKung Oct 29, 2026
43068c8
fix(auth): write the cooldown state next to the auth file when auth-d…
eaxeax Oct 29, 2026
f013eb6
fix(openai): keep incomplete streams without [DONE] out of credential…
luispater Oct 29, 2026
514d09f
feat(codex): guide recovery when automatic credential renewal becomes…
luispater Oct 29, 2026
12d97cf
fix(translator): translate mid-conversation Claude tool_addition blocks
luispater Oct 30, 2026
67beb7a
Merge pull request #7109 from eaxeax/fix/cooldown-state-relative-auth…
luispater Oct 30, 2026
bc81923
feat(pluginhost): allow model registrars to publish models for multip…
luispater Oct 30, 2026
81de4b9
fix(gemini): preserve Claude tool-result error semantics (#6838)
GavinKung Oct 30, 2026
068fe15
fix(antigravity): preserve Claude tool-result error semantics
sususu98 Oct 30, 2026
dbb7062
fix(codex): expand recognized CPA compaction capsules before forwardi…
luispater Oct 30, 2026
04c6cdb
chore: merge upstream/main through dbb70621
jiroamato Oct 31, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 10 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,11 +110,11 @@ You can access the following providers locally and with multiple CLI accounts th
</tr>
<tr>
<td align="center"><a href="https://www.kimi.com/code/?aff=cliproxyapi"><img src="./assets/logo/kimi.svg" alt="Kimi" width="28" height="28" /></a></td>
<td>Kimi series models (Kimi K3, K2.8 Preview, etc.). <a href="https://platform.kimi.ai/docs/guide/kimi-k3-quickstart">Kimi K3</a> is Moonshot AI’s most capable model and the world’s first open 3T-class model. With 2.8 trillion parameters, native vision, and a 1-million-token context window, K3 is built for long-horizon coding, knowledge work, and reasoning. CLIProxyAPI supports Kimi through OAuth or compatible API interfaces. Try a <strong>Kimi Code plan</strong> (<a href="https://www.kimi.com/code?aff=cliproxyapi">中文站</a> | <a href="https://www.kimi.ai/code?aff=cliproxyapi">Global</a>), or get an <strong>API key</strong> from the Kimi Open Platform (<a href="https://platform.kimi.com?track_id=track-f15622e7182046baa22ca35e006e13a7&aff=cliproxyapi">中文站</a> | <a href="https://platform.kimi.ai?track_id=track-8a28e4b291d84f62af2fccc3e7a21cb3&aff=cliproxyapi">Global</a>). Thanks to Kimi for supporting CLIProxyAPI and the open-source community!</td>
<td>Kimi series models (Kimi K3.1 Pro, K3.1 Pro Highspeed, K3, K2.8 Preview, etc.). <a href="https://platform.kimi.ai/docs/guide/kimi-k3-quickstart">Kimi K3</a> is Moonshot AI’s previous-generation flagship and the world’s first open 3T-class model. With 2.8 trillion parameters, native vision, and a 1-million-token context window, K3 is built for long-horizon coding, knowledge work, and reasoning. CLIProxyAPI supports Kimi through OAuth or compatible API interfaces. Try a <strong>Kimi Code plan</strong> (<a href="https://www.kimi.com/code?aff=cliproxyapi">中文站</a> | <a href="https://www.kimi.ai/code?aff=cliproxyapi">Global</a>), or get an <strong>API key</strong> from the Kimi Open Platform (<a href="https://platform.kimi.com?track_id=track-f15622e7182046baa22ca35e006e13a7&aff=cliproxyapi">中文站</a> | <a href="https://platform.kimi.ai?track_id=track-8a28e4b291d84f62af2fccc3e7a21cb3&aff=cliproxyapi">Global</a>). Thanks to Kimi for supporting CLIProxyAPI and the open-source community!</td>
</tr>
<tr>
<td align="center"><a href="https://developers.openai.com/api/docs/models"><img src="./assets/logo/openai.svg" alt="OpenAI" width="28" height="28" /></a></td>
<td>OpenAI GPT-6 models (GPT-6 Astra, GPT-6.1 Sol, GPT-6 Luna), including access through Codex OAuth. Astra is the flagship for complex reasoning and coding, Sol balances capability and cost, and Luna handles focused, high-volume work.</td>
<td>OpenAI GPT-6 models (GPT-6 Astra, GPT-6.1 Sol, GPT-6.1 Terra, GPT-6 Luna), including access through Codex OAuth. Astra is the flagship for complex reasoning and coding, Sol balances capability and cost, Terra focuses on visual reasoning and computer use, and Luna handles focused, high-volume work.</td>
</tr>
<tr>
<td align="center"><a href="https://www.anthropic.com/claude/fable"><img src="./assets/logo/claude.svg" alt="Anthropic" width="28" height="28" /></a></td>
Expand Down Expand Up @@ -404,6 +404,14 @@ A Cloudflare-based LLM gateway and proxy server: CLIProxyAPI deployed to Cloudfl

Model-provider plugin for [Hermes Agent](https://github.com/NousResearch/hermes-agent) that registers one Hermes provider per CLIProxyAPI provider, each on the wire its executor accepts (Anthropic Messages, Responses or Chat Completions), with context windows and reasoning levels read from CLIProxyAPI. Optional read-only Management API pass for exact provider grouping. Listed in the [Hermes plugin catalog](https://hermes-agent.nousresearch.com/docs/plugins/cliproxyapi-provider): `hermes plugins install cliproxyapi-provider`.

### [Ebb](https://github.com/lucasnsaraujo/ebb)

Native macOS menu bar app for CLIProxyAPI pools. It shows how much of the pool's Claude, Codex and other providers' 5-hour and weekly limits is left and when it comes back, and sets each login's routing weight through the Management API so the accounts drain evenly.

### [Nia Live Demo](https://github.com/nia-teams/nia-live-demo)

Real-time full-duplex voice companion with a live, interactive SVG/HTML canvas. It combines two CLIProxyAPI capabilities: the Codex GPT-Live 1.1 media relay (`gpt-live-1-codex`, WebRTC + Sideband) for voice with instant barge-in, and `ultrafast` Responses (`gpt-6.1-sol` / `gpt-6-astra`) for drawing and editing the canvas while you talk.

> [!NOTE]
> If you developed a project based on CLIProxyAPI, please open a PR to add it to this list.

Expand Down
12 changes: 10 additions & 2 deletions README_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ CLIProxyAPI 是一个为 CLI 提供 OpenAI/Gemini/Claude/Codex/Grok 兼容 API
</tr>
<tr>
<td align="center"><a href="https://www.kimi.com/code/?aff=cliproxyapi"><img src="./assets/logo/kimi.svg" alt="Kimi" width="28" height="28" /></a></td>
<td>Kimi 系列模型(Kimi K3、K2.8 Preview 等)。<a href="https://platform.kimi.com/docs/guide/kimi-k3-quickstart">Kimi K3</a> 是 Moonshot AI 迄今能力最强的模型,也是全球首个开源 3T 级模型。K3 拥有 2.8T 参数、原生视觉能力与 100 万 Token 上下文,面向长周期编码、知识工作与推理任务。CLIProxyAPI 支持通过 OAuth 或兼容 API 接入 Kimi。立即体验 <strong>Kimi Code 订阅</strong>(<a href="https://www.kimi.com/code?aff=cliproxyapi">中文站</a>|<a href="https://www.kimi.ai/code?aff=cliproxyapi">Global</a>),或前往 Kimi 开放平台(<a href="https://platform.kimi.com?track_id=track-f15622e7182046baa22ca35e006e13a7&aff=cliproxyapi">中文站</a>|<a href="https://platform.kimi.ai?track_id=track-8a28e4b291d84f62af2fccc3e7a21cb3&aff=cliproxyapi">Global</a>)获取 <strong>API Key</strong>。感谢 Kimi 对 CLIProxyAPI 及开源社区的支持!</td>
<td>Kimi 系列模型(Kimi K3.1 Pro、K3.1 Pro Highspeed、K3、K2.8 Preview 等)。<a href="https://platform.kimi.com/docs/guide/kimi-k3-quickstart">Kimi K3</a> 是 Moonshot AI 的上一代旗舰模型,也是全球首个开源 3T 级模型。K3 拥有 2.8T 参数、原生视觉能力与 100 万 Token 上下文,面向长周期编码、知识工作与推理任务。CLIProxyAPI 支持通过 OAuth 或兼容 API 接入 Kimi。立即体验 <strong>Kimi Code 订阅</strong>(<a href="https://www.kimi.com/code?aff=cliproxyapi">中文站</a>|<a href="https://www.kimi.ai/code?aff=cliproxyapi">Global</a>),或前往 Kimi 开放平台(<a href="https://platform.kimi.com?track_id=track-f15622e7182046baa22ca35e006e13a7&aff=cliproxyapi">中文站</a>|<a href="https://platform.kimi.ai?track_id=track-8a28e4b291d84f62af2fccc3e7a21cb3&aff=cliproxyapi">Global</a>)获取 <strong>API Key</strong>。感谢 Kimi 对 CLIProxyAPI 及开源社区的支持!</td>
</tr>
<tr>
<td align="center"><a href="https://developers.openai.com/api/docs/models"><img src="./assets/logo/openai.svg" alt="OpenAI" width="28" height="28" /></a></td>
<td>OpenAI GPT-6 系列模型(GPT-6 Astra、GPT-6.1 Sol、GPT-6 Luna),也支持通过 Codex OAuth 接入。Astra 适合复杂推理与编程,Sol 兼顾能力与成本,Luna 适合高吞吐量的明确任务。</td>
<td>OpenAI GPT-6 系列模型(GPT-6 Astra、GPT-6.1 Sol、GPT-6.1 Terra、GPT-6 Luna),也支持通过 Codex OAuth 接入。Astra 适合复杂推理与编程,Sol 兼顾能力与成本,Terra 专注于视觉推理与计算机操作,Luna 适合高吞吐量的明确任务。</td>
</tr>
<tr>
<td align="center"><a href="https://www.anthropic.com/claude"><img src="./assets/logo/claude.svg" alt="Anthropic" width="28" height="28" /></a></td>
Expand Down Expand Up @@ -300,6 +300,14 @@ Claude Code 状态栏,按当前 CPA 实例展示 Codex / Grok / Antigravity /

[Hermes Agent](https://github.com/NousResearch/hermes-agent) 的模型提供方插件:为每个 CLIProxyAPI 提供方注册一个 Hermes 提供方,各自使用其执行器接受的协议(Anthropic Messages、Responses 或 Chat Completions),上下文窗口与推理等级读取自 CLIProxyAPI。可选只读 Management API 查询,用于精确的提供方分组。已收录于 [Hermes 插件目录](https://hermes-agent.nousresearch.com/docs/plugins/cliproxyapi-provider):`hermes plugins install cliproxyapi-provider`。

### [Ebb](https://github.com/lucasnsaraujo/ebb)

面向 CLIProxyAPI 账号池的原生 macOS 菜单栏应用。显示账号池中 Claude、Codex 等服务的 5 小时与每周额度还剩多少、何时恢复,并通过 Management API 设置每个登录的路由权重,让各账号均匀消耗。

### [Nia Live Demo](https://github.com/nia-teams/nia-live-demo)

全双工实时语音伙伴,带一块边聊边画、可点击交互的 SVG/HTML 画布。同时依赖 CLIProxyAPI 的两项能力:Codex GPT-Live 1.1 媒体中继(`gpt-live-1-codex`,WebRTC + Sideband)负责语音和随时打断;`ultrafast` 档 Responses(`gpt-6.1-sol` / `gpt-6-astra`)负责在对话过程中实时生成和修改画布。

> [!NOTE]
> 如果你开发了基于 CLIProxyAPI 的项目,请提交一个 PR(拉取请求)将其添加到此列表中。

Expand Down
12 changes: 10 additions & 2 deletions README_JA.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ CLIProxyAPI は、CLI向けのOpenAI/Gemini/Claude/Codex/Grok互換APIインタ
</tr>
<tr>
<td align="center"><a href="https://www.kimi.com/code/?aff=cliproxyapi"><img src="./assets/logo/kimi.svg" alt="Kimi" width="28" height="28" /></a></td>
<td>Kimiシリーズモデル(Kimi K3、K2.8 Previewなど)。<a href="https://platform.kimi.ai/docs/guide/kimi-k3-quickstart">Kimi K3</a>は、Moonshot AIで最も高性能なモデルであり、世界初のオープンな3兆パラメータ級モデルです。2.8兆のパラメータ、ネイティブな視覚機能、100万トークンのコンテキストウィンドウを備え、長期間にわたるコーディング、知識作業、推論向けに構築されています。CLIProxyAPIはOAuthまたは互換APIインターフェース経由でKimiをサポートします。<strong>Kimi Code プラン</strong>(<a href="https://www.kimi.com/code?aff=cliproxyapi">中文站</a> | <a href="https://www.kimi.ai/code?aff=cliproxyapi">Global</a>)を試すか、Kimi Open Platform(<a href="https://platform.kimi.com?track_id=track-f15622e7182046baa22ca35e006e13a7&aff=cliproxyapi">中文站</a> | <a href="https://platform.kimi.ai?track_id=track-8a28e4b291d84f62af2fccc3e7a21cb3&aff=cliproxyapi">Global</a>)で<strong>APIキー</strong>を取得してください。CLIProxyAPIとオープンソースコミュニティを支援してくださるKimiに感謝します!</td>
<td>Kimiシリーズモデル(Kimi K3.1 Pro、K3.1 Pro Highspeed、K3、K2.8 Previewなど)。<a href="https://platform.kimi.ai/docs/guide/kimi-k3-quickstart">Kimi K3</a>は、Moonshot AIの前世代のフラッグシップモデルであり、世界初のオープンな3兆パラメータ級モデルです。2.8兆のパラメータ、ネイティブな視覚機能、100万トークンのコンテキストウィンドウを備え、長期間にわたるコーディング、知識作業、推論向けに構築されています。CLIProxyAPIはOAuthまたは互換APIインターフェース経由でKimiをサポートします。<strong>Kimi Code プラン</strong>(<a href="https://www.kimi.com/code?aff=cliproxyapi">中文站</a> | <a href="https://www.kimi.ai/code?aff=cliproxyapi">Global</a>)を試すか、Kimi Open Platform(<a href="https://platform.kimi.com?track_id=track-f15622e7182046baa22ca35e006e13a7&aff=cliproxyapi">中文站</a> | <a href="https://platform.kimi.ai?track_id=track-8a28e4b291d84f62af2fccc3e7a21cb3&aff=cliproxyapi">Global</a>)で<strong>APIキー</strong>を取得してください。CLIProxyAPIとオープンソースコミュニティを支援してくださるKimiに感謝します!</td>
</tr>
<tr>
<td align="center"><a href="https://developers.openai.com/api/docs/models"><img src="./assets/logo/openai.svg" alt="OpenAI" width="28" height="28" /></a></td>
<td>OpenAI GPT-6シリーズモデル(GPT-6 Astra、GPT-6.1 Sol、GPT-6 Luna)。Codex OAuth経由でも利用できます。Astraは複雑な推論とコーディング、Solは性能とコストのバランス、Lunaは大量の明確なタスクに適しています。</td>
<td>OpenAI GPT-6シリーズモデル(GPT-6 Astra、GPT-6.1 Sol、GPT-6.1 Terra、GPT-6 Luna)。Codex OAuth経由でも利用できます。Astraは複雑な推論とコーディング、Solは性能とコストのバランス、Terraは視覚的推論とコンピューター操作、Lunaは大量の明確なタスクに適しています。</td>
</tr>
<tr>
<td align="center"><a href="https://www.anthropic.com/claude"><img src="./assets/logo/claude.svg" alt="Anthropic" width="28" height="28" /></a></td>
Expand Down Expand Up @@ -299,6 +299,14 @@ Cloudflare ベースの LLM ゲートウェイ兼プロキシサーバー。CLIP

[Hermes Agent](https://github.com/NousResearch/hermes-agent) 向けのモデルプロバイダープラグイン。CLIProxyAPI のプロバイダーごとに Hermes プロバイダーを 1 つ登録し、それぞれの executor が受け付けるプロトコル(Anthropic Messages、Responses、Chat Completions)を使います。コンテキストウィンドウと推論レベルは CLIProxyAPI から取得します。正確なプロバイダーグループ分けのための読み取り専用 Management API 照会はオプションです。[Hermes プラグインカタログ](https://hermes-agent.nousresearch.com/docs/plugins/cliproxyapi-provider)に掲載されています:`hermes plugins install cliproxyapi-provider`。

### [Ebb](https://github.com/lucasnsaraujo/ebb)

CLIProxyAPI のアカウントプール向けのネイティブ macOS メニューバーアプリ。プール全体で Claude、Codex などの 5 時間枠と週間枠がどれだけ残っているか、いつ戻るかを表示し、Management API で各ログインのルーティング重みを設定してアカウントを均等に消費させます。

### [Nia Live Demo](https://github.com/nia-teams/nia-live-demo)

話しながらリアルタイムで描画・操作できるインタラクティブな SVG/HTML キャンバスを備えた、全二重音声コンパニオン。CLIProxyAPI の 2 つの機能を組み合わせています:音声対話と即時割り込みを担う Codex GPT-Live 1.1 メディアリレー(`gpt-live-1-codex`、WebRTC + Sideband)と、会話中にキャンバスをリアルタイムで生成・編集する `ultrafast` Responses(`gpt-6.1-sol` / `gpt-6-astra`)です。

> [!NOTE]
> CLIProxyAPIをベースにプロジェクトを開発した場合は、PRを送ってこのリストに追加してください。

Expand Down
3 changes: 2 additions & 1 deletion config.example.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@ server:

# Negotiated compression of downstream HTTP responses (including SSE streams).
# Responses are compressed only when the client advertises zstd or gzip in
# Accept-Encoding; WebSocket upgrades are never wrapped.
# Accept-Encoding; WebSocket upgrades are never wrapped. Encoder memory is
# retained for the lifetime of an open stream and depends on prior pool usage.
response-compression:
# Default: true.
enabled: true
Expand Down
28 changes: 24 additions & 4 deletions docs/management-api-v8.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,8 +104,9 @@ retain the corresponding business operation's fields.
| `/credentials/status` | PATCH | Change credential status. |
| `/credentials/fields` | PATCH | Change credential fields. |
| `/credentials/refresh` | POST | Refresh credentials. |
| `/credentials/verify` | POST | Run an operator-triggered, account-pinned inference verification using an isolated session and minimal 1-token prompt. |
| `/oauth/import?provider=vertex` | POST | Import a Vertex service account using a multipart `file` upload. |
| `/oauth/auth-url?provider=<provider>` | GET | Start built-in or plugin OAuth. |
| `/oauth/auth-url?provider=<provider>` | GET, POST | Start built-in or plugin OAuth (supports `name`/`auth_index` for targeted credential recovery and optional `verify` opt-in). |
| `/oauth/siwc/bind` | POST | Start SIWC binding to an existing file-backed Codex OAuth credential. |
| `/oauth/siwc/status` | GET | Read local SIWC credential status (`off`, `valid`, or `invalid`). |
| `/oauth/status?state=<state>` | GET | Get login status. |
Expand All @@ -128,9 +129,16 @@ GET /v8/management/oauth/auth-url?provider=codex
Authorization: Bearer <management-key>
```

Keep any provider-specific login parameters in the query string. The login
response includes the authorization URL and a session `state`. Use that state
for status queries and cancellation.
Keep any provider-specific login parameters in the query string. To target recovery
at a specific existing credential, pass `name` (or `auth_index`) via query parameter
or POST JSON body; authenticating a different account will be rejected rather than
overwriting or clearing the target credential's recovery state. By default, post-login
inference verification is not executed automatically to avoid unexpected token
consumption; operators may explicitly opt in by passing `verify: true` (and optional
`verify_model`) when starting the targeted login, or trigger verification explicitly
after adoption via `POST /v8/management/credentials/verify` (`{"name":"<file>","model":"<optional-model>"}`).
The login response includes the authorization URL and a session `state` (plus `target_auth_id`
when targeted). Use that state for status queries and cancellation.

Callbacks accept `provider`, `state`, `code`, and `error` as GET query parameters
or POST JSON fields. POST also accepts `redirect_url` containing the complete
Expand Down Expand Up @@ -220,6 +228,18 @@ For Codex entries, `GET /credentials` includes these non-secret summary fields:
| `siwc_status` | string | Local SIWC status: `off`, `valid`, or `invalid`. |
| `siwc_bound` | boolean | SIWC access token, refresh token, and issued client ID are present; not a live validity check. |
| `siwc_expires_at` | optional RFC3339 string | Stored SIWC expiration, when available. |
| `access_token_expires_at` | optional RFC3339 string | Active access token expiration deadline, when available. |
| `next_refresh_after` | optional RFC3339 string | Next scheduled automatic refresh check, when in the future. |
| `requires_sign_in` | boolean | Automatic renewal failed with a terminal grant rejection and independent sign-in is required. |
| `renewal_state` | string | Renewal lifecycle state: `sign_in_required`, `expired_sign_in_required`, `retry_scheduled`, `awaiting_first_renewal`, or `renewal_verified`. |
| `recovery_stage` | string | Post-login runtime adoption and verification stage: `sign_in_required`, `quota_blocked`, `loaded`, `inference_verified`, or `renewal_verified`. |
| `adopted` | boolean | Whether the current credential version is loaded in the running auth manager. |
| `inference_verified` | boolean | Whether the current credential version has completed an inference response. |
| `renewal_verified` | boolean | Whether the current credential version has completed an automatic refresh cycle. |
| `refresh_error` | optional object | Sanitized last refresh failure (`code`, `message`, `http_status`) with no tokens, codes, or URLs. |
| `next_action` | optional string | Required operator recovery action (`sign_in` when `requires_sign_in` is true). |
| `recovery_hint` | optional string | Operator guidance explaining instance-scoped OAuth recovery when `requires_sign_in` is true. |
| `renewal_event` | optional object | Deduplicated structured event (`renewal_sign_in_required`) for terminal renewal failures. |

The v0 callback and credential-list contracts are unchanged. SIWC activation,
unbinding, and standalone SIWC credential creation are not separate management
Expand Down
Loading
Loading