@christiandoxa/prodex 0.31.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.
- package/README.md +53 -89
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -1,63 +1,50 @@
|
|
|
1
1
|
# prodex
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
`prodex` is a wrapper for Codex and Claude Code when you want to work with multiple isolated profiles.
|
|
4
4
|
|
|
5
|
-
`prodex`
|
|
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
|
-
|
|
7
|
+
It can also run Caveman mode and optionally connect Claude-Mem to the active session path.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
## When to use it
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
`prodex` is useful if you:
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
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
|
-
|
|
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
|
-
|
|
20
|
+
## Repository layout
|
|
39
21
|
|
|
40
|
-
|
|
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
|
-
|
|
43
|
-
- Claude Code (`claude`) for `prodex claude` and `prodex claude caveman`
|
|
44
|
-
- optionally `claude-mem` for `mem` variants
|
|
30
|
+
## Supported commands
|
|
45
31
|
|
|
46
|
-
|
|
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
|
-
|
|
49
|
-
npm install -g @christiandoxa/prodex
|
|
50
|
-
```
|
|
39
|
+
## Requirements
|
|
51
40
|
|
|
52
|
-
|
|
41
|
+
You need at least one logged-in Prodex profile.
|
|
53
42
|
|
|
54
|
-
|
|
43
|
+
Depending on your setup, you may also need:
|
|
55
44
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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
|
|
77
|
-
|
|
78
|
-
If you want a pinned version:
|
|
79
|
-
|
|
80
|
-
```bash
|
|
81
|
-
npm install -g @christiandoxa/prodex@0.31.0
|
|
82
|
-
cargo install prodex --force --version 0.31.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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
124
|
+
### Note on Copilot import
|
|
147
125
|
|
|
148
|
-
`prodex profile import copilot` does
|
|
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
|
-
|
|
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
|
-
|
|
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`
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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.
|
|
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.
|
|
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.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"
|