@christiandoxa/prodex 0.2.115 → 0.2.116
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 +68 -52
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -2,19 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://github.com/christiandoxa/prodex/actions/workflows/ci.yml)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
`prodex` manages multiple isolated Codex profiles and lets Codex CLI or Claude Code run on top of the same OpenAI account pool.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
It is built for a simple setup:
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
Managed profiles also share persisted Codex state such as prompt history and session resumes, so cross-profile CLI state stays aligned.
|
|
9
|
+
- each account gets its own profile
|
|
10
|
+
- quota is checked before launch
|
|
11
|
+
- fresh work can move to another ready profile
|
|
12
|
+
- existing continuations stay on the profile that already owns them
|
|
18
13
|
|
|
19
14
|
## Requirements
|
|
20
15
|
|
|
@@ -48,11 +43,11 @@ Check your installed version:
|
|
|
48
43
|
prodex --version
|
|
49
44
|
```
|
|
50
45
|
|
|
51
|
-
The current local version in this repo is `0.2.
|
|
46
|
+
The current local version in this repo is `0.2.116`:
|
|
52
47
|
|
|
53
48
|
```bash
|
|
54
|
-
npm install -g @christiandoxa/prodex@0.2.
|
|
55
|
-
cargo install prodex --force --version 0.2.
|
|
49
|
+
npm install -g @christiandoxa/prodex@0.2.116
|
|
50
|
+
cargo install prodex --force --version 0.2.116
|
|
56
51
|
```
|
|
57
52
|
|
|
58
53
|
If you want to switch from a Cargo-installed binary to npm:
|
|
@@ -62,95 +57,116 @@ cargo uninstall prodex
|
|
|
62
57
|
npm install -g @christiandoxa/prodex
|
|
63
58
|
```
|
|
64
59
|
|
|
65
|
-
##
|
|
60
|
+
## Quick Setup
|
|
66
61
|
|
|
67
|
-
|
|
62
|
+
If your shared Codex home already contains a login:
|
|
68
63
|
|
|
69
64
|
```bash
|
|
70
65
|
prodex profile import-current main
|
|
71
66
|
```
|
|
72
67
|
|
|
73
|
-
Or create a profile through the normal
|
|
68
|
+
Or create a profile through the normal login flow:
|
|
74
69
|
|
|
75
70
|
```bash
|
|
76
71
|
prodex login
|
|
77
72
|
prodex login --device-auth
|
|
78
73
|
```
|
|
79
74
|
|
|
75
|
+
If you want to name the profile first:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
prodex profile add second
|
|
79
|
+
prodex login --profile second
|
|
80
|
+
```
|
|
81
|
+
|
|
80
82
|
Check the pool:
|
|
81
83
|
|
|
82
84
|
```bash
|
|
83
85
|
prodex profile list
|
|
84
|
-
prodex profile export
|
|
85
86
|
prodex quota --all
|
|
86
87
|
prodex info
|
|
87
88
|
```
|
|
88
89
|
|
|
89
|
-
|
|
90
|
+
Run Codex CLI or Claude Code through Prodex:
|
|
90
91
|
|
|
91
92
|
```bash
|
|
92
|
-
prodex
|
|
93
|
-
prodex
|
|
94
|
-
prodex
|
|
93
|
+
prodex
|
|
94
|
+
prodex exec "review this repo"
|
|
95
|
+
prodex claude -- -p "summarize this repo"
|
|
95
96
|
```
|
|
96
97
|
|
|
97
|
-
`prodex
|
|
98
|
+
`prodex` without a subcommand is shorthand for `prodex run`.
|
|
98
99
|
|
|
99
|
-
##
|
|
100
|
+
## Important Commands
|
|
100
101
|
|
|
101
|
-
|
|
102
|
+
### Profile And Login
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
prodex profile list
|
|
106
|
+
prodex profile add second
|
|
107
|
+
prodex profile import-current main
|
|
108
|
+
prodex login
|
|
109
|
+
prodex login --profile second
|
|
110
|
+
prodex login --device-auth
|
|
111
|
+
prodex use --profile main
|
|
112
|
+
prodex current
|
|
113
|
+
prodex logout --profile main
|
|
114
|
+
prodex profile remove second
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Run With Codex CLI
|
|
102
118
|
|
|
103
119
|
```bash
|
|
104
120
|
prodex
|
|
105
|
-
prodex run
|
|
121
|
+
prodex run
|
|
122
|
+
prodex run --profile main
|
|
123
|
+
prodex exec "review this repo"
|
|
106
124
|
prodex run 019c9e3d-45a0-7ad0-a6ee-b194ac2d44f9
|
|
107
125
|
printf 'context from stdin' | prodex run exec "summarize this"
|
|
108
126
|
```
|
|
109
127
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
## Use `prodex claude` for Claude Code
|
|
128
|
+
### Run With Claude Code
|
|
113
129
|
|
|
114
130
|
```bash
|
|
115
131
|
prodex claude -- -p "summarize this repo"
|
|
116
132
|
prodex claude --profile second -- -p --output-format json "show the latest diff"
|
|
117
133
|
```
|
|
118
134
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
- `prodex claude` runs Claude Code through a local Anthropic-compatible proxy
|
|
122
|
-
- Claude Code state is isolated per profile in `CLAUDE_CONFIG_DIR`
|
|
123
|
-
- the initial Claude model follows the shared Codex `config.toml` model when available
|
|
124
|
-
- Claude's native `opus`, `sonnet`, and `haiku` picker entries are pinned to representative GPT models
|
|
125
|
-
- Prodex also seeds Claude's picker with the full Prodex GPT catalog
|
|
126
|
-
- Claude `max` effort maps to OpenAI `xhigh` when the selected GPT model supports it
|
|
127
|
-
- alias-backed GPT entries reuse Claude's native alias picker values so the picker and confirmation text stay aligned
|
|
128
|
-
- additional GPT entries stay on GPT model ids so the selected model banner keeps GPT naming while Claude can still expose effort controls
|
|
129
|
-
- use `PRODEX_CLAUDE_BIN` if `claude` is not on `PATH`
|
|
130
|
-
- use `PRODEX_CLAUDE_MODEL` to force a specific upstream Responses model
|
|
131
|
-
- use `PRODEX_CLAUDE_REASONING_EFFORT` to force the upstream reasoning tier
|
|
132
|
-
|
|
133
|
-
Example:
|
|
135
|
+
### Export And Import Profiles
|
|
134
136
|
|
|
135
137
|
```bash
|
|
136
|
-
|
|
138
|
+
prodex profile export
|
|
139
|
+
prodex profile export backup.json
|
|
140
|
+
prodex profile export --profile main --profile second backup.json
|
|
141
|
+
prodex profile import backup.json
|
|
137
142
|
```
|
|
138
143
|
|
|
139
|
-
|
|
144
|
+
`prodex profile export` includes each exported profile's `auth.json`. By default it exports every configured profile and asks whether the bundle should be password-protected.
|
|
145
|
+
|
|
146
|
+
### Quota, Status, And Debugging
|
|
140
147
|
|
|
141
148
|
```bash
|
|
142
|
-
prodex profile list
|
|
143
|
-
prodex profile export
|
|
144
|
-
prodex profile import backup.json
|
|
145
|
-
prodex use --profile main
|
|
146
|
-
prodex current
|
|
147
149
|
prodex quota --all
|
|
148
150
|
prodex quota --all --once
|
|
151
|
+
prodex quota --profile main --detail
|
|
149
152
|
prodex info
|
|
150
153
|
prodex doctor
|
|
154
|
+
prodex doctor --quota
|
|
155
|
+
prodex doctor --runtime
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
If a runtime session looks stalled, inspect the latest runtime log:
|
|
159
|
+
|
|
160
|
+
```bash
|
|
151
161
|
prodex doctor --runtime
|
|
162
|
+
tail -n 200 "$(cat /tmp/prodex-runtime-latest.path)"
|
|
152
163
|
```
|
|
153
164
|
|
|
165
|
+
## Notes
|
|
166
|
+
|
|
167
|
+
- Managed profiles share persisted Codex state through Prodex-owned shared storage.
|
|
168
|
+
- `prodex quota --all` refreshes live by default. Use `--once` for a one-shot snapshot.
|
|
169
|
+
|
|
154
170
|
## More
|
|
155
171
|
|
|
156
|
-
For a
|
|
172
|
+
For a longer walkthrough, see [QUICKSTART.md](./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.116",
|
|
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.116",
|
|
20
|
+
"@christiandoxa/prodex-linux-arm64": "0.2.116",
|
|
21
|
+
"@christiandoxa/prodex-darwin-x64": "0.2.116",
|
|
22
|
+
"@christiandoxa/prodex-darwin-arm64": "0.2.116",
|
|
23
|
+
"@christiandoxa/prodex-win32-x64": "0.2.116",
|
|
24
|
+
"@christiandoxa/prodex-win32-arm64": "0.2.116"
|
|
25
25
|
},
|
|
26
26
|
"engines": {
|
|
27
27
|
"node": ">=18"
|