@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.
- package/README.md +72 -10
- 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` | 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
|
|
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:
|
|
@@ -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,
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
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.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"
|