@christiandoxa/prodex 0.2.107 → 0.2.108

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 +52 -65
  2. package/package.json +7 -7
package/README.md CHANGED
@@ -1,15 +1,25 @@
1
1
  # prodex
2
2
 
3
- Safe multi-account auto-rotate for `codex`.
3
+ [![CI](https://github.com/christiandoxa/prodex/actions/workflows/ci.yml/badge.svg)](https://github.com/christiandoxa/prodex/actions/workflows/ci.yml)
4
4
 
5
- `prodex` wraps `codex` with isolated profiles, built-in quota checks, and seamless account rotation.
5
+ One OpenAI profile pool for Codex CLI and Claude Code.
6
6
 
7
- ## Why prodex
7
+ `prodex` gives you two entry points backed by the same OpenAI account pool:
8
8
 
9
- - auto-rotate to another ready account when the current one is quota-blocked or temporarily unhealthy
10
- - keep each account isolated in its own `CODEX_HOME`
11
- - preserve continuation affinity so ongoing chains stay on the right account
12
- - keep transport behavior close to direct `codex`
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
+ ## Requirements
17
+
18
+ - An OpenAI account, plus at least one logged-in Prodex profile
19
+ - Codex CLI if you want to use `prodex`
20
+ - Claude Code (`claude`) if you want to use `prodex claude`
21
+
22
+ 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
23
 
14
24
  ## Install
15
25
 
@@ -19,8 +29,6 @@ Install from npm:
19
29
  npm install -g @christiandoxa/prodex
20
30
  ```
21
31
 
22
- This is usually the lightest option because it does not need a local Rust build.
23
-
24
32
  Or install from [crates.io](https://crates.io/crates/prodex):
25
33
 
26
34
  ```bash
@@ -29,120 +37,99 @@ cargo install prodex
29
37
 
30
38
  The npm package version is kept in lockstep with the published crate version.
31
39
 
32
- ## Update Tips
40
+ ## Update
33
41
 
34
- Check your installed version first:
42
+ Check your installed version:
35
43
 
36
44
  ```bash
37
45
  prodex --version
38
46
  ```
39
47
 
40
- The current local binary version in this repo is `0.2.107`, so matching update commands look like this:
48
+ The current local version in this repo is `0.2.108`:
41
49
 
42
50
  ```bash
43
- npm install -g @christiandoxa/prodex@0.2.107
44
- cargo install prodex --force --version 0.2.107
51
+ npm install -g @christiandoxa/prodex@0.2.108
52
+ cargo install prodex --force --version 0.2.108
45
53
  ```
46
54
 
47
- If you just want the lighter install path, prefer npm over `cargo install` because npm does not need to compile `prodex` locally.
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:
55
+ If you want to switch from a Cargo-installed binary to npm:
50
56
 
51
57
  ```bash
52
58
  cargo uninstall prodex
53
59
  npm install -g @christiandoxa/prodex
54
60
  ```
55
61
 
56
- ## Quick Start
62
+ ## Start
57
63
 
58
- Import your current `codex` login:
64
+ Import your current login:
59
65
 
60
66
  ```bash
61
67
  prodex profile import-current main
62
68
  ```
63
69
 
64
- Or create a profile through `codex login`:
70
+ Or create a profile through the normal Codex login flow:
65
71
 
66
72
  ```bash
67
73
  prodex login
68
- ```
69
-
70
- If you need device-code auth, pass it through unchanged:
71
-
72
- ```bash
73
74
  prodex login --device-auth
74
75
  ```
75
76
 
76
- Check quotas:
77
+ Check the pool:
77
78
 
78
79
  ```bash
80
+ prodex profile list
79
81
  prodex quota --all
80
82
  prodex info
81
83
  ```
82
84
 
83
- Run `codex` with safe auto-rotate:
84
-
85
- ```bash
86
- prodex
87
- prodex run
88
- ```
89
-
90
- Running `prodex` without a subcommand is shorthand for `prodex run`.
85
+ ## Use `prodex` for Codex CLI
91
86
 
92
- Resume a saved Codex session directly:
87
+ `prodex` without a subcommand is shorthand for `prodex run`.
93
88
 
94
89
  ```bash
90
+ prodex
91
+ prodex run --profile second
95
92
  prodex run 019c9e3d-45a0-7ad0-a6ee-b194ac2d44f9
93
+ printf 'context from stdin' | prodex run exec "summarize this"
96
94
  ```
97
95
 
98
- Pin a specific profile when needed:
96
+ 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.
97
+
98
+ ## Use `prodex claude` for Claude Code
99
99
 
100
100
  ```bash
101
- prodex run --profile second
101
+ prodex claude -- -p "summarize this repo"
102
+ prodex claude --profile second -- -p --output-format json "show the latest diff"
102
103
  ```
103
104
 
104
- `prodex run exec` also preserves stdin passthrough, so prompt and piped input stay together:
105
+ Use this path when you want Claude Code to be the front end while Prodex still routes requests through your OpenAI-backed profile pool.
105
106
 
106
- ```bash
107
- printf 'context from stdin' | prodex run exec "summarize this"
108
- ```
107
+ - `prodex claude` runs Claude Code through a local Anthropic-compatible proxy
108
+ - Claude Code state is isolated per profile in `CLAUDE_CONFIG_DIR`
109
+ - the default Claude custom model follows the shared Codex `config.toml` model when available
110
+ - use `PRODEX_CLAUDE_BIN` if `claude` is not on `PATH`
111
+ - use `PRODEX_CLAUDE_MODEL` to force a specific upstream Responses model
112
+ - use `PRODEX_CLAUDE_REASONING_EFFORT` to force the upstream reasoning tier
109
113
 
110
- Run Claude Code through the same profile pool:
114
+ Example:
111
115
 
112
116
  ```bash
113
- prodex claude -- -p "summarize this repo"
117
+ PRODEX_CLAUDE_MODEL=gpt-5.2 PRODEX_CLAUDE_REASONING_EFFORT=xhigh prodex claude -- -p "hello"
114
118
  ```
115
119
 
116
- ## Core Commands
120
+ ## Common Commands
117
121
 
118
122
  ```bash
119
- prodex
120
- prodex exec "review this repo"
121
123
  prodex profile list
122
124
  prodex use --profile main
123
- prodex info
125
+ prodex current
124
126
  prodex quota --all
125
127
  prodex quota --all --once
128
+ prodex info
126
129
  prodex doctor
127
130
  prodex doctor --runtime
128
- prodex run
129
- prodex run 019c9e3d-45a0-7ad0-a6ee-b194ac2d44f9
130
- prodex claude -- -p "summarize this repo"
131
131
  ```
132
132
 
133
- ## Notes
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
133
+ ## More
147
134
 
148
- For a slightly longer setup guide, see [QUICKSTART.md](https://github.com/christiandoxa/prodex/blob/main/QUICKSTART.md).
135
+ 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.107",
3
+ "version": "0.2.108",
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.107",
20
- "@christiandoxa/prodex-linux-arm64": "0.2.107",
21
- "@christiandoxa/prodex-darwin-x64": "0.2.107",
22
- "@christiandoxa/prodex-darwin-arm64": "0.2.107",
23
- "@christiandoxa/prodex-win32-x64": "0.2.107",
24
- "@christiandoxa/prodex-win32-arm64": "0.2.107"
19
+ "@christiandoxa/prodex-linux-x64": "0.2.108",
20
+ "@christiandoxa/prodex-linux-arm64": "0.2.108",
21
+ "@christiandoxa/prodex-darwin-x64": "0.2.108",
22
+ "@christiandoxa/prodex-darwin-arm64": "0.2.108",
23
+ "@christiandoxa/prodex-win32-x64": "0.2.108",
24
+ "@christiandoxa/prodex-win32-arm64": "0.2.108"
25
25
  },
26
26
  "engines": {
27
27
  "node": ">=18"