@christiandoxa/prodex 0.2.106 → 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 -54
  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,109 +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.105`, 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.105
44
- cargo install prodex --force --version 0.2.105
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:
85
+ ## Use `prodex` for Codex CLI
86
+
87
+ `prodex` without a subcommand is shorthand for `prodex run`.
84
88
 
85
89
  ```bash
86
90
  prodex
87
- prodex run
91
+ prodex run --profile second
92
+ prodex run 019c9e3d-45a0-7ad0-a6ee-b194ac2d44f9
93
+ printf 'context from stdin' | prodex run exec "summarize this"
88
94
  ```
89
95
 
90
- Running `prodex` without a subcommand is shorthand for `prodex run`.
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.
91
97
 
92
- Resume a saved Codex session directly:
98
+ ## Use `prodex claude` for Claude Code
93
99
 
94
100
  ```bash
95
- prodex run 019c9e3d-45a0-7ad0-a6ee-b194ac2d44f9
101
+ prodex claude -- -p "summarize this repo"
102
+ prodex claude --profile second -- -p --output-format json "show the latest diff"
96
103
  ```
97
104
 
98
- Pin a specific profile when needed:
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.
99
106
 
100
- ```bash
101
- prodex run --profile second
102
- ```
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
103
113
 
104
- `prodex run exec` also preserves stdin passthrough, so prompt and piped input stay together:
114
+ Example:
105
115
 
106
116
  ```bash
107
- printf 'context from stdin' | prodex run exec "summarize this"
117
+ PRODEX_CLAUDE_MODEL=gpt-5.2 PRODEX_CLAUDE_REASONING_EFFORT=xhigh prodex claude -- -p "hello"
108
118
  ```
109
119
 
110
- ## Core Commands
120
+ ## Common Commands
111
121
 
112
122
  ```bash
113
- prodex
114
- prodex exec "review this repo"
115
123
  prodex profile list
116
124
  prodex use --profile main
117
- prodex info
125
+ prodex current
118
126
  prodex quota --all
119
127
  prodex quota --all --once
128
+ prodex info
120
129
  prodex doctor
121
130
  prodex doctor --runtime
122
- prodex run
123
- prodex run 019c9e3d-45a0-7ad0-a6ee-b194ac2d44f9
124
131
  ```
125
132
 
126
- ## Notes
127
-
128
- - one `prodex` profile = one isolated `CODEX_HOME`
129
- - `prodex login` still uses the real `codex login` flow, including `--device-auth`
130
- - `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
131
- - `prodex` without a subcommand behaves like `prodex run`
132
- - `prodex run <session-id>` forwards to `codex resume <session-id>`
133
- - `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
134
- - `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
135
- - Prodex-owned screens adapt to terminal width, and live views can also adapt to terminal height
133
+ ## More
136
134
 
137
- For a slightly longer setup guide, see [QUICKSTART.md](./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.106",
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.106",
20
- "@christiandoxa/prodex-linux-arm64": "0.2.106",
21
- "@christiandoxa/prodex-darwin-x64": "0.2.106",
22
- "@christiandoxa/prodex-darwin-arm64": "0.2.106",
23
- "@christiandoxa/prodex-win32-x64": "0.2.106",
24
- "@christiandoxa/prodex-win32-arm64": "0.2.106"
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"