@christiandoxa/prodex 0.137.0 → 0.139.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 +72 -10
  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` | No | Runs through Prodex's local Responses-to-Anthropic adapter. |
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` | No | API-key-only provider; no OAuth login profile in Prodex. |
63
+ | Local OpenAI-compatible | `prodex super --url http://127.0.0.1:8131` | Local server auth/config | No | Injects a temporary local provider and skips quota preflight. |
64
+ | Bedrock / custom Codex `model_provider` | `prodex run` / `prodex caveman` direct pass-through | Codex-owned config | No | Prodex does not proxy or quota-check these profiles. |
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 and imported Copilot profiles have provider-specific quota views. Anthropic, DeepSeek, API-key Gemini, API-key Copilot, local URLs, and Bedrock/custom Codex providers skip Prodex 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:
@@ -365,9 +391,10 @@ prodex login
365
391
  prodex profile add second
366
392
  prodex login --profile second
367
393
  prodex login --with-google
394
+ prodex login --with-claude
368
395
  ```
369
396
 
370
- Interactive `prodex login` now asks for the login method before starting a browser. Choose ChatGPT browser login, device-code login, API-key login, or Google sign-in for Gemini. For API-key profiles, you can also set an OpenAI-compatible backend URL:
397
+ Interactive `prodex login` now asks for the login method before starting a browser. Choose ChatGPT browser login, device-code login, API-key login, Google sign-in for Gemini, or Claude sign-in through Claude Code OAuth. For API-key profiles, you can also set an OpenAI-compatible backend URL:
371
398
 
372
399
  ```bash
373
400
  printf '%s\n' "$OPENAI_API_KEY" | prodex login --with-api-key --base-url http://localhost:11434/v1
@@ -401,6 +428,18 @@ prodex exec "review this repo"
401
428
 
402
429
  </details>
403
430
 
431
+ <details>
432
+ <summary>Import a Claude Code account</summary>
433
+
434
+ ```bash
435
+ prodex profile import claude
436
+ prodex profile import claude --name claude-main --activate
437
+ ```
438
+
439
+ This imports the current Claude Code OAuth credentials from `CLAUDE_CONFIG_DIR` or `~/.claude` into a Prodex-managed Anthropic profile. You can also use `prodex login --with-claude` to sign in through Claude Code directly.
440
+
441
+ </details>
442
+
404
443
  <details>
405
444
  <summary>Import a Copilot CLI account</summary>
406
445
 
@@ -415,7 +454,7 @@ When you import a Copilot profile, Prodex does not move the Copilot token into P
415
454
 
416
455
  ## Daily command: `prodex s`
417
456
 
418
- <details open>
457
+ <details>
419
458
  <summary>Super mode overview</summary>
420
459
 
421
460
  For daily work, I use:
@@ -475,7 +514,7 @@ Managed optimizer checkouts are discovered from `PRODEX_OPTIMIZERS_HOME`, `$XDG_
475
514
 
476
515
  ## Commands
477
516
 
478
- <details open>
517
+ <details>
479
518
  <summary>Most used commands</summary>
480
519
 
481
520
  ```bash
@@ -522,9 +561,10 @@ prodex super --dry-run
522
561
  prodex quota --all
523
562
  prodex quota --all --once
524
563
  prodex quota --all --auth no-auth --once
564
+ prodex quota --all --detail --provider openai
525
565
  ```
526
566
 
527
- 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`.
567
+ 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`, and `copilot`. Add `--provider openai`, `--provider gemini`, `--provider anthropic`, or `--provider copilot` to start locked to a single provider.
528
568
 
529
569
  </details>
530
570
 
@@ -630,6 +670,9 @@ RTK is still an external binary. Install it separately if `rtk gain` is unavaila
630
670
  ```bash
631
671
  prodex s
632
672
  prodex s exec "review this repo"
673
+ ANTHROPIC_API_KEY=... prodex s --provider anthropic --model claude-sonnet-4-6
674
+ prodex profile import copilot
675
+ prodex s --provider copilot --model gpt-5.1-codex
633
676
  DEEPSEEK_API_KEY=... prodex s --provider deepseek --model deepseek-v4-pro
634
677
  prodex s --provider gemini
635
678
  prodex super
@@ -658,13 +701,32 @@ prodex super --mem-full
658
701
 
659
702
  Super also enables Smart Context Autopilot in the runtime proxy.
660
703
 
704
+ Use `--provider anthropic` when you want the Codex/Super front end with Anthropic upstream:
705
+
706
+ ```bash
707
+ prodex login --with-claude
708
+ prodex s --provider anthropic --model claude-sonnet-4-6
709
+ prodex s --provider anthropic --model claude-sonnet-4-6 --api-key "$ANTHROPIC_API_KEY"
710
+ ```
711
+
712
+ 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.
713
+
714
+ Use `--provider copilot` when you want the Codex/Super front end with GitHub Copilot upstream:
715
+
716
+ ```bash
717
+ prodex profile import copilot
718
+ prodex s --provider copilot --model gpt-5.1-codex
719
+ ```
720
+
721
+ Without `--api-key`, Prodex uses imported Copilot CLI profiles, refreshes Copilot runtime API tokens from GitHub before launch, rotates fresh native Responses requests across eligible profiles, and binds streaming response IDs back to the owning profile for continuations. `GITHUB_COPILOT_API_KEY` or `--api-key` can be used when you already have a Copilot runtime API token.
722
+
661
723
  Use `--provider deepseek` when you want the Codex/Super front end with DeepSeek as the upstream model:
662
724
 
663
725
  ```bash
664
726
  prodex s --provider deepseek --model deepseek-v4-pro --api-key "$DEEPSEEK_API_KEY"
665
727
  ```
666
728
 
667
- If `--api-key` is omitted, Prodex reads `DEEPSEEK_API_KEY`. 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/account rotation 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.
729
+ 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.
668
730
 
669
731
  Use `--provider gemini` when you want the Codex/Super front end with Gemini upstream:
670
732
 
@@ -715,7 +777,7 @@ prodex claude --profile second -- -p --output-format json "show the latest diff"
715
777
 
716
778
  ## Profiles
717
779
 
718
- <details open>
780
+ <details>
719
781
  <summary>Common profile commands</summary>
720
782
 
721
783
  ```bash
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@christiandoxa/prodex",
3
- "version": "0.137.0",
3
+ "version": "0.139.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.137.0",
20
- "@christiandoxa/prodex-linux-arm64": "0.137.0",
21
- "@christiandoxa/prodex-darwin-x64": "0.137.0",
22
- "@christiandoxa/prodex-darwin-arm64": "0.137.0",
23
- "@christiandoxa/prodex-win32-x64": "0.137.0",
24
- "@christiandoxa/prodex-win32-arm64": "0.137.0"
19
+ "@christiandoxa/prodex-linux-x64": "0.139.0",
20
+ "@christiandoxa/prodex-linux-arm64": "0.139.0",
21
+ "@christiandoxa/prodex-darwin-x64": "0.139.0",
22
+ "@christiandoxa/prodex-darwin-arm64": "0.139.0",
23
+ "@christiandoxa/prodex-win32-x64": "0.139.0",
24
+ "@christiandoxa/prodex-win32-arm64": "0.139.0"
25
25
  },
26
26
  "engines": {
27
27
  "node": ">=18"