@christiandoxa/prodex 0.45.0 → 0.47.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 +46 -71
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -1,42 +1,21 @@
|
|
|
1
1
|
# prodex
|
|
2
2
|
|
|
3
|
-
`prodex` is a wrapper for Codex and Claude Code
|
|
3
|
+
`prodex` is a wrapper for Codex and Claude Code for working with multiple profiles.
|
|
4
4
|
|
|
5
|
-
|
|
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.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
It also keeps profiles isolated and keeps existing sessions attached to the profile they started with.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
## Why use it
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Use `prodex` if you want to:
|
|
12
12
|
|
|
13
|
-
|
|
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
|
|
14
17
|
|
|
15
|
-
|
|
16
|
-
- want isolated profile environments
|
|
17
|
-
- need quota checks before launch
|
|
18
|
-
- want session continuity tied to the original profile
|
|
19
|
-
|
|
20
|
-
If you only use one account and do not care about quota-aware routing or isolated homes, you probably do not need it.
|
|
21
|
-
|
|
22
|
-
## Repository layout
|
|
23
|
-
|
|
24
|
-
- `src/main.rs` — binary entrypoint
|
|
25
|
-
- `src/lib.rs` — shared crate wiring and test support
|
|
26
|
-
- `src/app_commands/`, `src/command_dispatch.rs`, `src/cli_args.rs` — CLI parsing and top-level command flow
|
|
27
|
-
- `src/profile_commands/`, `src/quota_support/`, `src/secret_store/`, `src/profile_identity.rs` — profile, quota, secret storage, and identity management
|
|
28
|
-
- `src/runtime_proxy/`, `src/runtime_launch/`, `src/runtime_persistence/`, `src/runtime_store/`, `src/runtime_broker/` — runtime internals
|
|
29
|
-
- `src/runtime_claude/`, `src/runtime_anthropic/`, `src/runtime_caveman.rs`, `src/runtime_mem.rs` — Claude, Caveman, and memory integrations
|
|
30
|
-
- `scripts/npm/` and `npm/` — npm packaging and publishing helpers
|
|
31
|
-
|
|
32
|
-
## Supported commands
|
|
33
|
-
|
|
34
|
-
- `prodex` / `prodex run`
|
|
35
|
-
- `prodex caveman`
|
|
36
|
-
- `prodex caveman mem`
|
|
37
|
-
- `prodex claude`
|
|
38
|
-
- `prodex claude caveman`
|
|
39
|
-
- `prodex claude caveman mem`
|
|
18
|
+
If you only use one account and do not need profile isolation or quota-aware routing, you probably do not need it.
|
|
40
19
|
|
|
41
20
|
## Requirements
|
|
42
21
|
|
|
@@ -45,7 +24,7 @@ You need at least one logged-in Prodex profile.
|
|
|
45
24
|
Depending on your setup, you may also need:
|
|
46
25
|
|
|
47
26
|
- Codex CLI for `prodex` and `prodex caveman`
|
|
48
|
-
- Claude Code for `prodex claude`
|
|
27
|
+
- Claude Code for `prodex claude`
|
|
49
28
|
- `claude-mem` for `mem` variants
|
|
50
29
|
|
|
51
30
|
## Install
|
|
@@ -56,15 +35,13 @@ Depending on your setup, you may also need:
|
|
|
56
35
|
npm install -g @christiandoxa/prodex
|
|
57
36
|
````
|
|
58
37
|
|
|
59
|
-
This installs `prodex` and pulls in the current Codex runtime dependency.
|
|
60
|
-
|
|
61
38
|
### Cargo
|
|
62
39
|
|
|
63
40
|
```bash
|
|
64
41
|
cargo install prodex
|
|
65
42
|
```
|
|
66
43
|
|
|
67
|
-
Cargo
|
|
44
|
+
If you install with Cargo, make sure the `codex` binary in your `PATH` is already installed and up to date.
|
|
68
45
|
|
|
69
46
|
## Quick start
|
|
70
47
|
|
|
@@ -82,23 +59,21 @@ prodex profile add second
|
|
|
82
59
|
prodex login --profile second
|
|
83
60
|
```
|
|
84
61
|
|
|
85
|
-
|
|
62
|
+
You can also import a logged-in Copilot CLI account:
|
|
86
63
|
|
|
87
64
|
```bash
|
|
88
65
|
prodex profile import copilot
|
|
89
66
|
prodex profile import copilot --name copilot-main --activate
|
|
90
67
|
```
|
|
91
68
|
|
|
92
|
-
Check
|
|
69
|
+
Check your profiles and quota:
|
|
93
70
|
|
|
94
71
|
```bash
|
|
95
72
|
prodex profile list
|
|
96
73
|
prodex quota --all
|
|
97
74
|
```
|
|
98
75
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
Run commands through `prodex`:
|
|
76
|
+
Run through `prodex`:
|
|
102
77
|
|
|
103
78
|
```bash
|
|
104
79
|
prodex
|
|
@@ -107,29 +82,11 @@ prodex caveman mem
|
|
|
107
82
|
prodex exec "review this repo"
|
|
108
83
|
prodex claude -- -p "summarize this repo"
|
|
109
84
|
prodex claude mem -- -p "recall past work on this repo"
|
|
110
|
-
prodex claude caveman -- -p "summarize this repo briefly"
|
|
111
|
-
prodex claude caveman mem -- -p "summarize this repo briefly"
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
## Profile commands
|
|
115
|
-
|
|
116
|
-
```bash
|
|
117
|
-
prodex profile list
|
|
118
|
-
prodex profile add second
|
|
119
|
-
prodex profile import copilot
|
|
120
|
-
prodex profile import-current main
|
|
121
|
-
prodex login --profile second
|
|
122
|
-
prodex use --profile main
|
|
123
|
-
prodex logout --profile main
|
|
124
|
-
prodex profile remove second
|
|
125
|
-
prodex profile remove --all
|
|
126
85
|
```
|
|
127
86
|
|
|
128
|
-
|
|
87
|
+
## Common commands
|
|
129
88
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
## Codex examples
|
|
89
|
+
### Run Codex
|
|
133
90
|
|
|
134
91
|
```bash
|
|
135
92
|
prodex
|
|
@@ -140,9 +97,7 @@ prodex run 019c9e3d-45a0-7ad0-a6ee-b194ac2d44f9
|
|
|
140
97
|
printf 'context from stdin' | prodex run exec "summarize this"
|
|
141
98
|
```
|
|
142
99
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
## Caveman examples
|
|
100
|
+
### Run Caveman mode
|
|
146
101
|
|
|
147
102
|
```bash
|
|
148
103
|
prodex caveman
|
|
@@ -154,11 +109,9 @@ prodex caveman 019c9e3d-45a0-7ad0-a6ee-b194ac2d44f9
|
|
|
154
109
|
|
|
155
110
|
`prodex caveman` runs Codex with a temporary overlay `CODEX_HOME`, so the base profile home stays unchanged after the session ends.
|
|
156
111
|
|
|
157
|
-
If the selected profile sets `model_provider` to a non-OpenAI backend, Prodex skips quota preflight and launches Caveman directly without the local runtime proxy.
|
|
158
|
-
|
|
159
112
|
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`.
|
|
160
113
|
|
|
161
|
-
|
|
114
|
+
### Run Claude Code
|
|
162
115
|
|
|
163
116
|
```bash
|
|
164
117
|
prodex claude -- -p "summarize this repo"
|
|
@@ -173,11 +126,35 @@ prodex claude --profile second -- -p --output-format json "show the latest diff"
|
|
|
173
126
|
|
|
174
127
|
`prodex claude` uses the normal Claude Code flow.
|
|
175
128
|
|
|
176
|
-
|
|
129
|
+
`prodex claude caveman` enables Caveman for that session while keeping state under the Prodex-managed `CLAUDE_CONFIG_DIR`, not the global `~/.claude`.
|
|
177
130
|
|
|
178
|
-
`prodex claude caveman`
|
|
131
|
+
`prodex claude caveman mem` combines Caveman and Claude-Mem.
|
|
179
132
|
|
|
180
|
-
|
|
133
|
+
## Profile commands
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
prodex profile list
|
|
137
|
+
prodex profile add second
|
|
138
|
+
prodex profile import copilot
|
|
139
|
+
prodex profile import-current main
|
|
140
|
+
prodex login --profile second
|
|
141
|
+
prodex use --profile main
|
|
142
|
+
prodex logout --profile main
|
|
143
|
+
prodex profile remove second
|
|
144
|
+
prodex profile remove --all
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Notes
|
|
148
|
+
|
|
149
|
+
Auto rotate and quota checks apply to supported OpenAI/Codex profiles.
|
|
150
|
+
|
|
151
|
+
If a profile's `config.toml` sets `model_provider` to a non-OpenAI backend such as `amazon-bedrock`, `prodex run` and `prodex caveman` launch directly without quota preflight or the local auto-rotate proxy.
|
|
152
|
+
|
|
153
|
+
`prodex quota` is not available for those profiles.
|
|
154
|
+
|
|
155
|
+
`prodex claude` is only supported with the default OpenAI/Codex provider.
|
|
156
|
+
|
|
157
|
+
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.
|
|
181
158
|
|
|
182
159
|
## Utility commands
|
|
183
160
|
|
|
@@ -188,8 +165,6 @@ prodex quota --all --once
|
|
|
188
165
|
prodex doctor --runtime
|
|
189
166
|
```
|
|
190
167
|
|
|
191
|
-
If Prodex returns `409 stale_continuation`, the request still carries continuation state, but the original binding is gone or no longer safe to reuse. Prodex refuses to fresh-replay that turn on another profile because continuation affinity is part of the request contract, and replaying it elsewhere can drop tool context or continue the wrong conversation. Start a new prompt or retry from the same live session if it still exists. If the failure looks unexpected, `prodex doctor --runtime` and the latest runtime log can show which continuation binding went stale.
|
|
192
|
-
|
|
193
168
|
## More
|
|
194
169
|
|
|
195
170
|
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.47.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.47.0",
|
|
20
|
+
"@christiandoxa/prodex-linux-arm64": "0.47.0",
|
|
21
|
+
"@christiandoxa/prodex-darwin-x64": "0.47.0",
|
|
22
|
+
"@christiandoxa/prodex-darwin-arm64": "0.47.0",
|
|
23
|
+
"@christiandoxa/prodex-win32-x64": "0.47.0",
|
|
24
|
+
"@christiandoxa/prodex-win32-arm64": "0.47.0"
|
|
25
25
|
},
|
|
26
26
|
"engines": {
|
|
27
27
|
"node": ">=18"
|