@christiandoxa/prodex 0.2.107 → 0.2.109
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 +57 -65
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -1,15 +1,27 @@
|
|
|
1
1
|
# prodex
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://github.com/christiandoxa/prodex/actions/workflows/ci.yml)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
One OpenAI profile pool for Codex CLI and Claude Code.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
`prodex` gives you two entry points backed by the same OpenAI account pool:
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
| Use case | Command |
|
|
10
|
+
| --- | --- |
|
|
11
|
+
| Run Codex CLI through Prodex | `prodex` or `prodex run` |
|
|
12
|
+
| Run Claude Code through Prodex | `prodex claude` |
|
|
13
|
+
|
|
14
|
+
It keeps each profile isolated, checks quota before launch, and rotates to another ready account before a request or stream is committed.
|
|
15
|
+
|
|
16
|
+
Use `prodex` when Codex CLI is your front end. Use `prodex claude` when Claude Code is your front end. The account pool, profile isolation, quota checks, and continuation routing stay in Prodex either way.
|
|
17
|
+
|
|
18
|
+
## Requirements
|
|
19
|
+
|
|
20
|
+
- An OpenAI account, plus at least one logged-in Prodex profile
|
|
21
|
+
- Codex CLI if you want to use `prodex`
|
|
22
|
+
- Claude Code (`claude`) if you want to use `prodex claude`
|
|
23
|
+
|
|
24
|
+
If you install `@christiandoxa/prodex` from npm, the Codex runtime dependency is installed for you. Claude Code is still a separate CLI and should already be available on your `PATH` when you use `prodex claude`.
|
|
13
25
|
|
|
14
26
|
## Install
|
|
15
27
|
|
|
@@ -19,8 +31,6 @@ Install from npm:
|
|
|
19
31
|
npm install -g @christiandoxa/prodex
|
|
20
32
|
```
|
|
21
33
|
|
|
22
|
-
This is usually the lightest option because it does not need a local Rust build.
|
|
23
|
-
|
|
24
34
|
Or install from [crates.io](https://crates.io/crates/prodex):
|
|
25
35
|
|
|
26
36
|
```bash
|
|
@@ -29,120 +39,102 @@ cargo install prodex
|
|
|
29
39
|
|
|
30
40
|
The npm package version is kept in lockstep with the published crate version.
|
|
31
41
|
|
|
32
|
-
## Update
|
|
42
|
+
## Update
|
|
33
43
|
|
|
34
|
-
Check your installed version
|
|
44
|
+
Check your installed version:
|
|
35
45
|
|
|
36
46
|
```bash
|
|
37
47
|
prodex --version
|
|
38
48
|
```
|
|
39
49
|
|
|
40
|
-
The current local
|
|
50
|
+
The current local version in this repo is `0.2.109`:
|
|
41
51
|
|
|
42
52
|
```bash
|
|
43
|
-
npm install -g @christiandoxa/prodex@0.2.
|
|
44
|
-
cargo install prodex --force --version 0.2.
|
|
53
|
+
npm install -g @christiandoxa/prodex@0.2.109
|
|
54
|
+
cargo install prodex --force --version 0.2.109
|
|
45
55
|
```
|
|
46
56
|
|
|
47
|
-
If you
|
|
48
|
-
|
|
49
|
-
If you want to move from a Cargo-installed binary to npm, uninstall the Cargo binary first and then install the npm package:
|
|
57
|
+
If you want to switch from a Cargo-installed binary to npm:
|
|
50
58
|
|
|
51
59
|
```bash
|
|
52
60
|
cargo uninstall prodex
|
|
53
61
|
npm install -g @christiandoxa/prodex
|
|
54
62
|
```
|
|
55
63
|
|
|
56
|
-
##
|
|
64
|
+
## Start
|
|
57
65
|
|
|
58
|
-
Import your current
|
|
66
|
+
Import your current login:
|
|
59
67
|
|
|
60
68
|
```bash
|
|
61
69
|
prodex profile import-current main
|
|
62
70
|
```
|
|
63
71
|
|
|
64
|
-
Or create a profile through
|
|
72
|
+
Or create a profile through the normal Codex login flow:
|
|
65
73
|
|
|
66
74
|
```bash
|
|
67
75
|
prodex login
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
If you need device-code auth, pass it through unchanged:
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
76
|
prodex login --device-auth
|
|
74
77
|
```
|
|
75
78
|
|
|
76
|
-
Check
|
|
79
|
+
Check the pool:
|
|
77
80
|
|
|
78
81
|
```bash
|
|
82
|
+
prodex profile list
|
|
79
83
|
prodex quota --all
|
|
80
84
|
prodex info
|
|
81
85
|
```
|
|
82
86
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
```bash
|
|
86
|
-
prodex
|
|
87
|
-
prodex run
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
Running `prodex` without a subcommand is shorthand for `prodex run`.
|
|
87
|
+
## Use `prodex` for Codex CLI
|
|
91
88
|
|
|
92
|
-
|
|
89
|
+
`prodex` without a subcommand is shorthand for `prodex run`.
|
|
93
90
|
|
|
94
91
|
```bash
|
|
92
|
+
prodex
|
|
93
|
+
prodex run --profile second
|
|
95
94
|
prodex run 019c9e3d-45a0-7ad0-a6ee-b194ac2d44f9
|
|
95
|
+
printf 'context from stdin' | prodex run exec "summarize this"
|
|
96
96
|
```
|
|
97
97
|
|
|
98
|
-
|
|
98
|
+
Use this path when you want Codex CLI itself to be the front end. Prodex handles profile selection, quota preflight, continuation affinity, and safe pre-commit rotation across your OpenAI-backed profiles.
|
|
99
|
+
|
|
100
|
+
## Use `prodex claude` for Claude Code
|
|
99
101
|
|
|
100
102
|
```bash
|
|
101
|
-
prodex
|
|
103
|
+
prodex claude -- -p "summarize this repo"
|
|
104
|
+
prodex claude --profile second -- -p --output-format json "show the latest diff"
|
|
102
105
|
```
|
|
103
106
|
|
|
104
|
-
|
|
107
|
+
Use this path when you want Claude Code to be the front end while Prodex still routes requests through the same OpenAI-backed profile pool.
|
|
105
108
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
+
- `prodex claude` runs Claude Code through a local Anthropic-compatible proxy
|
|
110
|
+
- Claude Code state is isolated per profile in `CLAUDE_CONFIG_DIR`
|
|
111
|
+
- the initial Claude model follows the shared Codex `config.toml` model when available
|
|
112
|
+
- Claude's `opus`, `sonnet`, and `haiku` picker entries are pinned to representative GPT models
|
|
113
|
+
- Claude `max` effort maps to OpenAI `xhigh` when the selected GPT model supports it
|
|
114
|
+
- Claude Code itself only exposes built-in aliases plus one custom model option on third-party providers
|
|
115
|
+
- use `PRODEX_CLAUDE_BIN` if `claude` is not on `PATH`
|
|
116
|
+
- use `PRODEX_CLAUDE_MODEL` to force a specific upstream Responses model
|
|
117
|
+
- use `PRODEX_CLAUDE_REASONING_EFFORT` to force the upstream reasoning tier
|
|
109
118
|
|
|
110
|
-
|
|
119
|
+
Example:
|
|
111
120
|
|
|
112
121
|
```bash
|
|
113
|
-
prodex claude -- -p "
|
|
122
|
+
PRODEX_CLAUDE_MODEL=gpt-5.2 PRODEX_CLAUDE_REASONING_EFFORT=xhigh prodex claude -- -p "hello"
|
|
114
123
|
```
|
|
115
124
|
|
|
116
|
-
##
|
|
125
|
+
## Common Commands
|
|
117
126
|
|
|
118
127
|
```bash
|
|
119
|
-
prodex
|
|
120
|
-
prodex exec "review this repo"
|
|
121
128
|
prodex profile list
|
|
122
129
|
prodex use --profile main
|
|
123
|
-
prodex
|
|
130
|
+
prodex current
|
|
124
131
|
prodex quota --all
|
|
125
132
|
prodex quota --all --once
|
|
133
|
+
prodex info
|
|
126
134
|
prodex doctor
|
|
127
135
|
prodex doctor --runtime
|
|
128
|
-
prodex run
|
|
129
|
-
prodex run 019c9e3d-45a0-7ad0-a6ee-b194ac2d44f9
|
|
130
|
-
prodex claude -- -p "summarize this repo"
|
|
131
136
|
```
|
|
132
137
|
|
|
133
|
-
##
|
|
134
|
-
|
|
135
|
-
- one `prodex` profile = one isolated `CODEX_HOME`
|
|
136
|
-
- `prodex login` still uses the real `codex login` flow, including `--device-auth`
|
|
137
|
-
- `prodex login` without `--profile` first tries to read the ChatGPT account email from `tokens.id_token` in `auth.json`, then falls back to the usage endpoint email when needed
|
|
138
|
-
- `prodex` without a subcommand behaves like `prodex run`
|
|
139
|
-
- `prodex run <session-id>` forwards to `codex resume <session-id>`
|
|
140
|
-
- `prodex info` summarizes profile count, the installed prodex version and update status, running Prodex processes, aggregated quota pool, and a no-reset runway estimate from active runtime logs
|
|
141
|
-
- `prodex quota` live-refreshes every 5 seconds by default, and `prodex quota --all` also shows aggregated `5h` and `weekly` pool remaining before the per-profile table
|
|
142
|
-
- Prodex-owned screens adapt to terminal width, and live views can also adapt to terminal height
|
|
143
|
-
- `prodex claude` injects a local Anthropic-compatible proxy for Claude Code and still uses Prodex profile selection and runtime rotation
|
|
144
|
-
- `prodex claude` also keeps Claude Code state in an isolated per-profile `CLAUDE_CONFIG_DIR`, so theme/login onboarding does not reappear every launch and the current workspace can open directly in chat mode
|
|
145
|
-
- use `PRODEX_CLAUDE_BIN` if `claude` is not on `PATH`
|
|
146
|
-
- use `PRODEX_CLAUDE_MODEL` to override the upstream Responses model used for Anthropic-compatible requests
|
|
138
|
+
## More
|
|
147
139
|
|
|
148
|
-
For a slightly longer
|
|
140
|
+
For a slightly longer walkthrough, see [QUICKSTART.md](https://github.com/christiandoxa/prodex/blob/main/QUICKSTART.md).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@christiandoxa/prodex",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.109",
|
|
4
4
|
"description": "Safe multi-account auto-rotate for Codex CLI with isolated CODEX_HOME profiles",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"bin": {
|
|
@@ -16,12 +16,12 @@
|
|
|
16
16
|
"@openai/codex": "^0.118.0"
|
|
17
17
|
},
|
|
18
18
|
"optionalDependencies": {
|
|
19
|
-
"@christiandoxa/prodex-linux-x64": "0.2.
|
|
20
|
-
"@christiandoxa/prodex-linux-arm64": "0.2.
|
|
21
|
-
"@christiandoxa/prodex-darwin-x64": "0.2.
|
|
22
|
-
"@christiandoxa/prodex-darwin-arm64": "0.2.
|
|
23
|
-
"@christiandoxa/prodex-win32-x64": "0.2.
|
|
24
|
-
"@christiandoxa/prodex-win32-arm64": "0.2.
|
|
19
|
+
"@christiandoxa/prodex-linux-x64": "0.2.109",
|
|
20
|
+
"@christiandoxa/prodex-linux-arm64": "0.2.109",
|
|
21
|
+
"@christiandoxa/prodex-darwin-x64": "0.2.109",
|
|
22
|
+
"@christiandoxa/prodex-darwin-arm64": "0.2.109",
|
|
23
|
+
"@christiandoxa/prodex-win32-x64": "0.2.109",
|
|
24
|
+
"@christiandoxa/prodex-win32-arm64": "0.2.109"
|
|
25
25
|
},
|
|
26
26
|
"engines": {
|
|
27
27
|
"node": ">=18"
|