@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.
Files changed (2) hide show
  1. package/README.md +489 -79
  2. package/package.json +7 -7
package/README.md CHANGED
@@ -1,39 +1,56 @@
1
1
  # prodex
2
2
 
3
- `prodex` is a wrapper for Codex and Claude Code for working with multiple profiles.
3
+ `prodex` is a multi-account Codex wrapper with auto-rotation.
4
4
 
5
- The main feature is auto rotate. If one OpenAI/Codex profile runs out of quota, `prodex` can route new work to another profile that is still available. You do not need to switch accounts manually.
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
- For contributors, this repository is a Cargo workspace: the binary crate stays at the root, while reusable leaf crates live under `crates/` to reduce rebuild scope when those components change.
7
+ ## Contents
8
8
 
9
- ## Why use it
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
- - automatically use another available profile when quota runs out
14
- - work with multiple accounts
15
- - keep each profile isolated
16
- - keep sessions tied to the original profile
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 profile isolation or quota-aware routing, you probably do not need it.
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
- Depending on your setup, you may also need:
25
-
26
- - Codex CLI for `prodex` and `prodex caveman`
27
- - Claude Code for `prodex claude`
28
- - `claude-mem` for `mem` variants
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
- ## Install
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 set it up from scratch:
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
- You can also import a logged-in Copilot CLI account:
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
- Check your profiles and quota:
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 profile list
73
- prodex quota --all
74
- prodex quota --all --auth no-auth --once
75
- prodex session list
228
+ prodex s
76
229
  ```
77
230
 
78
- Run through `prodex`:
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
- ### Shared Codex history
237
+ This is the mode I tune and use myself every day.
92
238
 
93
- Managed Prodex profiles keep account credentials isolated per profile, but Codex-owned shared state uses the native Codex home by default. 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 (`~/.codex` on Unix-like systems).
239
+ It combines:
94
240
 
95
- This matches direct Codex behavior: logging out or switching accounts does not hide chat history. Older Prodex state from `$PRODEX_HOME/.codex` is merged into the native Codex home on the next managed-profile launch. Set `PRODEX_SHARED_CODEX_HOME` only when you intentionally want a different shared Codex root.
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
- ## Common commands
247
+ ```bash
248
+ prodex s
249
+ prodex s exec "review this repo"
250
+ ```
98
251
 
99
- ### Run Codex
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. For example, `prodex remote-control` is equivalent to `prodex run remote-control` unless Prodex explicitly owns that command.
343
+ Unknown top-level Codex subcommands remain managed Codex launches.
113
344
 
114
- `prodex update` passes through to `codex update` directly and does not use Prodex profile selection, quota preflight, or the local runtime proxy.
345
+ For example:
115
346
 
116
- ### Run Caveman mode
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 the `rtk` prefix after `mem` when you want Prodex to inject RTK shell-command guidance into the temporary Codex overlay for that launch. RTK is still an external binary; install it separately from `rtk-ai/rtk` if `rtk gain` is unavailable.
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
- ### Run Super mode
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 exec "review this repo in super mode"
413
+ prodex super --dry-run
142
414
  prodex super 019c9e3d-45a0-7ad0-a6ee-b194ac2d44f9
143
415
  ```
144
416
 
145
- `prodex super` is a shortcut for `prodex caveman mem rtk --full-access`.
417
+ `prodex s` is the short alias for `prodex super`.
146
418
 
147
- Use this when you want Caveman mode, Claude-Mem transcript watching, RTK shell-command guidance, and launch-time full access together. Full access maps to Codex's sandbox-bypass launch flag, so use it only when you intentionally want Codex to run without the normal approval and sandbox protections.
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
- Use `prodex super --url http://127.0.0.1:8131` when you want the same Super mode front end to talk directly to a local OpenAI-compatible server such as `llama-server`. Prodex injects a temporary `prodex-local` Codex provider, appends `/v1` when the URL has no path, disables non-function native tools that local servers commonly reject, advertises a conservative 16k local context window, and skips quota/proxy routing for that launch. The default local model id is `unsloth/qwen3.5-35b-a3b`; override it with `--model`, for example `prodex super --url http://127.0.0.1:8131 --model local/qwen`. Use `--context-window` and `--auto-compact-token-limit` if your local server is configured larger. See [LOCAL.md](./LOCAL.md) for self-hosted model setup and testing.
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
- Add `--dry-run` to run, Caveman, or Super launches to print the resolved provider, model, `CODEX_HOME`, proxy args, and launch env with secret-looking values redacted. Dry-run output is prelaunch only and does not start Codex or the TUI.
423
+ Use `--mem-super-slim` to store prompt summaries/references instead of full prompt bodies:
154
424
 
155
- Prodex respects system and environment proxy settings for upstream OpenAI quota/auth/runtime HTTP by default, including `HTTP_PROXY`, `HTTPS_PROXY`, and platform proxy configuration supported by reqwest. Runtime WebSocket upstream connections also honor `HTTPS_PROXY`/`https_proxy` via HTTP CONNECT and respect `NO_PROXY`/`no_proxy`. The local Codex-to-Prodex broker connection always receives `NO_PROXY` entries for `127.0.0.1`, `localhost`, and `::1` so a user proxy does not intercept the local runtime proxy. 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.
425
+ ```bash
426
+ prodex super --mem-super-slim
427
+ ```
156
428
 
157
- ### Run Claude Code
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
- ## Profile commands
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
- ## Bedrock and custom providers
491
+ </details>
191
492
 
192
- Auto rotate and quota checks apply to supported OpenAI/Codex profiles.
493
+ ## Local model support
193
494
 
194
- 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. Bedrock quota, credentials, regions, and provider errors are handled by Codex and the upstream provider, not by Prodex.
495
+ <details>
496
+ <summary>Run Super mode against a local server</summary>
195
497
 
196
- `prodex quota` is not available for those profiles.
498
+ Prodex can launch Super mode against a local OpenAI-compatible server:
197
499
 
198
- `prodex claude` is only supported with the default OpenAI/Codex provider.
500
+ ```bash
501
+ prodex super --url http://127.0.0.1:8131
502
+ ```
199
503
 
200
- 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.
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
- ## Utility commands
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
- `prodex info` includes the effective runtime tuning values after environment, policy, and default resolution.
219
- `prodex session list` shows shared Codex parent session metadata, and `prodex session current` filters that list to sessions started from the current directory. Add `--include-subagents` only when you explicitly need spawned agent sessions for diagnostics.
220
- `prodex context audit` reports approximate token weight for shared instruction and memory files. `prodex context compress` is deterministic, only touches Markdown/text files, skips `.original.md` backups, and writes an `.original.md` backup before replacing a file.
221
- `prodex context compact-output` is an explicit stdin/file helper for compacting copied command output such as `git status`, `git diff`, `rg`/`grep`, `find`/`tree`, or generic long logs. The same logic is exposed by the `prodex-context` crate and does not rewrite Codex runtime payloads.
222
- For full policy keys, env overrides, and runtime log path resolution, see [docs/runtime-policy.md](./docs/runtime-policy.md).
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
- ## Support
555
+ For full policy keys, environment overrides, and runtime log path resolution, see [docs/runtime-policy.md](./docs/runtime-policy.md).
225
556
 
226
- If you find `prodex` useful and want to support its development, you can donate here:
557
+ </details>
227
558
 
228
- [<img src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" alt="Donate with PayPal" />](https://paypal.me/christiandoxa)
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
- ## More
576
+ Older Prodex state from `$PRODEX_HOME/.codex` is merged into the native Codex home on the next managed-profile launch.
231
577
 
232
- See [QUICKSTART.md](./QUICKSTART.md) for a longer walkthrough, [LOCAL.md](./LOCAL.md) for self-hosted local model setup, and [docs/runtime-policy.md](./docs/runtime-policy.md) for runtime policy keys.
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.98.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.98.0",
20
- "@christiandoxa/prodex-linux-arm64": "0.98.0",
21
- "@christiandoxa/prodex-darwin-x64": "0.98.0",
22
- "@christiandoxa/prodex-darwin-arm64": "0.98.0",
23
- "@christiandoxa/prodex-win32-x64": "0.98.0",
24
- "@christiandoxa/prodex-win32-arm64": "0.98.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"