@carjms/codexswitch 0.1.0 → 0.3.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.ko.md +300 -0
- package/README.md +157 -129
- package/package.json +1 -1
- package/src/cli.js +297 -24
- package/src/runner.js +102 -5
- package/src/store.js +71 -9
package/README.md
CHANGED
|
@@ -1,46 +1,48 @@
|
|
|
1
1
|
# codexswitch
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**English** | [한국어](README.ko.md)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**Register multiple OpenAI Codex CLI accounts, switch between them with a single command, and automatically rotate to the next account when you hit a usage limit.**
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Inspired by [KarpelesLab/teamclaude](https://github.com/KarpelesLab/teamclaude) (a multi-account tool for Claude), adapted for the Codex CLI. Supports macOS / Windows / Linux, requires only Node.js, and has zero external dependencies.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
- 한 계정의 사용량 한도(usage limit)가 차면 **자동으로 다른 계정으로 이어서** 작업하고 싶은 분
|
|
11
|
-
- 매번 `codex logout` → `codex login`을 반복하는 게 지겨운 분
|
|
9
|
+
## Who is this for?
|
|
12
10
|
|
|
13
|
-
|
|
11
|
+
- You have two or more ChatGPT accounts (personal/work, Plus/Pro, ...) and want to use Codex across them
|
|
12
|
+
- You want to **continue working on another account automatically** when one account hits its usage limit
|
|
13
|
+
- You are tired of repeating `codex logout` → `codex login` every time
|
|
14
|
+
|
|
15
|
+
The Codex CLI stores credentials in a single file (`auth.json`), so out of the box it only supports one account. codexswitch removes that limitation.
|
|
14
16
|
|
|
15
17
|
---
|
|
16
18
|
|
|
17
|
-
## 1.
|
|
19
|
+
## 1. Prerequisites
|
|
18
20
|
|
|
19
|
-
|
|
21
|
+
Two things must be installed first.
|
|
20
22
|
|
|
21
|
-
### ① Node.js (v18
|
|
23
|
+
### ① Node.js (v18+)
|
|
22
24
|
|
|
23
|
-
|
|
25
|
+
If `node --version` prints `v18` or higher, skip this step.
|
|
24
26
|
|
|
25
|
-
- **macOS**: [nodejs.org](https://nodejs.org/)
|
|
27
|
+
- **macOS**: download the LTS installer (.pkg) from [nodejs.org](https://nodejs.org/), or with Homebrew:
|
|
26
28
|
```bash
|
|
27
29
|
brew install node
|
|
28
30
|
```
|
|
29
|
-
- **Windows**: [nodejs.org](https://nodejs.org/)
|
|
31
|
+
- **Windows**: download the LTS installer (.msi) from [nodejs.org](https://nodejs.org/) and run it. The default options are fine.
|
|
30
32
|
|
|
31
33
|
### ② Codex CLI
|
|
32
34
|
|
|
33
|
-
- **macOS** —
|
|
35
|
+
- **macOS** — in Terminal (Applications → Utilities → Terminal):
|
|
34
36
|
```bash
|
|
35
37
|
npm install -g @openai/codex
|
|
36
38
|
```
|
|
37
|
-
- **Windows** — PowerShell(
|
|
39
|
+
- **Windows** — in PowerShell (search "PowerShell" in the Start menu):
|
|
38
40
|
```powershell
|
|
39
41
|
npm install -g @openai/codex
|
|
40
42
|
```
|
|
41
|
-
>
|
|
43
|
+
> Note: native Windows support in the Codex CLI is experimental; OpenAI recommends WSL (Windows Subsystem for Linux). If you use WSL, just follow the macOS/Linux instructions inside your WSL terminal.
|
|
42
44
|
|
|
43
|
-
|
|
45
|
+
Verify:
|
|
44
46
|
|
|
45
47
|
```bash
|
|
46
48
|
codex --version
|
|
@@ -48,31 +50,31 @@ codex --version
|
|
|
48
50
|
|
|
49
51
|
---
|
|
50
52
|
|
|
51
|
-
## 2. codexswitch
|
|
53
|
+
## 2. Install codexswitch
|
|
52
54
|
|
|
53
|
-
|
|
55
|
+
Same command on macOS (Terminal) and Windows (PowerShell):
|
|
54
56
|
|
|
55
57
|
```bash
|
|
56
58
|
npm install -g @carjms/codexswitch
|
|
57
59
|
```
|
|
58
60
|
|
|
59
|
-
|
|
61
|
+
Verify:
|
|
60
62
|
|
|
61
63
|
```bash
|
|
62
64
|
codexswitch help
|
|
63
65
|
```
|
|
64
66
|
|
|
65
|
-
|
|
67
|
+
If you see the help text, you are done. `codexswitch` and the short alias `cxs` behave identically (the examples below use `cxs`).
|
|
66
68
|
|
|
67
69
|
---
|
|
68
70
|
|
|
69
|
-
## 3.
|
|
71
|
+
## 3. Getting started (5 minutes)
|
|
70
72
|
|
|
71
|
-
|
|
73
|
+
A full walkthrough: register two accounts and switch between them.
|
|
72
74
|
|
|
73
|
-
### 3-1.
|
|
75
|
+
### 3-1. Register the account you are already logged in with
|
|
74
76
|
|
|
75
|
-
|
|
77
|
+
If you have run `codex login` before, import that account as-is:
|
|
76
78
|
|
|
77
79
|
```bash
|
|
78
80
|
cxs import
|
|
@@ -83,21 +85,21 @@ added account "me@gmail.com" (me@gmail.com, plus)
|
|
|
83
85
|
set "me@gmail.com" as the active account
|
|
84
86
|
```
|
|
85
87
|
|
|
86
|
-
|
|
88
|
+
To pick your own name, append it: `cxs import personal`.
|
|
87
89
|
|
|
88
|
-
>
|
|
90
|
+
> Never logged in? Skip to 3-2.
|
|
89
91
|
|
|
90
|
-
### 3-2.
|
|
92
|
+
### 3-2. Log in with a second account
|
|
91
93
|
|
|
92
94
|
```bash
|
|
93
|
-
cxs login
|
|
95
|
+
cxs login work
|
|
94
96
|
```
|
|
95
97
|
|
|
96
|
-
|
|
98
|
+
A browser opens — log in with the **account you want to add**. (If your browser is already signed in to another account, switch accounts on the login screen.)
|
|
97
99
|
|
|
98
|
-
>
|
|
100
|
+
> This happens in an isolated temporary profile, so **your existing login is untouched.**
|
|
99
101
|
|
|
100
|
-
### 3-3.
|
|
102
|
+
### 3-3. List registered accounts
|
|
101
103
|
|
|
102
104
|
```bash
|
|
103
105
|
cxs list
|
|
@@ -107,168 +109,194 @@ cxs list
|
|
|
107
109
|
name email plan prio status token refreshed
|
|
108
110
|
- ------------ ---------------- ---- ---- ------ ----------------
|
|
109
111
|
* me@gmail.com me@gmail.com plus 0 ok 2026-07-08 09:12
|
|
110
|
-
|
|
112
|
+
work work@company.com pro 0 ok 2026-07-08 09:15
|
|
111
113
|
```
|
|
112
114
|
|
|
113
|
-
`*`
|
|
115
|
+
`*` marks the active account.
|
|
114
116
|
|
|
115
|
-
### 3-4.
|
|
117
|
+
### 3-4. Switch accounts
|
|
116
118
|
|
|
117
119
|
```bash
|
|
118
|
-
cxs use
|
|
120
|
+
cxs use work
|
|
119
121
|
```
|
|
120
122
|
|
|
121
|
-
|
|
123
|
+
From now on, plain `codex` runs as the work account. Switch back with `cxs use me@gmail.com`, or cycle with `cxs next`.
|
|
122
124
|
|
|
123
|
-
### 3-5.
|
|
125
|
+
### 3-5. Run with automatic limit rotation (the key feature)
|
|
124
126
|
|
|
125
127
|
```bash
|
|
126
|
-
cxs exec "
|
|
128
|
+
cxs exec "write tests for this project"
|
|
127
129
|
```
|
|
128
130
|
|
|
129
|
-
`codex exec
|
|
131
|
+
While running `codex exec`, if the account **hits a usage limit**:
|
|
130
132
|
|
|
131
|
-
1.
|
|
132
|
-
2.
|
|
133
|
-
3.
|
|
133
|
+
1. The account is marked "limited" for a while (times like "try again in 2 hours" in the error message are parsed automatically)
|
|
134
|
+
2. The next usable account **resumes the same session** (`codex exec resume`) and continues from where it stopped — no restarting from scratch (opt out with `--no-resume`)
|
|
135
|
+
3. It only stops when every account is exhausted
|
|
134
136
|
|
|
135
137
|
```
|
|
136
138
|
[codexswitch] exec as "me@gmail.com"
|
|
137
|
-
... (
|
|
139
|
+
... (usage limit reached mid-run) ...
|
|
138
140
|
[codexswitch] "me@gmail.com" hit a usage/rate limit (paused until 2026-07-08 14:30) — rotating
|
|
139
|
-
[codexswitch] exec as "
|
|
140
|
-
... (
|
|
141
|
+
[codexswitch] exec as "work" (attempt 2)
|
|
142
|
+
... (work continues) ...
|
|
141
143
|
```
|
|
142
144
|
|
|
143
|
-
|
|
145
|
+
`cxs exec` also adds `--skip-git-repo-check` automatically, so it works in folders that are not git repositories.
|
|
146
|
+
|
|
147
|
+
### 3-6. Run one account without switching
|
|
144
148
|
|
|
145
|
-
|
|
149
|
+
Leave the globally active account alone and run a different account just this once:
|
|
146
150
|
|
|
147
151
|
```bash
|
|
148
|
-
cxs run
|
|
149
|
-
cxs run
|
|
152
|
+
cxs run work # interactive codex as "work"
|
|
153
|
+
cxs run work exec "..." # codex exec as "work"
|
|
150
154
|
```
|
|
151
155
|
|
|
152
|
-
|
|
156
|
+
Each account runs in its own isolated environment, so you can even **open two terminals and run codex as two different accounts simultaneously.** (Config and session history are shared.)
|
|
153
157
|
|
|
154
|
-
|
|
158
|
+
### 3-7. Set the rotation order and a default model
|
|
155
159
|
|
|
156
|
-
|
|
160
|
+
Set the rotation order in one command. `exec` and `next` follow this order afterwards:
|
|
157
161
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
| `cxs list` | 계정 목록: 활성 표시(`*`), 이메일, 플랜, 우선순위, 한도 상태 |
|
|
163
|
-
| `cxs use <이름>` | 활성 계정 전환 |
|
|
164
|
-
| `cxs current` | 현재 활성 계정 확인 |
|
|
165
|
-
| `cxs next` | 다음 사용 가능한 계정으로 순환 전환 |
|
|
166
|
-
| `cxs run [이름] [인자...]` | 전환 없이 특정 계정으로 codex 실행 (격리 환경) |
|
|
167
|
-
| `cxs exec [인자...]` | `codex exec` + 한도 도달 시 자동 계정 로테이션 |
|
|
168
|
-
| `cxs exec -a <이름> ...` | 특정 계정부터 exec 시작 |
|
|
169
|
-
| `cxs remove <이름>` | 계정 삭제 |
|
|
170
|
-
| `cxs rename <옛이름> <새이름>` | 계정 이름 변경 |
|
|
171
|
-
| `cxs disable / enable <이름>` | 로테이션에서 임시 제외 / 복귀 |
|
|
172
|
-
| `cxs priority <이름> <숫자>` | 로테이션 우선순위 (낮을수록 먼저, 기본 0) |
|
|
173
|
-
| `cxs clear-limit <이름>` | 기록된 한도 상태 수동 해제 |
|
|
174
|
-
| `cxs cooldown [분]` | 한도 감지 시 기본 대기 시간 조회/설정 (기본 60분) |
|
|
175
|
-
| `cxs sync` | codex가 갱신한 토큰을 저장소에 반영 |
|
|
162
|
+
```bash
|
|
163
|
+
cxs order work me@gmail.com # use "work" first, then me@gmail.com
|
|
164
|
+
cxs order # show the current order
|
|
165
|
+
```
|
|
176
166
|
|
|
177
|
-
|
|
167
|
+
Set a default model to inject into every `run`/`exec` (an explicit `-m` always wins):
|
|
178
168
|
|
|
179
|
-
|
|
169
|
+
```bash
|
|
170
|
+
cxs model gpt-5.2-codex # set the default model
|
|
171
|
+
cxs model # show the current setting
|
|
172
|
+
cxs model default # reset to the codex default
|
|
173
|
+
```
|
|
180
174
|
|
|
181
|
-
|
|
182
|
-
npm 전역 설치 경로가 PATH에 없는 경우입니다. 터미널/PowerShell을 **완전히 닫았다 다시 열어보세요.** 그래도 안 되면 `npm config get prefix`로 나온 경로(Windows는 그 경로 자체, macOS는 그 아래 `bin` 폴더)를 PATH에 추가하세요.
|
|
175
|
+
### 3-8. Register an OpenAI API-key account
|
|
183
176
|
|
|
184
|
-
|
|
185
|
-
`sudo npm install -g @carjms/codexswitch`로 설치하거나, 더 좋은 방법으로는 [nvm](https://github.com/nvm-sh/nvm)으로 Node.js를 설치하면 권한 문제가 사라집니다.
|
|
177
|
+
You can also register an account billed through API credits (Platform) instead of a ChatGPT subscription:
|
|
186
178
|
|
|
187
|
-
|
|
188
|
-
|
|
179
|
+
```bash
|
|
180
|
+
cxs add-key api-account sk-your-api-key
|
|
181
|
+
```
|
|
189
182
|
|
|
190
|
-
|
|
191
|
-
|
|
183
|
+
> Tip: to keep the key out of your shell history, omit it and pass it via the environment:
|
|
184
|
+
> `OPENAI_API_KEY=sk-... cxs add-key api-account`
|
|
192
185
|
|
|
193
|
-
|
|
194
|
-
동작합니다. 내부적으로 macOS/Linux는 심볼릭 링크, Windows는 디렉토리 정션(관리자 권한 불필요)을 사용합니다. 파일 공유까지 완전하게 하려면 Windows **설정 → 개발자 모드**를 켜는 것을 추천하지만, 꺼져 있어도 복사 방식으로 자동 대체되어 문제없이 동작합니다.
|
|
186
|
+
### 3-9. Usage thresholds (rotate before hitting the wall)
|
|
195
187
|
|
|
196
|
-
|
|
197
|
-
`cxs clear-limit <이름>` 으로 해제하면 됩니다.
|
|
188
|
+
Accounts whose recorded 5-hour/weekly usage reaches the configured percentage are skipped in rotation automatically (default 95%):
|
|
198
189
|
|
|
199
|
-
|
|
200
|
-
|
|
190
|
+
```bash
|
|
191
|
+
cxs threshold 90 # both 5h and weekly at 90%
|
|
192
|
+
cxs threshold 90 98 # 5h at 90%, weekly at 98%
|
|
193
|
+
cxs threshold # show current settings
|
|
194
|
+
cxs list # per-account 5h/week usage columns
|
|
195
|
+
```
|
|
201
196
|
|
|
202
|
-
|
|
203
|
-
본인 소유의 정당한 계정들(예: 개인 계정과 회사 계정)을 전환하는 용도로 사용하세요. 한도 우회를 목적으로 한 계정 남용은 OpenAI 이용약관에 어긋날 수 있으며, 사용에 대한 책임은 사용자에게 있습니다.
|
|
197
|
+
> Usage numbers are read from what codex records in its session files. Some codex versions do not record them in `exec` mode; in that case they refresh after interactive runs (`cxs run`). Without numbers, rotation still works via limit-error detection.
|
|
204
198
|
|
|
205
199
|
---
|
|
206
200
|
|
|
207
|
-
##
|
|
201
|
+
## 4. All commands
|
|
208
202
|
|
|
209
|
-
|
|
|
210
|
-
|
|
211
|
-
|
|
|
212
|
-
|
|
|
203
|
+
| Command | Description |
|
|
204
|
+
|---|---|
|
|
205
|
+
| `cxs login [name]` | Log in to a new account and store it (existing login untouched; defaults to the email as the name) |
|
|
206
|
+
| `cxs import [name]` | Import the account currently in `~/.codex` |
|
|
207
|
+
| `cxs add-key <name> [key]` | Register an OpenAI API-key account (falls back to `$OPENAI_API_KEY`) |
|
|
208
|
+
| `cxs list` | List accounts: active marker (`*`), email, plan, priority, limit status |
|
|
209
|
+
| `cxs use <name>` | Switch the active account |
|
|
210
|
+
| `cxs current` | Show the active account |
|
|
211
|
+
| `cxs next` | Switch to the next account in rotation order (wraps around) |
|
|
212
|
+
| `cxs run [name] [args...]` | Run codex as a specific account without switching (isolated env) |
|
|
213
|
+
| `cxs exec [args...]` | `codex exec` + automatic rotation on usage limits — the next account resumes the same session; works outside git repos |
|
|
214
|
+
| `cxs exec -a <name> ...` | Start exec with a specific account (`--no-resume`: restart instead of resuming) |
|
|
215
|
+
| `cxs order [names...]` | Set the rotation order in one command (no args: show it) |
|
|
216
|
+
| `cxs model [name]` | Set the default model injected into `run`/`exec` (`default` to reset) |
|
|
217
|
+
| `cxs threshold [5h%] [wk%]` | Rotate to the next account when usage reaches these percents (default 95; one value sets both) |
|
|
218
|
+
| `cxs patterns [add/remove]` | Custom regex patterns treated as rate-limit errors |
|
|
219
|
+
| `cxs export <file>` | Back up all accounts + settings (⚠️ contains tokens — treat like a password) |
|
|
220
|
+
| `cxs restore <file>` | Restore accounts from a backup (for moving machines) |
|
|
221
|
+
| `cxs completion <bash\|zsh>` | Print a shell completion script |
|
|
222
|
+
| `cxs remove <name>` | Delete an account |
|
|
223
|
+
| `cxs rename <old> <new>` | Rename an account |
|
|
224
|
+
| `cxs disable / enable <name>` | Temporarily exclude from / restore to rotation |
|
|
225
|
+
| `cxs priority <name> <n>` | Change one account's priority (lower = preferred, default 0) |
|
|
226
|
+
| `cxs clear-limit <name>` | Manually clear a recorded rate-limit |
|
|
227
|
+
| `cxs cooldown [minutes]` | Show/set the default cooldown after a limit is detected (default 60) |
|
|
228
|
+
| `cxs sync` | Save tokens refreshed by codex back into the store |
|
|
213
229
|
|
|
214
|
-
|
|
215
|
-
.codex-switch/
|
|
216
|
-
├── meta.json # 활성 계정, 우선순위, 한도 상태, 쿨다운 설정
|
|
217
|
-
├── accounts/<이름>.json # 계정별 인증 정보 사본 (권한 600)
|
|
218
|
-
└── profiles/<이름>/ # run/exec용 계정별 격리 실행 환경
|
|
219
|
-
```
|
|
230
|
+
---
|
|
220
231
|
|
|
221
|
-
|
|
232
|
+
## 5. FAQ / Troubleshooting
|
|
222
233
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
| `CODEX_SWITCH_HOME` | `~/.codex-switch` | 계정 저장소 위치 |
|
|
226
|
-
| `CODEX_HOME` | `~/.codex` | 관리 대상 codex 설정 디렉토리 |
|
|
227
|
-
| `CODEX_SWITCH_CODEX_BIN` | `codex` | codex 바이너리 경로 |
|
|
234
|
+
**Q. `codexswitch: command not found`.**
|
|
235
|
+
The npm global bin directory is not on your PATH. **Close and reopen your terminal/PowerShell.** If that does not help, add the path printed by `npm config get prefix` (on macOS, its `bin` subfolder) to your PATH.
|
|
228
236
|
|
|
229
|
-
|
|
230
|
-
-
|
|
237
|
+
**Q. `EACCES` permission error during `npm install -g` on macOS.**
|
|
238
|
+
Install with `sudo npm install -g @carjms/codexswitch`, or better, install Node.js via [nvm](https://github.com/nvm-sh/nvm), which avoids the permission problem entirely.
|
|
231
239
|
|
|
232
|
-
|
|
240
|
+
**Q. `codex CLI not found`.**
|
|
241
|
+
The Codex CLI is not installed or not on your PATH. Run `npm install -g @openai/codex` and try again. If it is installed somewhere unusual, point the `CODEX_SWITCH_CODEX_BIN` environment variable at the binary.
|
|
233
242
|
|
|
234
|
-
|
|
243
|
+
**Q. `Not inside a trusted directory and --skip-git-repo-check was not specified.`**
|
|
244
|
+
This is a Codex CLI safety check: `codex exec` refuses to run in folders that are not git repositories. **Since v0.2.0, `cxs exec` adds this flag automatically, so you should not see this error.** For interactive runs (`cxs run`), codex itself asks "do you trust this folder?" — just approve it.
|
|
235
245
|
|
|
236
|
-
|
|
246
|
+
**Q. Do I lose sessions or settings when I switch accounts?**
|
|
247
|
+
No. Only the **credentials (auth.json)** are swapped. `config.toml`, session history, skills, etc. are shared across all accounts.
|
|
237
248
|
|
|
238
|
-
**
|
|
239
|
-
|
|
249
|
+
**Q. Does `run`/`exec` work on Windows?**
|
|
250
|
+
Yes. Internally, macOS/Linux use symlinks and Windows uses directory junctions (no admin rights needed). For complete file sharing we recommend enabling Windows **Settings → Developer Mode**, but even without it, a copy-based fallback keeps everything working.
|
|
240
251
|
|
|
241
|
-
**
|
|
242
|
-
|
|
252
|
+
**Q. I want to use a limited account again right now.**
|
|
253
|
+
Clear it with `cxs clear-limit <name>`.
|
|
243
254
|
|
|
244
|
-
**
|
|
245
|
-
|
|
255
|
+
**Q. Can account names contain non-ASCII characters (e.g. Korean)?**
|
|
256
|
+
Yes. Letters from any language, digits, spaces, and `@ . _ + -` are allowed.
|
|
246
257
|
|
|
247
|
-
|
|
258
|
+
**Q. Is using multiple accounts against the terms of service?**
|
|
259
|
+
Use this to switch between accounts you legitimately own (e.g. a personal and a work account). Abusing accounts to evade usage limits may violate OpenAI's terms of service; you are responsible for how you use it.
|
|
248
260
|
|
|
249
|
-
|
|
261
|
+
---
|
|
250
262
|
|
|
251
|
-
|
|
263
|
+
## 6. Where data is stored
|
|
252
264
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
265
|
+
| Item | macOS/Linux | Windows |
|
|
266
|
+
|---|---|---|
|
|
267
|
+
| Account store | `~/.codex-switch/` | `C:\Users\<you>\.codex-switch\` |
|
|
268
|
+
| Codex config | `~/.codex/` | `C:\Users\<you>\.codex\` |
|
|
256
269
|
|
|
257
|
-
|
|
270
|
+
```
|
|
271
|
+
.codex-switch/
|
|
272
|
+
├── meta.json # active account, order/priorities, limit states, settings
|
|
273
|
+
├── accounts/<name>.json # per-account copy of auth.json (mode 600)
|
|
274
|
+
└── profiles/<name>/ # per-account isolated env used by run/exec
|
|
275
|
+
```
|
|
258
276
|
|
|
259
|
-
|
|
277
|
+
### Environment variables
|
|
278
|
+
|
|
279
|
+
| Variable | Default | Description |
|
|
280
|
+
|---|---|---|
|
|
281
|
+
| `CODEX_SWITCH_HOME` | `~/.codex-switch` | Account store location |
|
|
282
|
+
| `CODEX_HOME` | `~/.codex` | The codex config dir codexswitch manages |
|
|
283
|
+
| `CODEX_SWITCH_CODEX_BIN` | `codex` | Path to the codex binary |
|
|
284
|
+
|
|
285
|
+
- macOS/Linux: `export CODEX_SWITCH_HOME=/your/path`
|
|
286
|
+
- Windows PowerShell: `$env:CODEX_SWITCH_HOME = "D:\your\path"` (persist with `setx`)
|
|
260
287
|
|
|
261
288
|
---
|
|
262
289
|
|
|
263
|
-
|
|
290
|
+
|
|
291
|
+
## Development
|
|
264
292
|
|
|
265
293
|
```bash
|
|
266
294
|
git clone https://github.com/JIMyungSik/codexswitch.git
|
|
267
295
|
cd codexswitch
|
|
268
|
-
npm link #
|
|
269
|
-
npm test #
|
|
296
|
+
npm link # link the local dev version as a global command
|
|
297
|
+
npm test # full-flow test against a fake codex binary (never touches your real ~/.codex)
|
|
270
298
|
```
|
|
271
299
|
|
|
272
|
-
##
|
|
300
|
+
## License
|
|
273
301
|
|
|
274
302
|
MIT
|
package/package.json
CHANGED