@christiandoxa/prodex 0.138.0 → 0.140.0
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/README.md +47 -12
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
# prodex
|
|
2
2
|
|
|
3
|
-
`prodex` is a multi-account Codex wrapper with auto-rotation.
|
|
3
|
+
`prodex` is a multi-account, multi-provider Codex wrapper with auto-rotation.
|
|
4
4
|
|
|
5
|
-
Use multiple Codex accounts from one command line.
|
|
5
|
+
Use multiple Codex accounts and supported provider backends from one command line. OpenAI/Codex profiles get quota-aware routing and auto-rotation; provider adapters let `prodex s` launch the Codex front end against Gemini, Anthropic, Copilot, DeepSeek, and local OpenAI-compatible servers.
|
|
6
6
|
|
|
7
7
|
## Contents
|
|
8
8
|
|
|
9
9
|
- [Why prodex](#why-prodex)
|
|
10
10
|
- [Requirements](#requirements)
|
|
11
|
+
- [Supported providers](#supported-providers)
|
|
11
12
|
- [Installation](#installation)
|
|
12
13
|
- [Optional tools](#optional-tools)
|
|
13
14
|
- [Quick start](#quick-start)
|
|
@@ -27,6 +28,7 @@ Use `prodex` if you want to:
|
|
|
27
28
|
|
|
28
29
|
- use multiple Codex accounts from one CLI
|
|
29
30
|
- rotate to another account when quota runs out
|
|
31
|
+
- launch Codex/Super against non-OpenAI providers without changing front ends
|
|
30
32
|
- keep profile credentials separated
|
|
31
33
|
- keep sessions attached to the profile that created them
|
|
32
34
|
- run Codex, Caveman mode, Super mode, and Claude Code through the same wrapper
|
|
@@ -44,9 +46,33 @@ You need at least one logged-in Prodex profile.
|
|
|
44
46
|
| Claude-Mem | `mem` variants |
|
|
45
47
|
| RTK | `rtk` variants and `prodex s` / `prodex super` |
|
|
46
48
|
|
|
49
|
+
## Supported providers
|
|
50
|
+
|
|
51
|
+
Prodex supports two provider paths:
|
|
52
|
+
|
|
53
|
+
- **Profile-backed routing**: persisted profiles that Prodex can select, rotate, and inspect where provider APIs allow it.
|
|
54
|
+
- **Runtime provider launch**: `prodex s --provider ...` / `prodex super --provider ...` starts Codex with a temporary provider bridge for that session.
|
|
55
|
+
|
|
56
|
+
| Provider | Launch to Codex | Auth path | Quota view | Notes |
|
|
57
|
+
|---|---:|---|---:|---|
|
|
58
|
+
| OpenAI / Codex | `prodex`, `prodex run`, `prodex s` | ChatGPT OAuth, device code, or OpenAI/API-compatible key via `prodex login` | Yes | Full quota preflight and profile auto-rotation. |
|
|
59
|
+
| Google Gemini | `prodex s --provider gemini` | Google OAuth via `prodex login --with-google`, or `GEMINI_API_KEY` / `--api-key` | OAuth profiles | OAuth mode can rotate across Gemini profiles; API-key mode is runtime-only. |
|
|
60
|
+
| Anthropic Claude | `prodex s --provider anthropic` | Claude Code OAuth via `prodex login --with-claude` / `prodex profile import claude`, or `ANTHROPIC_API_KEY(S)` / `--api-key` | OAuth profiles | Shows Claude OAuth readiness; add `ANTHROPIC_ADMIN_KEY` to include Anthropic Admin rate-limit groups. |
|
|
61
|
+
| GitHub Copilot | `prodex s --provider copilot` | Imported Copilot CLI profile via `prodex profile import copilot`, or `GITHUB_COPILOT_API_KEY` / `--api-key` | Imported profiles | Native Copilot profile mode keeps continuations bound to the owning profile. |
|
|
62
|
+
| DeepSeek | `prodex s --provider deepseek` | `DEEPSEEK_API_KEY(S)` / `--api-key` | API-key balance | `prodex quota --all --provider deepseek` reads DeepSeek `/user/balance`. |
|
|
63
|
+
| Local OpenAI-compatible | `prodex super --url http://127.0.0.1:8131` | Local server auth/config | Health snapshot | `prodex quota --all --provider local --base-url ...` checks the local `/models` endpoint. |
|
|
64
|
+
| Bedrock / custom Codex `model_provider` | `prodex run` / `prodex caveman` direct pass-through | Codex-owned config | Config snapshot | Prodex reports configured provider metadata; provider-side quota stays owned by Codex/upstream. |
|
|
65
|
+
|
|
66
|
+
<details>
|
|
67
|
+
<summary>Provider behavior details</summary>
|
|
68
|
+
|
|
69
|
+
The auto-rotate proxy is intentionally conservative. It rotates only before a request or stream is committed, preserves `previous_response_id`, turn-state, and session affinity, and does not rotate mid-stream. OpenAI/Codex remains the default quota-aware pool. Gemini OAuth, imported Copilot profiles, Anthropic OAuth profiles, DeepSeek API keys, local OpenAI-compatible URLs, and Bedrock/custom Codex providers now have `prodex quota` views. Anthropic, DeepSeek, API-key Gemini, API-key Copilot, local URLs, and Bedrock/custom Codex providers still skip OpenAI quota preflight.
|
|
70
|
+
|
|
71
|
+
</details>
|
|
72
|
+
|
|
47
73
|
## Installation
|
|
48
74
|
|
|
49
|
-
<details
|
|
75
|
+
<details>
|
|
50
76
|
<summary>Install from npm</summary>
|
|
51
77
|
|
|
52
78
|
```bash
|
|
@@ -346,7 +372,7 @@ When you answer `y` to the `prodex super` / `prodex s` Presidio prompt or pass `
|
|
|
346
372
|
|
|
347
373
|
## Quick start
|
|
348
374
|
|
|
349
|
-
<details
|
|
375
|
+
<details>
|
|
350
376
|
<summary>Import your current Codex login</summary>
|
|
351
377
|
|
|
352
378
|
If your current Codex home is already logged in:
|
|
@@ -428,7 +454,7 @@ When you import a Copilot profile, Prodex does not move the Copilot token into P
|
|
|
428
454
|
|
|
429
455
|
## Daily command: `prodex s`
|
|
430
456
|
|
|
431
|
-
<details
|
|
457
|
+
<details>
|
|
432
458
|
<summary>Super mode overview</summary>
|
|
433
459
|
|
|
434
460
|
For daily work, I use:
|
|
@@ -488,7 +514,7 @@ Managed optimizer checkouts are discovered from `PRODEX_OPTIMIZERS_HOME`, `$XDG_
|
|
|
488
514
|
|
|
489
515
|
## Commands
|
|
490
516
|
|
|
491
|
-
<details
|
|
517
|
+
<details>
|
|
492
518
|
<summary>Most used commands</summary>
|
|
493
519
|
|
|
494
520
|
```bash
|
|
@@ -535,9 +561,12 @@ prodex super --dry-run
|
|
|
535
561
|
prodex quota --all
|
|
536
562
|
prodex quota --all --once
|
|
537
563
|
prodex quota --all --auth no-auth --once
|
|
564
|
+
prodex quota --all --detail --provider openai
|
|
565
|
+
prodex quota --all --provider deepseek --once
|
|
566
|
+
prodex quota --all --provider local --base-url http://127.0.0.1:8131/v1 --once
|
|
538
567
|
```
|
|
539
568
|
|
|
540
|
-
The live `prodex quota --all --detail` view accepts `s` to cycle sort modes and `f` to cycle the provider filter through `all`, `openai`, and `gemini
|
|
569
|
+
The live `prodex quota --all --detail` view accepts `s` to cycle sort modes and `f` to cycle the provider filter through `all`, `openai`, `gemini`, `anthropic`, `copilot`, `deepseek`, and `local`. Add `--provider openai`, `--provider gemini`, `--provider anthropic`, `--provider copilot`, `--provider deepseek`, or `--provider local` to start locked to a single provider.
|
|
541
570
|
|
|
542
571
|
</details>
|
|
543
572
|
|
|
@@ -682,7 +711,7 @@ prodex s --provider anthropic --model claude-sonnet-4-6
|
|
|
682
711
|
prodex s --provider anthropic --model claude-sonnet-4-6 --api-key "$ANTHROPIC_API_KEY"
|
|
683
712
|
```
|
|
684
713
|
|
|
685
|
-
If `--api-key` is omitted, Prodex uses the Anthropic profile created by `prodex login --with-claude` or `prodex profile import claude`. API-key mode still reads `ANTHROPIC_API_KEY`; `ANTHROPIC_API_KEYS` may contain multiple comma-, semicolon-, or newline-separated keys for round-robin request rotation. This path injects a temporary `prodex-anthropic` Codex provider, exposes a local `/v1/responses` adapter to Codex, forwards to Anthropic's OpenAI-compatible chat API, and keeps quota preflight disabled.
|
|
714
|
+
If `--api-key` is omitted, Prodex uses the Anthropic profile created by `prodex login --with-claude` or `prodex profile import claude`. API-key mode still reads `ANTHROPIC_API_KEY`; `ANTHROPIC_API_KEYS` may contain multiple comma-, semicolon-, or newline-separated keys for round-robin request rotation. This path injects a temporary `prodex-anthropic` Codex provider, exposes a local `/v1/responses` adapter to Codex, forwards to Anthropic's OpenAI-compatible chat API, and keeps quota preflight disabled. `prodex quota --all --provider anthropic` shows OAuth readiness for Anthropic profiles; set `ANTHROPIC_ADMIN_KEY` when you want Anthropic Admin rate-limit groups included.
|
|
686
715
|
|
|
687
716
|
Use `--provider copilot` when you want the Codex/Super front end with GitHub Copilot upstream:
|
|
688
717
|
|
|
@@ -699,7 +728,7 @@ Use `--provider deepseek` when you want the Codex/Super front end with DeepSeek
|
|
|
699
728
|
prodex s --provider deepseek --model deepseek-v4-pro --api-key "$DEEPSEEK_API_KEY"
|
|
700
729
|
```
|
|
701
730
|
|
|
702
|
-
If `--api-key` is omitted, Prodex reads `DEEPSEEK_API_KEY`; `DEEPSEEK_API_KEYS` may contain multiple comma-, semicolon-, or newline-separated keys for round-robin request rotation. This path injects a temporary `prodex-deepseek` Codex provider, exposes a local `/v1/responses` adapter to Codex, forwards to DeepSeek's OpenAI-format chat API, and keeps quota preflight disabled. Prodex also injects a one-model Codex catalog for the selected DeepSeek model, so `/model` stays on that model and offers the DeepSeek-compatible `high`/`xhigh` effort choices. The Super optional tools still run normally because they are local launch overlays around Codex. Remote compact is not implemented for this adapter yet, so the default DeepSeek context window is large and `--auto-compact-token-limit` defaults high.
|
|
731
|
+
If `--api-key` is omitted, Prodex reads `DEEPSEEK_API_KEY`; `DEEPSEEK_API_KEYS` may contain multiple comma-, semicolon-, or newline-separated keys for round-robin request rotation. This path injects a temporary `prodex-deepseek` Codex provider, exposes a local `/v1/responses` adapter to Codex, forwards to DeepSeek's OpenAI-format chat API, and keeps quota preflight disabled. Prodex also injects a one-model Codex catalog for the selected DeepSeek model, so `/model` stays on that model and offers the DeepSeek-compatible `high`/`xhigh` effort choices. `prodex quota --all --provider deepseek` reads the same `DEEPSEEK_API_KEY(S)` environment and fetches DeepSeek `/user/balance`. The Super optional tools still run normally because they are local launch overlays around Codex. Remote compact is not implemented for this adapter yet, so the default DeepSeek context window is large and `--auto-compact-token-limit` defaults high.
|
|
703
732
|
|
|
704
733
|
Use `--provider gemini` when you want the Codex/Super front end with Gemini upstream:
|
|
705
734
|
|
|
@@ -750,7 +779,7 @@ prodex claude --profile second -- -p --output-format json "show the latest diff"
|
|
|
750
779
|
|
|
751
780
|
## Profiles
|
|
752
781
|
|
|
753
|
-
<details
|
|
782
|
+
<details>
|
|
754
783
|
<summary>Common profile commands</summary>
|
|
755
784
|
|
|
756
785
|
```bash
|
|
@@ -797,6 +826,12 @@ By default, Prodex:
|
|
|
797
826
|
- advertises a conservative 16k local context window
|
|
798
827
|
- skips quota/proxy routing for that launch
|
|
799
828
|
|
|
829
|
+
Check local server reachability with:
|
|
830
|
+
|
|
831
|
+
```bash
|
|
832
|
+
prodex quota --all --provider local --base-url http://127.0.0.1:8131/v1 --once
|
|
833
|
+
```
|
|
834
|
+
|
|
800
835
|
The default local model id is:
|
|
801
836
|
|
|
802
837
|
```bash
|
|
@@ -880,13 +915,13 @@ Set `PRODEX_SHARED_CODEX_HOME` only when you intentionally want a different shar
|
|
|
880
915
|
<details>
|
|
881
916
|
<summary>Bedrock and custom providers</summary>
|
|
882
917
|
|
|
883
|
-
Auto-rotate and quota checks apply to supported OpenAI/Codex profiles. `prodex quota` also supports Google Gemini OAuth profiles
|
|
918
|
+
Auto-rotate and quota checks apply to supported OpenAI/Codex profiles. `prodex quota` also supports Google Gemini OAuth profiles, Anthropic OAuth profiles, imported Copilot accounts, DeepSeek API-key balances, local OpenAI-compatible health snapshots, and configured custom providers.
|
|
884
919
|
|
|
885
920
|
If a profile's `config.toml` sets `model_provider` to a non-OpenAI backend such as `amazon-bedrock`, `prodex run` and `prodex caveman` launch Codex directly without quota preflight or the local auto-rotate proxy.
|
|
886
921
|
|
|
887
922
|
Bedrock quota, credentials, regions, and provider errors are handled by Codex and the upstream provider, not by Prodex.
|
|
888
923
|
|
|
889
|
-
`prodex quota`
|
|
924
|
+
`prodex quota` shows the configured provider metadata for those profiles instead of failing the view.
|
|
890
925
|
|
|
891
926
|
</details>
|
|
892
927
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@christiandoxa/prodex",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.140.0",
|
|
4
4
|
"description": "Safe multi-account auto-rotate for Codex CLI with isolated CODEX_HOME profiles",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"bin": {
|
|
@@ -16,12 +16,12 @@
|
|
|
16
16
|
"@openai/codex": "latest"
|
|
17
17
|
},
|
|
18
18
|
"optionalDependencies": {
|
|
19
|
-
"@christiandoxa/prodex-linux-x64": "0.
|
|
20
|
-
"@christiandoxa/prodex-linux-arm64": "0.
|
|
21
|
-
"@christiandoxa/prodex-darwin-x64": "0.
|
|
22
|
-
"@christiandoxa/prodex-darwin-arm64": "0.
|
|
23
|
-
"@christiandoxa/prodex-win32-x64": "0.
|
|
24
|
-
"@christiandoxa/prodex-win32-arm64": "0.
|
|
19
|
+
"@christiandoxa/prodex-linux-x64": "0.140.0",
|
|
20
|
+
"@christiandoxa/prodex-linux-arm64": "0.140.0",
|
|
21
|
+
"@christiandoxa/prodex-darwin-x64": "0.140.0",
|
|
22
|
+
"@christiandoxa/prodex-darwin-arm64": "0.140.0",
|
|
23
|
+
"@christiandoxa/prodex-win32-x64": "0.140.0",
|
|
24
|
+
"@christiandoxa/prodex-win32-arm64": "0.140.0"
|
|
25
25
|
},
|
|
26
26
|
"engines": {
|
|
27
27
|
"node": ">=18"
|