@christiandoxa/prodex 0.98.0 → 0.100.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 +489 -79
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -1,39 +1,56 @@
|
|
|
1
1
|
# prodex
|
|
2
2
|
|
|
3
|
-
`prodex` is a
|
|
3
|
+
`prodex` is a multi-account Codex wrapper with auto-rotation.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Use multiple Codex accounts from one command line. When the active account runs out of quota, `prodex` can route the next work to another available account.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## Contents
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
- [Why prodex](#why-prodex)
|
|
10
|
+
- [Requirements](#requirements)
|
|
11
|
+
- [Installation](#installation)
|
|
12
|
+
- [Optional tools](#optional-tools)
|
|
13
|
+
- [Quick start](#quick-start)
|
|
14
|
+
- [Daily command: `prodex s`](#daily-command-prodex-s)
|
|
15
|
+
- [Commands](#commands)
|
|
16
|
+
- [Modes](#modes)
|
|
17
|
+
- [Profiles](#profiles)
|
|
18
|
+
- [Local model support](#local-model-support)
|
|
19
|
+
- [Utilities and diagnostics](#utilities-and-diagnostics)
|
|
20
|
+
- [Advanced behavior](#advanced-behavior)
|
|
21
|
+
- [Documentation](#documentation)
|
|
22
|
+
- [Support](#support)
|
|
23
|
+
|
|
24
|
+
## Why prodex
|
|
10
25
|
|
|
11
26
|
Use `prodex` if you want to:
|
|
12
27
|
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
- keep
|
|
16
|
-
- keep sessions
|
|
28
|
+
- use multiple Codex accounts from one CLI
|
|
29
|
+
- rotate to another account when quota runs out
|
|
30
|
+
- keep profile credentials separated
|
|
31
|
+
- keep sessions attached to the profile that created them
|
|
32
|
+
- run Codex, Caveman mode, Super mode, and Claude Code through the same wrapper
|
|
17
33
|
|
|
18
|
-
If you only use one account and do not need
|
|
34
|
+
If you only use one Codex account and do not need quota rotation, you probably do not need `prodex`.
|
|
19
35
|
|
|
20
36
|
## Requirements
|
|
21
37
|
|
|
22
38
|
You need at least one logged-in Prodex profile.
|
|
23
39
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
40
|
+
| Tool | Used by |
|
|
41
|
+
|---|---|
|
|
42
|
+
| Codex CLI | `prodex`, `prodex run`, `prodex caveman`, `prodex super` |
|
|
43
|
+
| Claude Code | `prodex claude` |
|
|
44
|
+
| Claude-Mem | `mem` variants |
|
|
45
|
+
| RTK | `rtk` variants and `prodex s` / `prodex super` |
|
|
29
46
|
|
|
30
|
-
##
|
|
47
|
+
## Installation
|
|
31
48
|
|
|
32
49
|
### npm
|
|
33
50
|
|
|
34
51
|
```bash
|
|
35
52
|
npm install -g @christiandoxa/prodex
|
|
36
|
-
|
|
53
|
+
```
|
|
37
54
|
|
|
38
55
|
### Source checkout
|
|
39
56
|
|
|
@@ -43,15 +60,127 @@ cargo install --path .
|
|
|
43
60
|
|
|
44
61
|
If you install from source, make sure the `codex` binary in your `PATH` is already installed and up to date.
|
|
45
62
|
|
|
63
|
+
## Optional tools
|
|
64
|
+
|
|
65
|
+
`prodex` can run without Claude-Mem or RTK.
|
|
66
|
+
|
|
67
|
+
Install them only if you want to use commands such as:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
prodex caveman mem
|
|
71
|
+
prodex caveman mem rtk
|
|
72
|
+
prodex s
|
|
73
|
+
prodex super
|
|
74
|
+
prodex claude mem
|
|
75
|
+
prodex claude caveman mem
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
<details>
|
|
79
|
+
<summary>Install Claude-Mem</summary>
|
|
80
|
+
|
|
81
|
+
Claude-Mem is used by the `mem` variants.
|
|
82
|
+
|
|
83
|
+
Recommended install:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
npx claude-mem install
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Then follow the interactive prompts.
|
|
90
|
+
|
|
91
|
+
You can also install it from inside Claude Code:
|
|
92
|
+
|
|
93
|
+
```text
|
|
94
|
+
/plugin marketplace add thedotmack/claude-mem
|
|
95
|
+
/plugin install claude-mem
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
After installation, restart Claude Code or your coding CLI.
|
|
99
|
+
|
|
100
|
+
> Do not use `npm install -g claude-mem` as the main install method. That installs the SDK/library only; it does not register the plugin hooks or start the worker service.
|
|
101
|
+
|
|
102
|
+
</details>
|
|
103
|
+
|
|
104
|
+
<details>
|
|
105
|
+
<summary>Install RTK</summary>
|
|
106
|
+
|
|
107
|
+
RTK is used by the `rtk` variants and by my daily `prodex s` / `prodex super` workflow.
|
|
108
|
+
|
|
109
|
+
### Homebrew
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
brew install rtk
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Linux/macOS quick install
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
If it installs to `~/.local/bin`, make sure that directory is in your `PATH`:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
For Zsh:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Cargo
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
cargo install --git https://github.com/rtk-ai/rtk
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Verify RTK
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
rtk --version
|
|
143
|
+
rtk gain
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
If `rtk --version` works but `rtk gain` fails, you may have installed a different package named `rtk`.
|
|
147
|
+
|
|
148
|
+
Remove it and reinstall from the Git URL:
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
cargo uninstall rtk
|
|
152
|
+
cargo install --git https://github.com/rtk-ai/rtk
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Initialize RTK
|
|
156
|
+
|
|
157
|
+
For Codex:
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
rtk init -g --codex
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
For Claude Code:
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
rtk init -g
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Then restart your coding tool.
|
|
170
|
+
|
|
171
|
+
</details>
|
|
172
|
+
|
|
46
173
|
## Quick start
|
|
47
174
|
|
|
175
|
+
### Import your current Codex login
|
|
176
|
+
|
|
48
177
|
If your current Codex home is already logged in:
|
|
49
178
|
|
|
50
179
|
```bash
|
|
51
180
|
prodex profile import-current main
|
|
52
181
|
```
|
|
53
182
|
|
|
54
|
-
Or
|
|
183
|
+
### Or create profiles from scratch
|
|
55
184
|
|
|
56
185
|
```bash
|
|
57
186
|
prodex login
|
|
@@ -59,61 +188,199 @@ prodex profile add second
|
|
|
59
188
|
prodex login --profile second
|
|
60
189
|
```
|
|
61
190
|
|
|
62
|
-
|
|
191
|
+
### Check profiles and quota
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
prodex profile list
|
|
195
|
+
prodex quota --all
|
|
196
|
+
prodex session list
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Start Codex through Prodex
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
prodex
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
Or run a one-off prompt:
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
prodex exec "review this repo"
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
<details>
|
|
212
|
+
<summary>Import a Copilot CLI account</summary>
|
|
63
213
|
|
|
64
214
|
```bash
|
|
65
215
|
prodex profile import copilot
|
|
66
216
|
prodex profile import copilot --name copilot-main --activate
|
|
67
217
|
```
|
|
68
218
|
|
|
69
|
-
|
|
219
|
+
When you import a Copilot profile, Prodex does not move the Copilot token into Prodex-managed storage. It only records the provider identity and API endpoint in its own metadata.
|
|
220
|
+
|
|
221
|
+
</details>
|
|
222
|
+
|
|
223
|
+
## Daily command: `prodex s`
|
|
224
|
+
|
|
225
|
+
For daily work, I use:
|
|
70
226
|
|
|
71
227
|
```bash
|
|
72
|
-
prodex
|
|
73
|
-
prodex quota --all
|
|
74
|
-
prodex quota --all --auth no-auth --once
|
|
75
|
-
prodex session list
|
|
228
|
+
prodex s
|
|
76
229
|
```
|
|
77
230
|
|
|
78
|
-
|
|
231
|
+
`prodex s` is an alias for:
|
|
79
232
|
|
|
80
233
|
```bash
|
|
81
|
-
prodex
|
|
82
|
-
prodex caveman
|
|
83
|
-
prodex caveman mem
|
|
84
|
-
prodex caveman mem rtk
|
|
85
234
|
prodex super
|
|
86
|
-
prodex exec "review this repo"
|
|
87
|
-
prodex claude -- -p "summarize this repo"
|
|
88
|
-
prodex claude mem -- -p "recall past work on this repo"
|
|
89
235
|
```
|
|
90
236
|
|
|
91
|
-
|
|
237
|
+
This is the mode I tune and use myself every day.
|
|
92
238
|
|
|
93
|
-
|
|
239
|
+
It combines:
|
|
94
240
|
|
|
95
|
-
|
|
241
|
+
- Caveman mode
|
|
242
|
+
- Claude-Mem transcript watching
|
|
243
|
+
- RTK shell-command guidance
|
|
244
|
+
- full-access launch mode
|
|
245
|
+
- Smart Context Autopilot in the runtime proxy
|
|
96
246
|
|
|
97
|
-
|
|
247
|
+
```bash
|
|
248
|
+
prodex s
|
|
249
|
+
prodex s exec "review this repo"
|
|
250
|
+
```
|
|
98
251
|
|
|
99
|
-
|
|
252
|
+
`prodex super` expands to:
|
|
253
|
+
|
|
254
|
+
```bash
|
|
255
|
+
prodex caveman mem rtk --full-access
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
Full access maps to Codex's sandbox-bypass launch flag. Use it only when you intentionally want Codex to run without the normal approval and sandbox protections.
|
|
259
|
+
|
|
260
|
+
## Commands
|
|
261
|
+
|
|
262
|
+
<details open>
|
|
263
|
+
<summary>Most used commands</summary>
|
|
264
|
+
|
|
265
|
+
```bash
|
|
266
|
+
prodex
|
|
267
|
+
prodex s
|
|
268
|
+
prodex exec "review this repo"
|
|
269
|
+
prodex quota --all
|
|
270
|
+
prodex profile list
|
|
271
|
+
prodex session list
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
</details>
|
|
275
|
+
|
|
276
|
+
<details>
|
|
277
|
+
<summary>Run Codex</summary>
|
|
100
278
|
|
|
101
279
|
```bash
|
|
102
280
|
prodex
|
|
103
281
|
prodex run
|
|
104
282
|
prodex run --profile main
|
|
105
283
|
prodex run --dry-run
|
|
106
|
-
prodex update --help
|
|
107
284
|
prodex exec "review this repo"
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
</details>
|
|
288
|
+
|
|
289
|
+
<details>
|
|
290
|
+
<summary>Run Super mode</summary>
|
|
291
|
+
|
|
292
|
+
```bash
|
|
293
|
+
prodex s
|
|
294
|
+
prodex s exec "review this repo"
|
|
295
|
+
prodex super
|
|
296
|
+
prodex super --profile main
|
|
297
|
+
prodex super --dry-run
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
</details>
|
|
301
|
+
|
|
302
|
+
<details>
|
|
303
|
+
<summary>Check quota</summary>
|
|
304
|
+
|
|
305
|
+
```bash
|
|
306
|
+
prodex quota --all
|
|
307
|
+
prodex quota --all --once
|
|
308
|
+
prodex quota --all --auth no-auth --once
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
</details>
|
|
312
|
+
|
|
313
|
+
<details>
|
|
314
|
+
<summary>Sessions</summary>
|
|
315
|
+
|
|
316
|
+
```bash
|
|
317
|
+
prodex session list
|
|
318
|
+
prodex session current
|
|
319
|
+
prodex session current --include-subagents
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
</details>
|
|
323
|
+
|
|
324
|
+
<details>
|
|
325
|
+
<summary>Update Codex</summary>
|
|
326
|
+
|
|
327
|
+
```bash
|
|
328
|
+
prodex update --help
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
`prodex update` passes through to `codex update` directly. It does not use Prodex profile selection, quota preflight, or the local runtime proxy.
|
|
332
|
+
|
|
333
|
+
</details>
|
|
334
|
+
|
|
335
|
+
<details>
|
|
336
|
+
<summary>More Codex command examples</summary>
|
|
337
|
+
|
|
338
|
+
```bash
|
|
108
339
|
prodex run 019c9e3d-45a0-7ad0-a6ee-b194ac2d44f9
|
|
109
340
|
printf 'context from stdin' | prodex run exec "summarize this"
|
|
110
341
|
```
|
|
111
342
|
|
|
112
|
-
Unknown top-level Codex subcommands remain managed Codex launches.
|
|
343
|
+
Unknown top-level Codex subcommands remain managed Codex launches.
|
|
113
344
|
|
|
114
|
-
|
|
345
|
+
For example:
|
|
115
346
|
|
|
116
|
-
|
|
347
|
+
```bash
|
|
348
|
+
prodex remote-control
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
is equivalent to:
|
|
352
|
+
|
|
353
|
+
```bash
|
|
354
|
+
prodex run remote-control
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
unless Prodex explicitly owns that command.
|
|
358
|
+
|
|
359
|
+
</details>
|
|
360
|
+
|
|
361
|
+
## Modes
|
|
362
|
+
|
|
363
|
+
| Mode | Command | Description |
|
|
364
|
+
|---|---|---|
|
|
365
|
+
| Normal Codex | `prodex` or `prodex run` | Managed Codex launch with profile selection and quota routing. |
|
|
366
|
+
| Caveman | `prodex caveman` | Runs Codex with a temporary overlay `CODEX_HOME`. |
|
|
367
|
+
| Super | `prodex s` or `prodex super` | Daily mode with Caveman, memory, RTK guidance, and full access. |
|
|
368
|
+
| Claude Code | `prodex claude` | Runs Claude Code through Prodex-managed state. |
|
|
369
|
+
|
|
370
|
+
<details>
|
|
371
|
+
<summary>Normal Codex</summary>
|
|
372
|
+
|
|
373
|
+
```bash
|
|
374
|
+
prodex
|
|
375
|
+
prodex run
|
|
376
|
+
prodex run --profile main
|
|
377
|
+
prodex exec "review this repo"
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
</details>
|
|
381
|
+
|
|
382
|
+
<details>
|
|
383
|
+
<summary>Caveman mode</summary>
|
|
117
384
|
|
|
118
385
|
```bash
|
|
119
386
|
prodex caveman
|
|
@@ -129,32 +396,50 @@ prodex caveman 019c9e3d-45a0-7ad0-a6ee-b194ac2d44f9
|
|
|
129
396
|
|
|
130
397
|
If you use the `mem` variant, Prodex points an existing Claude-Mem Codex setup to the active Prodex session path instead of the default `~/.codex/sessions`.
|
|
131
398
|
|
|
132
|
-
Add
|
|
399
|
+
Add `rtk` after `mem` when you want Prodex to inject RTK shell-command guidance into the temporary Codex overlay for that launch.
|
|
400
|
+
|
|
401
|
+
RTK is still an external binary. Install it separately if `rtk gain` is unavailable.
|
|
133
402
|
|
|
134
|
-
|
|
403
|
+
</details>
|
|
404
|
+
|
|
405
|
+
<details>
|
|
406
|
+
<summary>Super mode</summary>
|
|
135
407
|
|
|
136
408
|
```bash
|
|
409
|
+
prodex s
|
|
410
|
+
prodex s exec "review this repo"
|
|
137
411
|
prodex super
|
|
138
|
-
prodex super --url http://127.0.0.1:8131
|
|
139
|
-
prodex super --url http://127.0.0.1:8131 --dry-run
|
|
140
412
|
prodex super --profile main
|
|
141
|
-
prodex super
|
|
413
|
+
prodex super --dry-run
|
|
142
414
|
prodex super 019c9e3d-45a0-7ad0-a6ee-b194ac2d44f9
|
|
143
415
|
```
|
|
144
416
|
|
|
145
|
-
`prodex
|
|
417
|
+
`prodex s` is the short alias for `prodex super`.
|
|
146
418
|
|
|
147
|
-
|
|
148
|
-
Super uses Prodex's slim Claude-Mem Codex schema by default to avoid storing full assistant/tool output in recall context. Add `--mem-super-slim` to store prompt summaries/references instead of full prompt bodies for leaner recall, or add `--mem-full` when you need the full transcript schema.
|
|
149
|
-
Super also enables Smart Context Autopilot in the runtime proxy. It keeps exact pass-through for continuation-sensitive requests, but when safe it uses adaptive token budgeting, artifact-backed large tool outputs, duplicate suppression, blob/noise detection, stable cacheable context, and critical-signal self-checks to reduce token load without dropping failure details.
|
|
419
|
+
This is my daily mode. It is the path I keep tuning for normal work: memory enabled, RTK guidance enabled, full access available, and context handling handled by the runtime proxy.
|
|
150
420
|
|
|
151
|
-
|
|
421
|
+
Super mode uses Prodex's slim Claude-Mem Codex schema by default to avoid storing full assistant/tool output in recall context.
|
|
152
422
|
|
|
153
|
-
|
|
423
|
+
Use `--mem-super-slim` to store prompt summaries/references instead of full prompt bodies:
|
|
154
424
|
|
|
155
|
-
|
|
425
|
+
```bash
|
|
426
|
+
prodex super --mem-super-slim
|
|
427
|
+
```
|
|
156
428
|
|
|
157
|
-
|
|
429
|
+
Use `--mem-full` when you need the full transcript schema:
|
|
430
|
+
|
|
431
|
+
```bash
|
|
432
|
+
prodex super --mem-full
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
Super also enables Smart Context Autopilot in the runtime proxy.
|
|
436
|
+
|
|
437
|
+
It keeps exact pass-through for continuation-sensitive requests. When safe, it uses adaptive token budgeting, artifact-backed large tool outputs, duplicate suppression, blob/noise detection, stable cacheable context, and critical-signal self-checks to reduce token load without dropping failure details.
|
|
438
|
+
|
|
439
|
+
</details>
|
|
440
|
+
|
|
441
|
+
<details>
|
|
442
|
+
<summary>Claude Code</summary>
|
|
158
443
|
|
|
159
444
|
```bash
|
|
160
445
|
prodex claude -- -p "summarize this repo"
|
|
@@ -167,68 +452,193 @@ prodex claude --profile second caveman -- -p "review the latest diff briefly"
|
|
|
167
452
|
prodex claude --profile second -- -p --output-format json "show the latest diff"
|
|
168
453
|
```
|
|
169
454
|
|
|
170
|
-
`prodex claude` uses the normal Claude Code flow.
|
|
455
|
+
`prodex claude` uses the normal Claude Code flow while keeping state under Prodex-managed configuration.
|
|
171
456
|
|
|
172
457
|
`prodex claude caveman` enables Caveman for that session while keeping state under the Prodex-managed `CLAUDE_CONFIG_DIR`, not the global `~/.claude`.
|
|
173
458
|
|
|
174
459
|
`prodex claude caveman mem` combines Caveman and Claude-Mem.
|
|
175
460
|
|
|
176
|
-
|
|
461
|
+
`prodex claude` is only supported with the default OpenAI/Codex provider.
|
|
462
|
+
|
|
463
|
+
</details>
|
|
464
|
+
|
|
465
|
+
## Profiles
|
|
466
|
+
|
|
467
|
+
<details open>
|
|
468
|
+
<summary>Common profile commands</summary>
|
|
177
469
|
|
|
178
470
|
```bash
|
|
179
471
|
prodex profile list
|
|
180
472
|
prodex profile add second
|
|
181
|
-
prodex profile import copilot
|
|
182
473
|
prodex profile import-current main
|
|
183
474
|
prodex login --profile second
|
|
184
475
|
prodex use --profile main
|
|
185
476
|
prodex logout --profile main
|
|
477
|
+
```
|
|
478
|
+
|
|
479
|
+
</details>
|
|
480
|
+
|
|
481
|
+
<details>
|
|
482
|
+
<summary>More profile commands</summary>
|
|
483
|
+
|
|
484
|
+
```bash
|
|
485
|
+
prodex profile import copilot
|
|
486
|
+
prodex profile export
|
|
186
487
|
prodex profile remove second
|
|
187
488
|
prodex profile remove --all
|
|
188
489
|
```
|
|
189
490
|
|
|
190
|
-
|
|
491
|
+
</details>
|
|
191
492
|
|
|
192
|
-
|
|
493
|
+
## Local model support
|
|
193
494
|
|
|
194
|
-
|
|
495
|
+
<details>
|
|
496
|
+
<summary>Run Super mode against a local server</summary>
|
|
195
497
|
|
|
196
|
-
|
|
498
|
+
Prodex can launch Super mode against a local OpenAI-compatible server:
|
|
197
499
|
|
|
198
|
-
|
|
500
|
+
```bash
|
|
501
|
+
prodex super --url http://127.0.0.1:8131
|
|
502
|
+
```
|
|
199
503
|
|
|
200
|
-
|
|
504
|
+
You can use this with a local server such as `llama-server`.
|
|
505
|
+
|
|
506
|
+
By default, Prodex:
|
|
507
|
+
|
|
508
|
+
- injects a temporary `prodex-local` Codex provider
|
|
509
|
+
- appends `/v1` when the URL has no path
|
|
510
|
+
- disables non-function native tools that local servers commonly reject
|
|
511
|
+
- advertises a conservative 16k local context window
|
|
512
|
+
- skips quota/proxy routing for that launch
|
|
201
513
|
|
|
202
|
-
|
|
514
|
+
The default local model id is:
|
|
515
|
+
|
|
516
|
+
```bash
|
|
517
|
+
unsloth/qwen3.5-35b-a3b
|
|
518
|
+
```
|
|
519
|
+
|
|
520
|
+
Override it with `--model`:
|
|
521
|
+
|
|
522
|
+
```bash
|
|
523
|
+
prodex super --url http://127.0.0.1:8131 --model local/qwen
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
Use `--context-window` and `--auto-compact-token-limit` if your local server is configured with a larger context window.
|
|
527
|
+
|
|
528
|
+
See [LOCAL.md](./LOCAL.md) for self-hosted model setup and testing.
|
|
529
|
+
|
|
530
|
+
</details>
|
|
531
|
+
|
|
532
|
+
## Utilities and diagnostics
|
|
533
|
+
|
|
534
|
+
<details>
|
|
535
|
+
<summary>Utility commands</summary>
|
|
203
536
|
|
|
204
537
|
```bash
|
|
205
|
-
prodex profile export
|
|
206
|
-
prodex quota --all
|
|
207
|
-
prodex quota --all --once
|
|
208
|
-
prodex quota --all --auth no-auth --once
|
|
209
|
-
prodex session list
|
|
210
|
-
prodex session current
|
|
211
538
|
prodex info
|
|
212
539
|
prodex doctor --runtime
|
|
540
|
+
prodex doctor --bundle ./prodex-doctor.json --redacted
|
|
213
541
|
prodex context audit
|
|
214
542
|
prodex context compress ~/.codex/AGENTS.md --dry-run
|
|
215
543
|
git diff | prodex context compact-output --kind git-diff
|
|
216
544
|
```
|
|
217
545
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
`prodex
|
|
221
|
-
`prodex
|
|
222
|
-
|
|
546
|
+
| Command | Description |
|
|
547
|
+
|---|---|
|
|
548
|
+
| `prodex info` | Shows effective runtime tuning values after environment, policy, and default resolution. |
|
|
549
|
+
| `prodex doctor --runtime` | Runs runtime diagnostics. |
|
|
550
|
+
| `prodex doctor --bundle PATH --redacted` | Writes a shareable JSON diagnostic bundle without stored auth tokens or headers. |
|
|
551
|
+
| `prodex context audit` | Reports approximate token weight for shared instruction and memory files. |
|
|
552
|
+
| `prodex context compress` | Compresses Markdown/text context files and writes an `.original.md` backup. |
|
|
553
|
+
| `prodex context compact-output` | Compacts copied command output such as `git status`, `git diff`, `rg`, `grep`, `find`, `tree`, or long logs. |
|
|
223
554
|
|
|
224
|
-
|
|
555
|
+
For full policy keys, environment overrides, and runtime log path resolution, see [docs/runtime-policy.md](./docs/runtime-policy.md).
|
|
225
556
|
|
|
226
|
-
|
|
557
|
+
</details>
|
|
227
558
|
|
|
228
|
-
|
|
559
|
+
## Advanced behavior
|
|
560
|
+
|
|
561
|
+
<details>
|
|
562
|
+
<summary>Shared Codex history</summary>
|
|
563
|
+
|
|
564
|
+
Managed Prodex profiles keep account credentials isolated per profile, but Codex-owned shared state uses the native Codex home by default.
|
|
565
|
+
|
|
566
|
+
On Unix-like systems, this is usually:
|
|
567
|
+
|
|
568
|
+
```bash
|
|
569
|
+
~/.codex
|
|
570
|
+
```
|
|
571
|
+
|
|
572
|
+
In practice, profile `history.jsonl`, `sessions`, `config.toml`, `environments.toml`, plugins, skills, and related shared files link to the same Codex home that direct Codex uses.
|
|
573
|
+
|
|
574
|
+
This matches direct Codex behavior: logging out or switching accounts does not hide chat history.
|
|
229
575
|
|
|
230
|
-
|
|
576
|
+
Older Prodex state from `$PRODEX_HOME/.codex` is merged into the native Codex home on the next managed-profile launch.
|
|
231
577
|
|
|
232
|
-
|
|
578
|
+
Set `PRODEX_SHARED_CODEX_HOME` only when you intentionally want a different shared Codex root.
|
|
579
|
+
|
|
580
|
+
</details>
|
|
581
|
+
|
|
582
|
+
<details>
|
|
583
|
+
<summary>Bedrock and custom providers</summary>
|
|
584
|
+
|
|
585
|
+
Auto-rotate and quota checks apply to supported OpenAI/Codex profiles.
|
|
586
|
+
|
|
587
|
+
If a profile's `config.toml` sets `model_provider` to a non-OpenAI backend such as `amazon-bedrock`, `prodex run` and `prodex caveman` launch Codex directly without quota preflight or the local auto-rotate proxy.
|
|
588
|
+
|
|
589
|
+
Bedrock quota, credentials, regions, and provider errors are handled by Codex and the upstream provider, not by Prodex.
|
|
590
|
+
|
|
591
|
+
`prodex quota` is not available for those profiles.
|
|
592
|
+
|
|
593
|
+
</details>
|
|
594
|
+
|
|
595
|
+
<details>
|
|
596
|
+
<summary>Proxy behavior</summary>
|
|
597
|
+
|
|
598
|
+
Prodex respects system and environment proxy settings for upstream OpenAI quota, auth, and runtime HTTP by default, including:
|
|
599
|
+
|
|
600
|
+
```bash
|
|
601
|
+
HTTP_PROXY
|
|
602
|
+
HTTPS_PROXY
|
|
603
|
+
NO_PROXY
|
|
604
|
+
```
|
|
605
|
+
|
|
606
|
+
Runtime WebSocket upstream connections also honor `HTTPS_PROXY` and `https_proxy` via HTTP CONNECT and respect `NO_PROXY` and `no_proxy`.
|
|
607
|
+
|
|
608
|
+
The local Codex-to-Prodex broker connection always receives `NO_PROXY` entries for:
|
|
609
|
+
|
|
610
|
+
```bash
|
|
611
|
+
127.0.0.1
|
|
612
|
+
localhost
|
|
613
|
+
::1
|
|
614
|
+
```
|
|
615
|
+
|
|
616
|
+
This prevents a user proxy from intercepting the local runtime proxy.
|
|
617
|
+
|
|
618
|
+
Use `--no-proxy` on `prodex run`, `prodex caveman`, `prodex super`, or `prodex claude` only when you explicitly want Prodex upstream requests to bypass proxy settings.
|
|
619
|
+
|
|
620
|
+
</details>
|
|
621
|
+
|
|
622
|
+
<details>
|
|
623
|
+
<summary>Contributor notes</summary>
|
|
624
|
+
|
|
625
|
+
This repository is a Cargo workspace.
|
|
626
|
+
|
|
627
|
+
The binary crate stays at the root, while reusable leaf crates live under `crates/` to reduce rebuild scope when those components change.
|
|
233
628
|
|
|
234
629
|
Contributor testing guidance lives in [docs/testing.md](./docs/testing.md), including the fast/serial split and runtime parallel-safety assumptions.
|
|
630
|
+
|
|
631
|
+
</details>
|
|
632
|
+
|
|
633
|
+
## Documentation
|
|
634
|
+
|
|
635
|
+
- [QUICKSTART.md](./QUICKSTART.md) — longer walkthrough
|
|
636
|
+
- [LOCAL.md](./LOCAL.md) — self-hosted local model setup and testing
|
|
637
|
+
- [docs/runtime-policy.md](./docs/runtime-policy.md) — runtime policy keys, environment overrides, and runtime log path resolution
|
|
638
|
+
- [docs/testing.md](./docs/testing.md) — contributor testing guidance
|
|
639
|
+
|
|
640
|
+
## Support
|
|
641
|
+
|
|
642
|
+
If you find `prodex` useful and want to support its development, you can donate here:
|
|
643
|
+
|
|
644
|
+
[<img src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" alt="Donate with PayPal" />](https://paypal.me/christiandoxa)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@christiandoxa/prodex",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.100.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.100.0",
|
|
20
|
+
"@christiandoxa/prodex-linux-arm64": "0.100.0",
|
|
21
|
+
"@christiandoxa/prodex-darwin-x64": "0.100.0",
|
|
22
|
+
"@christiandoxa/prodex-darwin-arm64": "0.100.0",
|
|
23
|
+
"@christiandoxa/prodex-win32-x64": "0.100.0",
|
|
24
|
+
"@christiandoxa/prodex-win32-arm64": "0.100.0"
|
|
25
25
|
},
|
|
26
26
|
"engines": {
|
|
27
27
|
"node": ">=18"
|