@codexapi/codexclaude 2.0.13 → 2.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CUSTOMIZATIONS.md +7 -18
- package/README.md +8 -20
- package/bin/codexclaude.js +14 -91
- package/codexclaude.md +18 -12
- package/package.json +3 -3
package/CUSTOMIZATIONS.md
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
## Upstream Runtime
|
|
6
6
|
|
|
7
7
|
- Official package: `@openai/codex`
|
|
8
|
-
- Pinned runtime version: `0.142.
|
|
9
|
-
- Local launcher version: `2.0.
|
|
8
|
+
- Pinned runtime version: `0.142.5`
|
|
9
|
+
- Local launcher version: `2.0.14`
|
|
10
10
|
|
|
11
11
|
## Launcher Behavior
|
|
12
12
|
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
- Starts official Codex with `--search` by default.
|
|
17
17
|
- Passes all unknown commands directly to the official Codex CLI.
|
|
18
18
|
- Provides `codexclaude changelog` so users can see forced-update changes from the terminal.
|
|
19
|
+
- Does not expose separate `codexclaude status` or `codexclaude usage` commands; wallet information remains a compact pre-launch line.
|
|
19
20
|
- Checks npm latest at startup and blocks coding with an Update Now command when a newer launcher is available.
|
|
20
21
|
|
|
21
22
|
## Provider Config
|
|
@@ -30,18 +31,18 @@ The launcher writes a Codex model provider named `codexapi`:
|
|
|
30
31
|
|
|
31
32
|
## Runtime Defaults
|
|
32
33
|
|
|
33
|
-
- Model: selected by the user, defaulting to `gpt-5.5`; supported launcher choices are `gpt-5.5`, `claude-opus-4-8`, `claude-sonnet-
|
|
34
|
+
- Model: selected by the user, defaulting to `gpt-5.5`; supported launcher choices are `gpt-5.5`, `claude-opus-4-8`, `claude-sonnet-5`, `claude-fable-5`, `deepseek-v4-pro`, and `gemini-3.5-flash`.
|
|
34
35
|
- Reasoning effort displayed in Codex: `xhigh`
|
|
35
36
|
- Server-side upstream reasoning effort: `high`, enforced by CodexAPI.pro regardless of client display.
|
|
36
|
-
- Local model catalog: `~/.codexclaude/model_catalog.json`; this keeps native Codex `/model` limited to the six supported CodexAPI.pro choices and prevents fallback metadata warnings for Opus 4.8, Sonnet
|
|
37
|
+
- Local model catalog: `~/.codexclaude/model_catalog.json`; this keeps native Codex `/model` limited to the six supported CodexAPI.pro choices and prevents fallback metadata warnings for Opus 4.8, Sonnet 5, Fable 5, Deepseek v4 Budget, and Google Gemini Flash 3.5.
|
|
37
38
|
- Service tier: omitted by default; `/fast` remains a user-controlled Codex setting and is billed server-side when active.
|
|
38
39
|
- Approval policy: `never`
|
|
39
40
|
- Sandbox mode: `danger-full-access`
|
|
40
41
|
- TUI status line: `model-with-reasoning`, `fast-mode`, `current-dir`
|
|
41
42
|
- Claude-family Responses traffic uses the Claude-compatible CodexAPI.pro endpoint for CodexAPI.pro and ChatPlus accounts, while MyAPI.world accounts keep the MyAPI endpoint.
|
|
42
|
-
- Fable 5 stays visible to the user while the backend applies the custom routed premium path and
|
|
43
|
+
- Fable 5 stays visible to the user while the backend applies the custom routed premium path and 2x billing multiplier.
|
|
43
44
|
- Deepseek v4 Budget Responses traffic is routed through CodexAPI.pro's Deepseek-compatible gateway.
|
|
44
|
-
- Google Gemini Flash 3.5 Responses traffic keeps the user-visible Gemini model id while CodexAPI.pro routes it internally through Sonnet
|
|
45
|
+
- Google Gemini Flash 3.5 Responses traffic keeps the user-visible Gemini model id while CodexAPI.pro routes it internally through Sonnet 5 with the configured server effort.
|
|
45
46
|
|
|
46
47
|
Current backend state verified on 2026-06-25: Admin Manage Models controls runtime routing server-side. This operational routing must not change the launcher-visible model ids, model catalog, or customer-facing labels.
|
|
47
48
|
|
|
@@ -52,15 +53,3 @@ Before launching Codex, the launcher calls `/api/v1/me` using the saved API user
|
|
|
52
53
|
```text
|
|
53
54
|
gpt-5.5 xhigh · ~/project · Wallet $20.00
|
|
54
55
|
```
|
|
55
|
-
|
|
56
|
-
The same wallet lookup is available through:
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
codexclaude status
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
Recent token usage is available through:
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
|
-
codexclaude usage
|
|
66
|
-
```
|
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# codexclaude
|
|
2
2
|
|
|
3
|
-
`codexclaude` is the CodexAPI.pro launcher for customers who want one coding CLI that can use ChatGPT-5.5, Opus 4.8, Sonnet
|
|
3
|
+
`codexclaude` is the CodexAPI.pro launcher for customers who want one coding CLI that can use ChatGPT-5.5, Opus 4.8, Sonnet 5, Fable 5, Deepseek v4 Budget, or Google Gemini Flash 3.5 against the same Token Wallet.
|
|
4
4
|
|
|
5
|
-
Version `2.0.
|
|
5
|
+
Version `2.0.14` launches the official OpenAI Codex CLI `0.142.5` package and applies account, wallet, model, and Full Access defaults before Codex starts.
|
|
6
6
|
|
|
7
7
|
## Install
|
|
8
8
|
|
|
@@ -48,7 +48,7 @@ Switch model:
|
|
|
48
48
|
codexclaude model
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
Available model labels are `ChatGPT-5.5`, `Opus 4.8`, `Sonnet
|
|
51
|
+
Available model labels are `ChatGPT-5.5`, `Opus 4.8`, `Sonnet 5`, `Fable 5`, `Deepseek v4 Budget`, and `Google Gemini Flash 3.5`. All six use a Responses-compatible endpoint and the same customer Token Wallet.
|
|
52
52
|
|
|
53
53
|
Show current launcher changes:
|
|
54
54
|
|
|
@@ -64,30 +64,18 @@ Before launching Codex, the app prints a compact status line like:
|
|
|
64
64
|
gpt-5.5 xhigh · ~/codexapi · Wallet $20.00
|
|
65
65
|
```
|
|
66
66
|
|
|
67
|
-
You can also check this without starting Codex:
|
|
68
|
-
|
|
69
|
-
```bash
|
|
70
|
-
codexclaude status
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
Show recent wallet-billed token usage:
|
|
74
|
-
|
|
75
|
-
```bash
|
|
76
|
-
codexclaude usage
|
|
77
|
-
```
|
|
78
|
-
|
|
79
67
|
## Preserved CodexAPI.pro Customizations
|
|
80
68
|
|
|
81
69
|
- Dashboard username or email plus password login.
|
|
82
|
-
- ChatGPT-5.5, Opus 4.8, Sonnet
|
|
70
|
+
- ChatGPT-5.5, Opus 4.8, Sonnet 5, Fable 5, Deepseek v4 Budget, or Google Gemini Flash 3.5 model selection.
|
|
83
71
|
- CodexAPI.pro Responses-compatible provider at `https://codexapi.pro/v1`.
|
|
84
72
|
- Full Access defaults: approval policy `never` and sandbox mode `danger-full-access`.
|
|
85
73
|
- xhigh visible reasoning in the local Codex UI while CodexAPI.pro keeps upstream runtime effort server-managed.
|
|
86
|
-
- A local `~/.codexclaude/model_catalog.json` file so native Codex `/model` lists only ChatGPT-5.5, Opus 4.8, Sonnet
|
|
74
|
+
- A local `~/.codexclaude/model_catalog.json` file so native Codex `/model` lists only ChatGPT-5.5, Opus 4.8, Sonnet 5, Fable 5, Deepseek v4 Budget, and Google Gemini Flash 3.5.
|
|
87
75
|
- No default fast service tier. Fast mode is billed only when the user enables it inside Codex.
|
|
88
|
-
- Official Codex `0.142.
|
|
89
|
-
- Token Wallet balance lookup before launch
|
|
76
|
+
- Official Codex `0.142.5` runtime with the current profile-compatible config enabled.
|
|
77
|
+
- Token Wallet balance lookup before launch without exposing separate `status` or `usage` launcher commands.
|
|
90
78
|
- Opus 4.8 tool-call compatibility through the Chicago CodexAPI.pro Responses gateway.
|
|
91
|
-
- Google Gemini Flash 3.5 is visible to users while CodexAPI.pro routes it server-side through the approved Sonnet
|
|
79
|
+
- Google Gemini Flash 3.5 is visible to users while CodexAPI.pro routes it server-side through the approved Sonnet 5 low-effort bridge.
|
|
92
80
|
- Backend-identifying request headers so CodexAPI.pro can enforce subscription plan rules server-side.
|
|
93
81
|
- npm latest-version checks before coding starts, with an explicit update command when a newer required launcher exists.
|
package/bin/codexclaude.js
CHANGED
|
@@ -10,8 +10,8 @@ import { stdin as input, stdout as output } from "node:process";
|
|
|
10
10
|
|
|
11
11
|
const require = createRequire(import.meta.url);
|
|
12
12
|
|
|
13
|
-
const APP_VERSION = "2.0.
|
|
14
|
-
const CODEX_VERSION = "0.142.
|
|
13
|
+
const APP_VERSION = "2.0.14";
|
|
14
|
+
const CODEX_VERSION = "0.142.5";
|
|
15
15
|
const DISPLAY_REASONING_EFFORT = "xhigh";
|
|
16
16
|
const SERVER_REASONING_EFFORT = "high";
|
|
17
17
|
const API_ORIGIN = (process.env.CODEXCLAUDE_API_ORIGIN || "https://codexapi.pro").replace(/\/+$/, "");
|
|
@@ -52,10 +52,10 @@ const MODELS = {
|
|
|
52
52
|
label: "Opus 4.8",
|
|
53
53
|
aliases: ["2", "opus", "opus-4.8", "opus-4.7", "claude", "claude-opus-4-8", "claude-opus-4-7"],
|
|
54
54
|
},
|
|
55
|
-
"claude-sonnet-
|
|
56
|
-
id: "claude-sonnet-
|
|
57
|
-
label: "Sonnet
|
|
58
|
-
aliases: ["3", "sonnet", "sonnet-4.6", "sonnet-4-6", "claude-sonnet-4-6", "claude-sonnet-4.6"],
|
|
55
|
+
"claude-sonnet-5": {
|
|
56
|
+
id: "claude-sonnet-5",
|
|
57
|
+
label: "Sonnet 5",
|
|
58
|
+
aliases: ["3", "sonnet", "sonnet-5", "sonnet-4.6", "sonnet-4-6", "claude-sonnet-5", "claude-sonnet-4-6", "claude-sonnet-4.6"],
|
|
59
59
|
},
|
|
60
60
|
"claude-fable-5": {
|
|
61
61
|
id: "claude-fable-5",
|
|
@@ -100,14 +100,6 @@ async function main() {
|
|
|
100
100
|
logout();
|
|
101
101
|
return;
|
|
102
102
|
}
|
|
103
|
-
if (command === "status") {
|
|
104
|
-
await status();
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
if (command === "usage") {
|
|
108
|
-
await usage();
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
103
|
if (command === "model") {
|
|
112
104
|
await modelFlow();
|
|
113
105
|
return;
|
|
@@ -137,13 +129,11 @@ codexclaude ${APP_VERSION}
|
|
|
137
129
|
|
|
138
130
|
Commands:
|
|
139
131
|
codexclaude login Login with CodexAPI.pro username/email and password
|
|
140
|
-
codexclaude model Select ChatGPT-5.5, Opus 4.8, Sonnet
|
|
132
|
+
codexclaude model Select ChatGPT-5.5, Opus 4.8, Sonnet 5, Fable 5, Deepseek v4 Budget, or Google Gemini Flash 3.5
|
|
141
133
|
codexclaude changelog Show the latest CodexAPI.pro launcher changes
|
|
142
134
|
codexclaude setup Rewrite ~/.codex/config.toml with Full Access defaults
|
|
143
135
|
codexclaude start Start Codex with --search
|
|
144
136
|
codexclaude resume Resume with codex resume --search
|
|
145
|
-
codexclaude status Show saved account, selected model, and wallet balance
|
|
146
|
-
codexclaude usage Show wallet balance and recent token usage
|
|
147
137
|
codexclaude logout Remove saved codexclaude account state
|
|
148
138
|
|
|
149
139
|
Any other command is passed through to official Codex CLI ${CODEX_VERSION} after config is applied.
|
|
@@ -240,7 +230,7 @@ async function askModel(rl, current) {
|
|
|
240
230
|
const currentLabel = MODELS[current]?.label || MODELS["gpt-5.5"].label;
|
|
241
231
|
console.log("\nChoose your coding model:");
|
|
242
232
|
Object.values(MODELS).forEach((model, index) => {
|
|
243
|
-
const premium = model.premium ? " (
|
|
233
|
+
const premium = model.premium ? " (2x premium billing)" : "";
|
|
244
234
|
console.log(` ${index + 1}. ${model.label}${premium}`);
|
|
245
235
|
});
|
|
246
236
|
const answer = (await rl.question(`Model [${currentLabel}]: `)).trim().toLowerCase();
|
|
@@ -530,8 +520,8 @@ function modelCatalogDescription(modelId) {
|
|
|
530
520
|
if (modelId === "claude-opus-4-8") {
|
|
531
521
|
return "CodexAPI.pro Opus 4.8 coding route with local Codex tools and wallet billing.";
|
|
532
522
|
}
|
|
533
|
-
if (modelId === "claude-sonnet-
|
|
534
|
-
return "CodexAPI.pro Sonnet
|
|
523
|
+
if (modelId === "claude-sonnet-5") {
|
|
524
|
+
return "CodexAPI.pro Sonnet 5 coding route with local Codex tools and wallet billing.";
|
|
535
525
|
}
|
|
536
526
|
if (modelId === "claude-fable-5") {
|
|
537
527
|
return "CodexAPI.pro Fable 5 premium coding route with local Codex tools and wallet billing.";
|
|
@@ -571,69 +561,6 @@ function logout() {
|
|
|
571
561
|
console.log("codexclaude login state removed. Codex config was left untouched.");
|
|
572
562
|
}
|
|
573
563
|
|
|
574
|
-
async function status() {
|
|
575
|
-
const config = readConfig();
|
|
576
|
-
if (!config?.username) {
|
|
577
|
-
console.log("Not logged in. Run: codexclaude login");
|
|
578
|
-
return;
|
|
579
|
-
}
|
|
580
|
-
console.log(`Logged in as: ${config.username}`);
|
|
581
|
-
console.log(`Model: ${MODELS[config.model]?.label || config.model}`);
|
|
582
|
-
console.log(`Codex runtime: @openai/codex ${CODEX_VERSION}`);
|
|
583
|
-
console.log(`Reasoning: ${DISPLAY_REASONING_EFFORT}`);
|
|
584
|
-
console.log("Fast mode: off by default; billed only when enabled inside Codex.");
|
|
585
|
-
console.log(`API: ${config.apiOrigin || API_ORIGIN}`);
|
|
586
|
-
console.log(`Model API route: ${providerOriginLabel(config)}`);
|
|
587
|
-
console.log(`Codex config: ${CODEX_CONFIG_FILE}`);
|
|
588
|
-
try {
|
|
589
|
-
const wallet = await walletSnapshot(config);
|
|
590
|
-
console.log(`Token Wallet: ${formatUsd(wallet.balance)}`);
|
|
591
|
-
console.log(formatStatusLine(config, wallet, process.cwd()));
|
|
592
|
-
} catch (error) {
|
|
593
|
-
console.log(`Token Wallet: unavailable (${error.message})`);
|
|
594
|
-
}
|
|
595
|
-
}
|
|
596
|
-
|
|
597
|
-
async function usage() {
|
|
598
|
-
const config = readConfig();
|
|
599
|
-
if (!config?.username) {
|
|
600
|
-
console.log("Not logged in. Run: codexclaude login");
|
|
601
|
-
return;
|
|
602
|
-
}
|
|
603
|
-
console.log(`Logged in as: ${config.username}`);
|
|
604
|
-
console.log(`API: ${config.apiOrigin || API_ORIGIN}`);
|
|
605
|
-
try {
|
|
606
|
-
const wallet = await walletSnapshot(config);
|
|
607
|
-
console.log(`Token Wallet: ${formatUsd(wallet.balance)}`);
|
|
608
|
-
} catch (error) {
|
|
609
|
-
console.log(`Token Wallet: unavailable (${error.message})`);
|
|
610
|
-
}
|
|
611
|
-
const usagePayload = await usageSnapshot(config);
|
|
612
|
-
if (!usagePayload) {
|
|
613
|
-
console.log("Usage: unavailable from this account endpoint.");
|
|
614
|
-
return;
|
|
615
|
-
}
|
|
616
|
-
const summary = usagePayload.summary || {};
|
|
617
|
-
const totalUsd = summary.totalChargedUsd || summary.totalUsd || summary.chargedUsd || null;
|
|
618
|
-
if (totalUsd !== null && totalUsd !== undefined) {
|
|
619
|
-
console.log(`Recent usage total: ${formatUsd(numericWalletValue(totalUsd))}`);
|
|
620
|
-
}
|
|
621
|
-
const transactions = Array.isArray(usagePayload.transactions) ? usagePayload.transactions.slice(0, 10) : [];
|
|
622
|
-
if (!transactions.length) {
|
|
623
|
-
console.log("No token usage transactions are recorded yet.");
|
|
624
|
-
return;
|
|
625
|
-
}
|
|
626
|
-
console.log("\nRecent token usage:");
|
|
627
|
-
for (const item of transactions) {
|
|
628
|
-
const when = item.createdAt || item.created_at || "";
|
|
629
|
-
const model = item.model || item.modelId || item.service || "model";
|
|
630
|
-
const amount = item.chargedUsd ?? item.charged_usd ?? item.amountUsd ?? item.amount_usd ?? "0";
|
|
631
|
-
const inputTokens = item.inputTokens ?? item.input_tokens ?? 0;
|
|
632
|
-
const outputTokens = item.outputTokens ?? item.output_tokens ?? 0;
|
|
633
|
-
console.log(`- ${when} · ${model} · ${formatUsd(numericWalletValue(amount))} · in ${inputTokens} / out ${outputTokens}`);
|
|
634
|
-
}
|
|
635
|
-
}
|
|
636
|
-
|
|
637
564
|
async function runCodex(args) {
|
|
638
565
|
const config = requireConfig();
|
|
639
566
|
let wallet = null;
|
|
@@ -748,10 +675,6 @@ async function walletSnapshot(config) {
|
|
|
748
675
|
};
|
|
749
676
|
}
|
|
750
677
|
|
|
751
|
-
async function usageSnapshot(config) {
|
|
752
|
-
return await tryGetJsonAuth("/api/v1/billing/token-usage?limit=25&days=30", config, { timeoutMs: 20000 });
|
|
753
|
-
}
|
|
754
|
-
|
|
755
678
|
function numericWalletValue(value) {
|
|
756
679
|
if (typeof value === "number" && Number.isFinite(value)) {
|
|
757
680
|
return value;
|
|
@@ -771,8 +694,8 @@ function modelStatusName(model) {
|
|
|
771
694
|
if (model === "claude-opus-4-8") {
|
|
772
695
|
return "opus-4.8";
|
|
773
696
|
}
|
|
774
|
-
if (model === "claude-sonnet-
|
|
775
|
-
return "sonnet-
|
|
697
|
+
if (model === "claude-sonnet-5") {
|
|
698
|
+
return "sonnet-5";
|
|
776
699
|
}
|
|
777
700
|
if (model === "claude-fable-5") {
|
|
778
701
|
return "fable-5";
|
|
@@ -794,8 +717,8 @@ function normalizeConfig(config) {
|
|
|
794
717
|
if (normalized.model === "claude-opus-4-7") {
|
|
795
718
|
normalized.model = "claude-opus-4-8";
|
|
796
719
|
}
|
|
797
|
-
if (["claude-sonnet-4.6", "sonnet-4.6", "sonnet-4-6"].includes(normalized.model)) {
|
|
798
|
-
normalized.model = "claude-sonnet-
|
|
720
|
+
if (["claude-sonnet-4.6", "claude-sonnet-4-6", "sonnet-4.6", "sonnet-4-6", "sonnet-5"].includes(normalized.model)) {
|
|
721
|
+
normalized.model = "claude-sonnet-5";
|
|
799
722
|
}
|
|
800
723
|
if (["claude-fabel-5", "fable-5", "fabel-5"].includes(normalized.model)) {
|
|
801
724
|
normalized.model = "claude-fable-5";
|
package/codexclaude.md
CHANGED
|
@@ -9,8 +9,8 @@ there is no supported configuration or API boundary that can solve the issue.
|
|
|
9
9
|
## Current Release
|
|
10
10
|
|
|
11
11
|
- Launcher package: `@codexapi/codexclaude`
|
|
12
|
-
- Launcher version: `2.0.
|
|
13
|
-
- Official Codex runtime dependency: `@openai/codex@0.142.
|
|
12
|
+
- Launcher version: `2.0.14`
|
|
13
|
+
- Official Codex runtime dependency: `@openai/codex@0.142.5`
|
|
14
14
|
- Public install command: `npm install -g @codexapi/codexclaude@latest`
|
|
15
15
|
- Default API origin: `https://codexapi.pro`
|
|
16
16
|
- Normal Responses base URL: `https://codexapi.pro/v1`
|
|
@@ -19,7 +19,7 @@ there is no supported configuration or API boundary that can solve the issue.
|
|
|
19
19
|
- Generated Codex config: `~/.codex/config.toml`
|
|
20
20
|
- Generated Codex model catalog: `~/.codexclaude/model_catalog.json`
|
|
21
21
|
|
|
22
|
-
State verified on 2026-
|
|
22
|
+
State verified on 2026-07-05: the launcher pins official Codex CLI `0.142.5`. Backend routing is server-controlled by Admin Manage Models and must not collapse the launcher model list or rename customer-selected model ids.
|
|
23
23
|
|
|
24
24
|
## Required User-Facing Model Behavior
|
|
25
25
|
|
|
@@ -27,7 +27,7 @@ State verified on 2026-06-25: the launcher pins official Codex CLI `0.142.2`. Ba
|
|
|
27
27
|
|
|
28
28
|
- `gpt-5.5` displayed as `ChatGPT-5.5`
|
|
29
29
|
- `claude-opus-4-8` displayed as `Opus 4.8`
|
|
30
|
-
- `claude-sonnet-
|
|
30
|
+
- `claude-sonnet-5` displayed as `Sonnet 5`
|
|
31
31
|
- `claude-fable-5` displayed as `Fable 5`
|
|
32
32
|
- `deepseek-v4-pro` displayed as `Deepseek v4 Budget`
|
|
33
33
|
- `gemini-3.5-flash` displayed as `Google Gemini Flash 3.5`
|
|
@@ -99,8 +99,7 @@ The launcher keeps both concepts explicit:
|
|
|
99
99
|
- `DISPLAY_REASONING_EFFORT = "xhigh"`
|
|
100
100
|
- `SERVER_REASONING_EFFORT = "high"`
|
|
101
101
|
|
|
102
|
-
The status
|
|
103
|
-
`codexclaude status` may show the configured server effort for transparency, but normal launch status must not imply the user-visible model is downgraded.
|
|
102
|
+
The native Codex status line should show `xhigh`. The launcher no longer exposes separate `codexclaude status` or `codexclaude usage` commands, so normal launch status must not imply the user-visible model is downgraded.
|
|
104
103
|
|
|
105
104
|
## Fast Mode Behavior
|
|
106
105
|
|
|
@@ -153,7 +152,7 @@ snapshotting, and billing records.
|
|
|
153
152
|
|
|
154
153
|
Claude-family codexclaude models use the CodexAPI.pro Claude-compatible Responses endpoint for CodexAPI.pro and ChatPlus accounts. MyAPI.world accounts keep their own configured `api.myapi.world` Responses endpoint.
|
|
155
154
|
|
|
156
|
-
`claude-fable-5` is a premium customer-visible model. The backend bills it at the configured
|
|
155
|
+
`claude-fable-5` is a premium customer-visible model. The backend bills it at the configured 2x multiplier and routes it through the Admin-selected Fable 5 route while preserving `claude-fable-5` in client-visible status and usage records.
|
|
157
156
|
|
|
158
157
|
`deepseek-v4-pro` uses the configured API origin. The backend currently routes
|
|
159
158
|
this through the CodexAPI.pro-compatible path according to the active server
|
|
@@ -161,7 +160,7 @@ policy.
|
|
|
161
160
|
|
|
162
161
|
`gemini-3.5-flash` uses the configured API origin. The backend must keep
|
|
163
162
|
`gemini-3.5-flash` visible to the user and usage records while routing the
|
|
164
|
-
request internally through `claude-sonnet-
|
|
163
|
+
request internally through `claude-sonnet-5` at the configured server effort.
|
|
165
164
|
|
|
166
165
|
The launcher must send these headers for every model:
|
|
167
166
|
|
|
@@ -204,7 +203,7 @@ If that endpoint fails, fall back to:
|
|
|
204
203
|
/api/v1/me
|
|
205
204
|
```
|
|
206
205
|
|
|
207
|
-
|
|
206
|
+
The launcher does not expose a separate usage command. Wallet lookup failures must not block a local coding session.
|
|
208
207
|
|
|
209
208
|
## Upgrade Checklist
|
|
210
209
|
|
|
@@ -271,19 +270,26 @@ python3 -m py_compile app/main.py app/openai_compat.py app/config.py app/postgre
|
|
|
271
270
|
/root/codexapi/.venv/bin/pytest -q tests/test_openai_compat.py tests/test_main_helpers.py
|
|
272
271
|
```
|
|
273
272
|
|
|
273
|
+
## Version 2.0.14 Changes
|
|
274
|
+
|
|
275
|
+
- Updated the official OpenAI Codex runtime dependency to `@openai/codex@0.142.5`, the latest version currently published on npm.
|
|
276
|
+
- Kept `claude-sonnet-5` and `claude-fable-5` as the live API slugs for Sonnet 5 and Fable 5 after verifying those names from the production model APIs.
|
|
277
|
+
- Removed the standalone `codexclaude status` and `codexclaude usage` launcher commands while preserving the compact wallet status line printed before a coding session starts.
|
|
278
|
+
- Preserved Full Access defaults, xhigh visible reasoning, server-managed high runtime effort, bearer username auth, local model catalog metadata, and CodexAPI.pro identifying headers.
|
|
279
|
+
|
|
274
280
|
## Version 2.0.13 Changes
|
|
275
281
|
|
|
276
282
|
- Updated the official OpenAI Codex runtime dependency to `@openai/codex@0.142.2`.
|
|
277
|
-
- Added Sonnet
|
|
283
|
+
- Added Sonnet 5 and Fable 5 as visible launcher and native Codex `/model` choices.
|
|
278
284
|
- Added `codexclaude usage`, which reads wallet and recent token usage from the signed-in account origin, including CodexAPI.pro, ChatPlus, or MyAPI.world compatible endpoints.
|
|
279
|
-
- Kept Fable 5 customer-visible while the backend applies its custom routed premium path and
|
|
285
|
+
- Kept Fable 5 customer-visible while the backend applies its custom routed premium path and 2x billing multiplier.
|
|
280
286
|
- Preserved Full Access defaults, xhigh visible reasoning, server-managed high runtime effort, wallet auth, and local model catalog metadata.
|
|
281
287
|
|
|
282
288
|
## Version 2.0.12 Changes
|
|
283
289
|
|
|
284
290
|
- Updated the official OpenAI Codex runtime dependency to `@openai/codex@0.141.0`.
|
|
285
291
|
- Added Google Gemini Flash 3.5 as a fourth visible launcher and native Codex `/model` choice.
|
|
286
|
-
- Kept Gemini visible in client config, response metadata, and usage records while the backend routes it through Sonnet
|
|
292
|
+
- Kept Gemini visible in client config, response metadata, and usage records while the backend routes it through Sonnet 5 low effort.
|
|
287
293
|
- Preserved the CodexAPI.pro launcher layer, Full Access defaults, xhigh visible reasoning, server-managed low runtime effort, wallet auth, and Opus 4.8 Chicago routing.
|
|
288
294
|
|
|
289
295
|
## Version 2.0.11 Changes
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codexapi/codexclaude",
|
|
3
|
-
"version": "2.0.
|
|
4
|
-
"description": "CodexAPI.pro coding CLI launcher for ChatGPT-5.5, Opus 4.8, Sonnet
|
|
3
|
+
"version": "2.0.14",
|
|
4
|
+
"description": "CodexAPI.pro coding CLI launcher for ChatGPT-5.5, Opus 4.8, Sonnet 5, Fable 5, Deepseek v4 Budget, and Google Gemini Flash 3.5, powered by official Codex CLI 0.142.5.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"bin": {
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"node": ">=20"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@openai/codex": "^0.142.
|
|
20
|
+
"@openai/codex": "^0.142.5"
|
|
21
21
|
},
|
|
22
22
|
"publishConfig": {
|
|
23
23
|
"access": "public"
|