@christiandoxa/prodex 0.32.0 → 0.33.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 +53 -89
  2. package/package.json +7 -7
package/README.md CHANGED
@@ -1,63 +1,50 @@
1
1
  # prodex
2
2
 
3
- [![CI](https://github.com/christiandoxa/prodex/actions/workflows/ci.yml/badge.svg)](https://github.com/christiandoxa/prodex/actions/workflows/ci.yml)
3
+ `prodex` is a wrapper for Codex and Claude Code when you want to work with multiple isolated profiles.
4
4
 
5
- `prodex` is a wrapper around Codex / Claude Code setups when you want to work with multiple isolated profiles.
5
+ Each profile can use a different account. Before starting a session, `prodex` checks quota and can route new work to another available profile. Existing sessions stay attached to the profile they started with.
6
6
 
7
- Main use case: one account per profile, quota checked before launch, and new sessions can hop to another ready profile when the current one is not a good candidate. Existing sessions stay pinned to the profile they started with.
7
+ It can also run Caveman mode and optionally connect Claude-Mem to the active session path.
8
8
 
9
- It can also launch Caveman mode, and optionally wire Claude-Mem into the selected session path.
9
+ ## When to use it
10
10
 
11
- ## Repository layout
11
+ `prodex` is useful if you:
12
12
 
13
- The Rust crate is modular now rather than centered on one large source file.
14
-
15
- - `src/main.rs`: binary entrypoint
16
- - `src/lib.rs`: shared crate wiring and test support
17
- - `src/app_commands/`, `src/command_dispatch.rs`, `src/cli_args.rs`: CLI parsing and top-level command flow
18
- - `src/profile_commands/`, `src/quota_support/`, `src/secret_store/`, `src/profile_identity.rs`: profile, quota, secret storage, and credential identity management
19
- - `src/runtime_proxy/`, `src/runtime_launch/`, `src/runtime_persistence/`, `src/runtime_store/`, `src/runtime_broker/`: runtime proxy, launch, persistence, and broker internals
20
- - `src/runtime_claude/`, `src/runtime_anthropic/`, `src/runtime_caveman.rs`, `src/runtime_mem.rs`: Claude/Caveman integration layers
21
- - `scripts/npm/` and `npm/`: npm packaging, version sync, and publish helpers
22
-
23
- ## Features
24
-
25
- - one account = one profile
26
- - isolated profile homes
27
- - quota preflight before launch
28
- - rotates fresh work to another ready profile
29
- - keeps continuation/session affinity
30
- - `prodex caveman` for Codex + Caveman
31
- - `prodex caveman mem` for Codex + Caveman + Claude-Mem
32
- - `prodex claude` for Claude Code through the same pool
33
- - `prodex claude caveman` for Claude Code + Caveman
34
- - `prodex claude caveman mem` for Claude Code + Caveman + Claude-Mem
13
+ - use multiple accounts for CLI agent workflows
14
+ - want isolated profile environments
15
+ - need quota checks before launch
16
+ - want session continuity tied to the original profile
35
17
 
36
- ## Requirements
18
+ If you only use one account and do not care about quota-aware routing or isolated homes, you probably do not need it.
37
19
 
38
- You need at least one logged-in Prodex profile.
20
+ ## Repository layout
39
21
 
40
- Depending on what you want to run:
22
+ - `src/main.rs` binary entrypoint
23
+ - `src/lib.rs` — shared crate wiring and test support
24
+ - `src/app_commands/`, `src/command_dispatch.rs`, `src/cli_args.rs` — CLI parsing and top-level command flow
25
+ - `src/profile_commands/`, `src/quota_support/`, `src/secret_store/`, `src/profile_identity.rs` — profile, quota, secret storage, and identity management
26
+ - `src/runtime_proxy/`, `src/runtime_launch/`, `src/runtime_persistence/`, `src/runtime_store/`, `src/runtime_broker/` — runtime internals
27
+ - `src/runtime_claude/`, `src/runtime_anthropic/`, `src/runtime_caveman.rs`, `src/runtime_mem.rs` — Claude, Caveman, and memory integrations
28
+ - `scripts/npm/` and `npm/` — npm packaging and publishing helpers
41
29
 
42
- - Codex CLI for `prodex` and `prodex caveman`
43
- - Claude Code (`claude`) for `prodex claude` and `prodex claude caveman`
44
- - optionally `claude-mem` for `mem` variants
30
+ ## Supported commands
45
31
 
46
- Installing `@christiandoxa/prodex` from npm also installs the current Codex runtime dependency:
32
+ - `prodex` / `prodex run`
33
+ - `prodex caveman`
34
+ - `prodex caveman mem`
35
+ - `prodex claude`
36
+ - `prodex claude caveman`
37
+ - `prodex claude caveman mem`
47
38
 
48
- ```bash
49
- npm install -g @christiandoxa/prodex
50
- ```
39
+ ## Requirements
51
40
 
52
- That pulls in `@openai/codex@latest` at install or update time. Claude Code is still separate.
41
+ You need at least one logged-in Prodex profile.
53
42
 
54
- If you want Claude-Mem support, install it with the upstream installer:
43
+ Depending on your setup, you may also need:
55
44
 
56
- ```bash
57
- npx claude-mem install --ide codex-cli
58
- npx claude-mem install --ide claude-code
59
- npx claude-mem start
60
- ```
45
+ - Codex CLI for `prodex` and `prodex caveman`
46
+ - Claude Code for `prodex claude` and `prodex claude caveman`
47
+ - `claude-mem` for `mem` variants
61
48
 
62
49
  ## Install
63
50
 
@@ -65,7 +52,9 @@ npx claude-mem start
65
52
 
66
53
  ```bash
67
54
  npm install -g @christiandoxa/prodex
68
- ```
55
+ ````
56
+
57
+ This installs `prodex` and pulls in the current Codex runtime dependency.
69
58
 
70
59
  ### Cargo
71
60
 
@@ -73,24 +62,17 @@ npm install -g @christiandoxa/prodex
73
62
  cargo install prodex
74
63
  ```
75
64
 
76
- Cargo installs still use the `codex` binary from your `PATH`. Keep that binary updated separately if you want the newest Codex there too.
77
-
78
- If you want a pinned version:
79
-
80
- ```bash
81
- npm install -g @christiandoxa/prodex@0.32.0
82
- cargo install prodex --force --version 0.32.0
83
- ```
65
+ Cargo installs use the `codex` binary already available in your `PATH`, so you need to keep that updated separately.
84
66
 
85
67
  ## Quick start
86
68
 
87
- If your current shared Codex home is already logged in:
69
+ If your current Codex home is already logged in:
88
70
 
89
71
  ```bash
90
72
  prodex profile import-current main
91
73
  ```
92
74
 
93
- Or do it from scratch:
75
+ Or set it up from scratch:
94
76
 
95
77
  ```bash
96
78
  prodex login
@@ -98,21 +80,21 @@ prodex profile add second
98
80
  prodex login --profile second
99
81
  ```
100
82
 
101
- Import a currently logged-in Copilot CLI account into Prodex metadata:
83
+ Import a logged-in Copilot CLI account:
102
84
 
103
85
  ```bash
104
86
  prodex profile import copilot
105
87
  prodex profile import copilot --name copilot-main --activate
106
88
  ```
107
89
 
108
- Check what Prodex sees:
90
+ Check available profiles and quota:
109
91
 
110
92
  ```bash
111
93
  prodex profile list
112
94
  prodex quota --all
113
95
  ```
114
96
 
115
- Run stuff through Prodex:
97
+ Run commands through `prodex`:
116
98
 
117
99
  ```bash
118
100
  prodex
@@ -125,11 +107,7 @@ prodex claude caveman -- -p "summarize this repo briefly"
125
107
  prodex claude caveman mem -- -p "summarize this repo briefly"
126
108
  ```
127
109
 
128
- `prodex` with no subcommand is just `prodex run`.
129
-
130
- ## Commands
131
-
132
- ### Profiles
110
+ ## Profile commands
133
111
 
134
112
  ```bash
135
113
  prodex profile list
@@ -143,13 +121,11 @@ prodex profile remove second
143
121
  prodex profile remove --all
144
122
  ```
145
123
 
146
- A note on Copilot import:
124
+ ### Note on Copilot import
147
125
 
148
- `prodex profile import copilot` does **not** move the Copilot token into Prodex-managed storage. The token stays where Copilot already keeps it. Prodex only records the provider identity and API endpoint in its own metadata.
126
+ `prodex profile import copilot` does not move the Copilot token into Prodex-managed storage. The token stays where Copilot already stores it. Prodex only records the provider identity and API endpoint in its own metadata.
149
127
 
150
- The imported profile shows up in the pool and export/import flows. `prodex run`, `prodex login`, and `prodex logout` still target OpenAI/Codex profiles only, while `prodex quota` can also inspect Copilot provider quota data through the Copilot CLI account API.
151
-
152
- ### Codex
128
+ ## Codex examples
153
129
 
154
130
  ```bash
155
131
  prodex
@@ -160,7 +136,7 @@ prodex run 019c9e3d-45a0-7ad0-a6ee-b194ac2d44f9
160
136
  printf 'context from stdin' | prodex run exec "summarize this"
161
137
  ```
162
138
 
163
- ### Caveman
139
+ ## Caveman examples
164
140
 
165
141
  ```bash
166
142
  prodex caveman
@@ -170,13 +146,11 @@ prodex caveman exec "review this repo in caveman mode"
170
146
  prodex caveman 019c9e3d-45a0-7ad0-a6ee-b194ac2d44f9
171
147
  ```
172
148
 
173
- `prodex caveman` uses the Caveman plugin from [JuliusBrussee/caveman](https://github.com/JuliusBrussee/caveman) and launches Codex with a temporary overlay `CODEX_HOME`.
174
-
175
- That matters because the base profile home is left alone after the session exits.
149
+ `prodex caveman` runs Codex with a temporary overlay `CODEX_HOME`, so the base profile home stays unchanged after the session ends.
176
150
 
177
- If you use the `mem` variant, Prodex points an existing Claude-Mem Codex setup at the active Prodex session path instead of the default `~/.codex/sessions` tree.
151
+ 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`.
178
152
 
179
- ### Claude Code
153
+ ## Claude Code examples
180
154
 
181
155
  ```bash
182
156
  prodex claude -- -p "summarize this repo"
@@ -189,17 +163,13 @@ prodex claude --profile second caveman -- -p "review the latest diff briefly"
189
163
  prodex claude --profile second -- -p --output-format json "show the latest diff"
190
164
  ```
191
165
 
192
- Use `prodex claude` for the normal Claude Code path.
193
-
194
- Use `prodex claude caveman` if you want Claude Code with Caveman preloaded.
195
-
196
- The `caveman` prefix loads the plugin for that session only while still keeping state under the Prodex-managed `CLAUDE_CONFIG_DIR`, not global `~/.claude`.
166
+ `prodex claude` uses the normal Claude Code flow.
197
167
 
198
- The `mem` prefix loads an existing Claude-Mem Claude Code install via Claude's `--plugin-dir` support.
168
+ `prodex claude caveman` loads Caveman only for that session while keeping state under the Prodex-managed `CLAUDE_CONFIG_DIR`, not the global `~/.claude`.
199
169
 
200
- `prodex claude caveman mem` combines both.
170
+ `prodex claude caveman mem` combines both Caveman and Claude-Mem.
201
171
 
202
- ### Export / quota / debug
172
+ ## Utility commands
203
173
 
204
174
  ```bash
205
175
  prodex profile export
@@ -208,12 +178,6 @@ prodex quota --all --once
208
178
  prodex doctor --runtime
209
179
  ```
210
180
 
211
- ## Notes
212
-
213
- This is basically a profile/session router for people who do a lot of CLI-driven agent work and do not want everything tied to one mutable global home.
214
-
215
- If you only use one account and do not care about quota-aware routing or keeping sessions attached to their original profile, you probably do not need it.
216
-
217
181
  ## More
218
182
 
219
- See [QUICKSTART.md](./QUICKSTART.md) for the longer walkthrough.
183
+ See [QUICKSTART.md](./QUICKSTART.md) for a longer walkthrough.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@christiandoxa/prodex",
3
- "version": "0.32.0",
3
+ "version": "0.33.0",
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": "latest"
17
17
  },
18
18
  "optionalDependencies": {
19
- "@christiandoxa/prodex-linux-x64": "0.32.0",
20
- "@christiandoxa/prodex-linux-arm64": "0.32.0",
21
- "@christiandoxa/prodex-darwin-x64": "0.32.0",
22
- "@christiandoxa/prodex-darwin-arm64": "0.32.0",
23
- "@christiandoxa/prodex-win32-x64": "0.32.0",
24
- "@christiandoxa/prodex-win32-arm64": "0.32.0"
19
+ "@christiandoxa/prodex-linux-x64": "0.33.0",
20
+ "@christiandoxa/prodex-linux-arm64": "0.33.0",
21
+ "@christiandoxa/prodex-darwin-x64": "0.33.0",
22
+ "@christiandoxa/prodex-darwin-arm64": "0.33.0",
23
+ "@christiandoxa/prodex-win32-x64": "0.33.0",
24
+ "@christiandoxa/prodex-win32-arm64": "0.33.0"
25
25
  },
26
26
  "engines": {
27
27
  "node": ">=18"