@ralphkrauss/codex-account-switcher 0.1.5 → 0.1.7

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/dist/remote.js CHANGED
@@ -3,7 +3,7 @@ import { randomBytes } from 'node:crypto';
3
3
  import { constants as fsConstants } from 'node:fs';
4
4
  import { access, chmod, mkdir, readFile, rename, rm, writeFile, } from 'node:fs/promises';
5
5
  import { dirname, join } from 'node:path';
6
- import { CxError, accountPathForName, getCodexPaths, listAccountNames, resolveExecutable, validateAccountName, writebackCurrentAccount, } from './accounts.js';
6
+ import { CxError, accountPathForName, getCodexPaths, listAccountNames, resolveExecutable, useAccount, validateAccountName, writebackCurrentAccount, } from './accounts.js';
7
7
  export const REMOTE_CONFIG_VERSION = 1;
8
8
  export const DEFAULT_ONEPASSWORD_ITEM_PREFIX = 'cx-';
9
9
  export const ONEPASSWORD_BACKEND = '1password';
@@ -257,6 +257,59 @@ function looksLikeMissingField(result) {
257
257
  function itemTitle(config, account) {
258
258
  return `${config.itemPrefix}${account}`;
259
259
  }
260
+ function accountNameFromItemTitle(config, title) {
261
+ if (!title.startsWith(config.itemPrefix)) {
262
+ return null;
263
+ }
264
+ const account = title.slice(config.itemPrefix.length);
265
+ try {
266
+ const safeAccount = validateAccountName(account);
267
+ return safeAccount === 'default' ? null : safeAccount;
268
+ }
269
+ catch {
270
+ return null;
271
+ }
272
+ }
273
+ function sortedUnique(values) {
274
+ return [...new Set(values)].sort((left, right) => left.localeCompare(right));
275
+ }
276
+ function parseOnePasswordItemTitles(stdout, action) {
277
+ let parsed;
278
+ try {
279
+ parsed = JSON.parse(stdout);
280
+ }
281
+ catch (error) {
282
+ throw new CxError(`1Password item list JSON could not be parsed while ${action}: ${errorMessage(error)}`, 1);
283
+ }
284
+ if (!Array.isArray(parsed)) {
285
+ throw new CxError(`1Password item list did not return an array while ${action}`, 1);
286
+ }
287
+ return parsed
288
+ .map((item) => (isRecord(item) && typeof item.title === 'string' ? item.title : null))
289
+ .filter((title) => title !== null);
290
+ }
291
+ async function listOnePasswordAccountNames(config, env) {
292
+ const result = await runOp([
293
+ 'item',
294
+ 'list',
295
+ '--vault',
296
+ config.vault,
297
+ '--format',
298
+ 'json',
299
+ ], env, `listing 1Password items in vault '${config.vault}'`);
300
+ return sortedUnique(parseOnePasswordItemTitles(result.stdout, `listing 1Password items in vault '${config.vault}'`)
301
+ .map((title) => accountNameFromItemTitle(config, title))
302
+ .filter((account) => account !== null));
303
+ }
304
+ async function verifyOnePasswordVault(config, env) {
305
+ await runOp([
306
+ 'vault',
307
+ 'get',
308
+ config.vault,
309
+ '--format',
310
+ 'json',
311
+ ], env, `checking 1Password vault '${config.vault}'`);
312
+ }
260
313
  function validateRemoteSyncAccountName(account) {
261
314
  const safeAccount = validateAccountName(account);
262
315
  if (safeAccount === 'default') {
@@ -475,13 +528,79 @@ export async function syncPullAccount(account, options = {}) {
475
528
  overwritten: local.overwritten,
476
529
  };
477
530
  }
531
+ export async function listRemoteAccountNames(options = {}) {
532
+ const env = options.env ?? process.env;
533
+ const paths = remotePaths(options);
534
+ const config = await requireRemoteConfig({ paths });
535
+ return await listOnePasswordAccountNames(config, env);
536
+ }
537
+ export async function syncPullAllAccounts(options = {}) {
538
+ const paths = remotePaths(options);
539
+ const accounts = await listRemoteAccountNames(options);
540
+ const results = [];
541
+ for (const account of accounts) {
542
+ const accountFile = accountPathForName(paths, account);
543
+ if (options.force !== true && await pathExists(accountFile)) {
544
+ continue;
545
+ }
546
+ results.push(await syncPullAccount(account, options));
547
+ }
548
+ return results;
549
+ }
550
+ export async function syncPushAllAccounts(options = {}) {
551
+ const paths = remotePaths(options);
552
+ const accounts = await listRemoteSyncAccountNames(paths);
553
+ const results = [];
554
+ for (const account of accounts) {
555
+ results.push(await syncPushAccount(account, options));
556
+ }
557
+ return results;
558
+ }
559
+ export async function setupOnePasswordProfiles(input, options = {}) {
560
+ const env = options.env ?? process.env;
561
+ const paths = remotePaths(options);
562
+ const configured = await configureOnePasswordRemote(input, { paths });
563
+ await verifyOnePasswordVault(configured.config, env);
564
+ const remoteAccounts = await listOnePasswordAccountNames(configured.config, env);
565
+ const pulled = input.pull === true
566
+ ? await syncPullAllAccounts({ paths, env, force: input.force })
567
+ : [];
568
+ let usedAccount = null;
569
+ if (input.use) {
570
+ const account = validateRemoteSyncAccountName(input.use);
571
+ const accountFile = accountPathForName(paths, account);
572
+ if (!await pathExists(accountFile)) {
573
+ await syncPullAccount(account, { paths, env, force: input.force });
574
+ }
575
+ await useAccount(account, { paths });
576
+ usedAccount = account;
577
+ }
578
+ return {
579
+ configPath: configured.configPath,
580
+ remoteConfigured: true,
581
+ opAvailable: true,
582
+ vault: configured.config.vault,
583
+ itemPrefix: configured.config.itemPrefix,
584
+ remoteAccounts,
585
+ pulledAccounts: pulled.map((entry) => entry.account),
586
+ usedAccount,
587
+ };
588
+ }
478
589
  export async function inspectSyncStatus(account, options = {}) {
479
590
  const env = options.env ?? process.env;
480
591
  const paths = remotePaths(options);
481
592
  const config = await readRemoteConfig({ paths });
482
593
  const opPath = await resolveExecutable('op', env);
483
- const accounts = account ? [validateRemoteSyncAccountName(account)] : await listRemoteSyncAccountNames(paths);
594
+ let accounts = account ? [validateRemoteSyncAccountName(account)] : await listRemoteSyncAccountNames(paths);
484
595
  const statuses = [];
596
+ if (!account && config && opPath) {
597
+ try {
598
+ accounts = sortedUnique([...accounts, ...await listOnePasswordAccountNames(config, env)]);
599
+ }
600
+ catch {
601
+ // Keep local status useful; per-account remote errors are reported below.
602
+ }
603
+ }
485
604
  for (const accountName of accounts) {
486
605
  const accountFile = accountPathForName(paths, accountName);
487
606
  let presence = 'unknown';
@@ -1 +1 @@
1
- {"version":3,"file":"remote.js","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote.js","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,317 @@
1
+ # Agent setup guide for Codex account profiles
2
+
3
+ This guide is written so Ralph can ask an agent on a new personal device to install and configure `cx` without handing the agent raw Codex tokens.
4
+
5
+ `cx` is the `@ralphkrauss/codex-account-switcher` CLI. It stores local Codex profile slots under Codex's normal data directory and can sync named profiles through 1Password using the 1Password CLI (`op`).
6
+
7
+ ## Copy-paste prompt for an agent
8
+
9
+ Use this prompt on a new device:
10
+
11
+ ```text
12
+ Set up Codex account switching on this machine using @ralphkrauss/codex-account-switcher.
13
+
14
+ Rules:
15
+ - Do not ask me to paste Codex auth JSON, OAuth tokens, refresh tokens, or 1Password secrets into chat.
16
+ - Do not print ~/.codex/auth.json, ~/.codex/accounts/*.json, or 1Password field contents.
17
+ - It is OK to ask me to complete browser/device-login prompts or run a local 1Password unlock/sign-in step.
18
+ - Prefer using 1Password-backed profiles with `cx 1password setup`.
19
+
20
+ Tasks:
21
+ 1. Check whether Node.js 22+, npm, Codex CLI, cx, and 1Password CLI (`op`) are installed.
22
+ 2. Install or upgrade what is missing:
23
+ - Codex CLI: `npm install -g @openai/codex`
24
+ - cx: `npm install -g @ralphkrauss/codex-account-switcher`
25
+ 3. Make sure `op` is signed in/unlocked. If not, tell me the exact local command to run, such as `op signin`.
26
+ 4. Configure 1Password-backed Codex profiles:
27
+ `cx 1password setup --vault <VAULT_NAME> --pull --use <PROFILE_NAME>`
28
+ 5. Verify setup with safe commands only:
29
+ - `cx doctor`
30
+ - `cx 1password status`
31
+ - `cx ls`
32
+ - `cx run <PROFILE_NAME> -- --version`
33
+ 6. If a requested profile exists in 1Password but is not local, rely on `cx use <PROFILE_NAME>` or `cx run <PROFILE_NAME> -- ...` to auto-pull it.
34
+ 7. If a profile's Codex session has ended, run `cx login <PROFILE_NAME> --device-auth`, ask me to complete the browser/device flow, then run `cx sync push <PROFILE_NAME>`.
35
+
36
+ Use `<VAULT_NAME>` for the 1Password vault that contains the `cx-*` items and `<PROFILE_NAME>` for the profile I want active, for example `gi` or `personal`.
37
+ ```
38
+
39
+ ## What the setup should produce
40
+
41
+ After setup, these files may exist:
42
+
43
+ ```text
44
+ ~/.codex/auth.json # Codex's active/live auth file
45
+ ~/.codex/accounts/<profile>.json # local named profile copies
46
+ ~/.codex/.current-account # active profile marker
47
+ ~/.codex/remote.json # 1Password sync config
48
+ ```
49
+
50
+ The package code itself is installed by npm. Credential data stays under `~/.codex` and, if enabled, in 1Password secure-note items.
51
+
52
+ ## New personal device: normal interactive flow
53
+
54
+ 1. Install prerequisites.
55
+
56
+ macOS with Homebrew:
57
+
58
+ ```bash
59
+ brew install node@22 1password-cli
60
+ npm install -g @openai/codex @ralphkrauss/codex-account-switcher
61
+ ```
62
+
63
+ Windows with PowerShell/winget:
64
+
65
+ ```powershell
66
+ winget install OpenJS.NodeJS.LTS
67
+ winget install AgileBits.1Password.CLI
68
+ npm install -g @openai/codex @ralphkrauss/codex-account-switcher
69
+ ```
70
+
71
+ Linux example:
72
+
73
+ ```bash
74
+ node --version # must be v22+
75
+ npm install -g @openai/codex @ralphkrauss/codex-account-switcher
76
+ ```
77
+
78
+ 2. Sign in to 1Password CLI locally.
79
+
80
+ ```bash
81
+ op signin
82
+ op vault list
83
+ ```
84
+
85
+ 3. Configure and pull the remote profiles.
86
+
87
+ ```bash
88
+ cx 1password setup --vault <VAULT_NAME> --pull --use <PROFILE_NAME>
89
+ ```
90
+
91
+ Example:
92
+
93
+ ```bash
94
+ cx 1password setup --vault Codex --pull --use gi
95
+ ```
96
+
97
+ 4. Verify without exposing secrets.
98
+
99
+ ```bash
100
+ cx doctor
101
+ cx 1password status
102
+ cx ls
103
+ cx run gi -- --version
104
+ ```
105
+
106
+ 5. Switch naturally after that.
107
+
108
+ ```bash
109
+ cx use gi
110
+ cx use personal
111
+ cx run gi -- exec "summarize this repo"
112
+ ```
113
+
114
+ ## First machine / bootstrapping profiles into 1Password
115
+
116
+ If 1Password does not have any `cx-*` items yet, bootstrap from a machine where Codex is already logged in.
117
+
118
+ 1. Save or create named local profiles.
119
+
120
+ If the current `~/.codex/auth.json` is the account you want to call `gi`:
121
+
122
+ ```bash
123
+ cx save gi
124
+ ```
125
+
126
+ If you need to log in a new account:
127
+
128
+ ```bash
129
+ cx login personal --device-auth
130
+ ```
131
+
132
+ 2. Configure the vault.
133
+
134
+ ```bash
135
+ cx 1password setup --vault <VAULT_NAME>
136
+ ```
137
+
138
+ 3. Push named profiles.
139
+
140
+ ```bash
141
+ cx sync push gi
142
+ cx sync push personal
143
+ # or push all local named profiles except reserved default:
144
+ cx sync push --all
145
+ ```
146
+
147
+ 4. Confirm presence only, not token contents.
148
+
149
+ ```bash
150
+ cx sync status
151
+ ```
152
+
153
+ ## Headless hosts and EC2
154
+
155
+ For a non-interactive Linux host, prefer a 1Password service account scoped only to the dedicated Codex vault.
156
+
157
+ 1. Create a 1Password service account with access only to the Codex profile vault.
158
+ 2. Store the token in a local env file with private permissions. Do this outside chat; do not paste the token to the agent.
159
+
160
+ ```bash
161
+ mkdir -p ~/.config/1password
162
+ install -m 600 /dev/null ~/.config/1password/op.env
163
+ $EDITOR ~/.config/1password/op.env
164
+ ```
165
+
166
+ File contents:
167
+
168
+ ```bash
169
+ export OP_SERVICE_ACCOUNT_TOKEN="..."
170
+ ```
171
+
172
+ 3. Source it before running `cx` commands.
173
+
174
+ ```bash
175
+ set -a
176
+ . ~/.config/1password/op.env
177
+ set +a
178
+ op vault list
179
+ cx 1password setup --vault <VAULT_NAME> --pull --use <PROFILE_NAME>
180
+ ```
181
+
182
+ If the shell is non-interactive, make sure the env file is sourced before any early `return` in shell startup files, or source it explicitly in the command that runs the agent.
183
+
184
+ ## Day-to-day commands
185
+
186
+ List local profiles:
187
+
188
+ ```bash
189
+ cx ls
190
+ ```
191
+
192
+ Switch active profile:
193
+
194
+ ```bash
195
+ cx use gi
196
+ ```
197
+
198
+ Run Codex under a profile:
199
+
200
+ ```bash
201
+ cx run gi -- exec "fix the failing tests"
202
+ ```
203
+
204
+ Login or refresh a profile, then push the refreshed token to 1Password:
205
+
206
+ ```bash
207
+ cx login personal --device-auth
208
+ cx sync push personal
209
+ ```
210
+
211
+ Pull a new remote profile:
212
+
213
+ ```bash
214
+ cx sync pull personal
215
+ ```
216
+
217
+ Pull every missing remote profile:
218
+
219
+ ```bash
220
+ cx sync pull --all
221
+ ```
222
+
223
+ Show local/remote presence without secrets:
224
+
225
+ ```bash
226
+ cx 1password status
227
+ cx sync status
228
+ ```
229
+
230
+ ## Important rules
231
+
232
+ - Sync named profiles such as `gi` and `personal`; do not sync `default`.
233
+ - `default` is reserved for Codex's live `auth.json` target on each machine.
234
+ - `cx use <profile>` chooses which named profile is active on that machine.
235
+ - Do not copy `auth.json` through chat, git, shared folders, or plain text notes.
236
+ - Do not run a fresh `cx login <profile>` on a secondary machine unless you intentionally want to rotate/replace that OAuth session. Pulling from 1Password is safer for shared profiles.
237
+ - If Codex says a session has ended, run `cx login <profile> --device-auth` and then `cx sync push <profile>`.
238
+
239
+ ## Troubleshooting
240
+
241
+ ### `cx: command not found`
242
+
243
+ Check npm's global bin directory:
244
+
245
+ ```bash
246
+ npm bin -g
247
+ npm prefix -g
248
+ ```
249
+
250
+ Make sure the global bin directory is on `PATH`, then reinstall:
251
+
252
+ ```bash
253
+ npm install -g @ralphkrauss/codex-account-switcher
254
+ ```
255
+
256
+ ### Node is too old
257
+
258
+ `cx` requires Node.js 22+:
259
+
260
+ ```bash
261
+ node --version
262
+ ```
263
+
264
+ Upgrade Node, then reinstall the global packages.
265
+
266
+ ### `op` cannot access the vault
267
+
268
+ Verify the CLI can see the vault:
269
+
270
+ ```bash
271
+ op vault list
272
+ op item list --vault <VAULT_NAME>
273
+ ```
274
+
275
+ If that fails, sign in/unlock 1Password locally or fix the service-account token/vault permissions.
276
+
277
+ ### Remote profile is shown but not local
278
+
279
+ Use either:
280
+
281
+ ```bash
282
+ cx sync pull <PROFILE_NAME>
283
+ ```
284
+
285
+ or just switch/run it; `cx` will auto-pull from the configured 1Password backend:
286
+
287
+ ```bash
288
+ cx use <PROFILE_NAME>
289
+ cx run <PROFILE_NAME> -- --version
290
+ ```
291
+
292
+ ### Local profile exists but should be replaced by 1Password
293
+
294
+ Use force deliberately:
295
+
296
+ ```bash
297
+ cx sync pull <PROFILE_NAME> --force
298
+ ```
299
+
300
+ ### Need to migrate from the old shell script
301
+
302
+ Keep credential data, remove only the sourced script/hook:
303
+
304
+ ```bash
305
+ npm install -g @ralphkrauss/codex-account-switcher
306
+ rm -f ~/.codex/codex-acct.sh
307
+ ```
308
+
309
+ Then remove the marked `.bashrc` block that sourced `~/.codex/codex-acct.sh`.
310
+
311
+ Do not delete:
312
+
313
+ ```text
314
+ ~/.codex/auth.json
315
+ ~/.codex/accounts/
316
+ ~/.codex/.current-account
317
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ralphkrauss/codex-account-switcher",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "description": "Safe multi-account auth.json switcher for the native Codex CLI.",
5
5
  "author": "Ralph Krauss <ralph@krauss.be>",
6
6
  "type": "module",
@@ -30,6 +30,7 @@
30
30
  "!dist/__tests__/",
31
31
  "!src/__tests__/",
32
32
  "README.md",
33
+ "docs/",
33
34
  "CHANGELOG.md",
34
35
  "CONTRIBUTING.md",
35
36
  "SECURITY.md",
@@ -65,5 +66,8 @@
65
66
  "@types/node": "^22.15.18",
66
67
  "typescript": "^5.9.3"
67
68
  },
68
- "packageManager": "pnpm@10.30.3"
69
+ "packageManager": "pnpm@10.30.3",
70
+ "directories": {
71
+ "doc": "docs"
72
+ }
69
73
  }