@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.
Files changed (2) hide show
  1. package/README.md +47 -12
  2. 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. When the active account runs out of quota, `prodex` can route the next work to another available account.
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 open>
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 open>
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 open>
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 open>
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 open>
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 and imported Copilot accounts through their provider quota APIs.
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` is not available for those profiles.
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.138.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.138.0",
20
- "@christiandoxa/prodex-linux-arm64": "0.138.0",
21
- "@christiandoxa/prodex-darwin-x64": "0.138.0",
22
- "@christiandoxa/prodex-darwin-arm64": "0.138.0",
23
- "@christiandoxa/prodex-win32-x64": "0.138.0",
24
- "@christiandoxa/prodex-win32-arm64": "0.138.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"