Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
11e9298
feat: integrate codex-multi-auth sync flow
ndycode Mar 7, 2026
f022bd0
fix: address PR review findings
ndycode Mar 7, 2026
3ba1717
fix: address latest review feedback
ndycode Mar 7, 2026
383fff8
fix: remediate remaining PR review findings
ndycode Mar 7, 2026
f9c8498
fix: resolve remaining review findings
ndycode Mar 7, 2026
3f9ace3
fix: close remaining review threads
ndycode Mar 7, 2026
3ec466d
fix: eliminate remaining unresolved review findings
ndycode Mar 7, 2026
48f6dbe
feat: remove sync account cap and dedupe by email
ndycode Mar 7, 2026
5524eaf
feat: organize settings menu into categories
ndycode Mar 7, 2026
cd88317
feat: add duplicate email maintenance cleanup
ndycode Mar 7, 2026
e1bde01
fix: rewrite health check frames in place
ndycode Mar 7, 2026
495869c
fix: disable live repaint renderers in opencode hosts
ndycode Mar 7, 2026
80214e6
fix: remove live progress repaint screens
ndycode Mar 7, 2026
14b521f
fix: move health check into dedicated results screen
ndycode Mar 7, 2026
3e21205
fix: clear full-screen menu before next view
ndycode Mar 7, 2026
7972811
fix: open operation screens in alternate buffer
ndycode Mar 7, 2026
daf8f4c
fix: restore loading animation in operation screens
ndycode Mar 7, 2026
e4ff2dc
fix: preserve confirmed sync prune removals
ndycode Mar 7, 2026
e4a2546
fix: harden operation screen and config writes
ndycode Mar 7, 2026
58c824a
fix: address latest review findings
ndycode Mar 7, 2026
d3f53e8
fix: close remaining review findings
ndycode Mar 7, 2026
1a7a739
fix: address latest codex review findings
ndycode Mar 7, 2026
f71cad9
fix: harden windows sync and config races
ndycode Mar 7, 2026
dcc01d2
fix: close latest index review findings
ndycode Mar 7, 2026
bbbdc6a
fix: close remaining sync and config review findings
ndycode Mar 7, 2026
26cfe32
test: cover packed ss3 selector sequences
ndycode Mar 7, 2026
edc5896
fix: close remaining sync config review findings
ndycode Mar 7, 2026
238785f
fix: move best-account dashboard action into dedicated view
ndycode Mar 7, 2026
b138073
fix: align auth dashboard flow with codex panels
ndycode Mar 7, 2026
03d48f5
fix: harden windows sync and config edge cases
ndycode Mar 7, 2026
fe52053
fix: remove remaining windows sync review blockers
ndycode Mar 7, 2026
ade9fcb
fix: close latest sync pruning review gaps
ndycode Mar 7, 2026
daca52a
fix: preserve active pointers during sync cleanup
ndycode Mar 7, 2026
c068e40
fix: preserve sync variants and active account pointers
ndycode Mar 7, 2026
1e8b5ae
fix: harden sync maintenance flows
ndycode Mar 7, 2026
182a9ea
fix: resolve worktree sync regressions
ndycode Mar 7, 2026
3bff548
fix: harden sync cleanup and prune restore
ndycode Mar 7, 2026
9f58645
fix: tighten windows sync and config safety
ndycode Mar 7, 2026
8e4faa9
fix: make config lock retries non-blocking
ndycode Mar 7, 2026
6f01257
docs: align account capacity note with runtime
ndycode Mar 7, 2026
c6aa197
fix: close remaining sync review blockers
ndycode Mar 7, 2026
2a30ade
fix: clear remaining review blockers
ndycode Mar 8, 2026
8857215
fix: address new review follow-ups
ndycode Mar 8, 2026
22c87d4
fix: address greptile review blockers
ndycode Mar 8, 2026
9de6073
fix: address remaining greptile findings
ndycode Mar 8, 2026
5610e87
fix: resolve remaining pr69 review findings
ndycode Mar 8, 2026
4d5032b
docs: add codex-doctor install note
ndycode Mar 8, 2026
0679ca2
fix: harden sync and maintenance race paths
ndycode Mar 8, 2026
61de1dc
fix: harden codex sync preview and path handling
ndycode Mar 8, 2026
b9ef0b9
test: cover codex sync preview and overlap regressions
ndycode Mar 8, 2026
21df23f
fix: align preview and config lock cleanup
ndycode Mar 8, 2026
e55d0af
test: cover preview snapshot and stale lock sweep
ndycode Mar 8, 2026
d092d58
fix: harden sync cleanup reporting
ndycode Mar 8, 2026
5558941
fix: close final greptile review gaps
ndycode Mar 8, 2026
26d0649
fix: restore sync prune state on cancellation
ndycode Mar 8, 2026
e3863b2
fix: harden plugin config lock recovery
ndycode Mar 8, 2026
94664fe
fix: improve interactive fallback handling
ndycode Mar 8, 2026
865fbfd
test: tighten storage and path regressions
ndycode Mar 8, 2026
c611cca
fix: close sync flow review gaps
ndycode Mar 8, 2026
e10a481
test: enforce windows legacy key prefix
ndycode Mar 8, 2026
3f2abb7
fix: harden fallback destructive auth flows
ndycode Mar 8, 2026
ed1b168
fix: tighten review follow-up regressions
ndycode Mar 8, 2026
94e6f63
fix: close final greptile blockers
ndycode Mar 8, 2026
3d1a0b9
fix: tighten windows sync diagnostics
ndycode Mar 8, 2026
0a18165
fix: close remaining review comments
ndycode Mar 8, 2026
bdf51ab
fix: harden greptile retry blockers
ndycode Mar 9, 2026
5efeede
fix: tighten codex sync safety guards
ndycode Mar 9, 2026
5f484b0
fix: close remaining greptile gaps
ndycode Mar 9, 2026
415330f
fix: address latest greptile blockers
ndycode Mar 9, 2026
575eee7
fix: transaction-wrap account switching
ndycode Mar 9, 2026
ee903b0
fix: stop retrying non-retryable sync cleanup errors
ndycode Mar 9, 2026
848d1b6
fix: harden prune backup rollback safety
ndycode Mar 9, 2026
8ff0a6d
fix: log overlap cleanup lock fallbacks
ndycode Mar 9, 2026
c9618d5
fix: cap sync prune retries and cover token gates
ndycode Mar 9, 2026
f4497ec
fix: retry stale sync temp cleanup on windows locks
ndycode Mar 9, 2026
a555251
test: cover prune restore retries and tty flows
ndycode Mar 9, 2026
23aa317
test: restore terminal row state in interactive helpers
ndycode Mar 10, 2026
09bfa10
fix: restore health-check account guard
ndycode Mar 9, 2026
e298c16
fix: close remaining 3-5 blockers
ndycode Mar 10, 2026
9bcb775
fix: close latest greptile issues
ndycode Mar 10, 2026
642d37d
fix: harden sync prune storage and temp cleanup
ndycode Mar 10, 2026
76464f0
merge: resolve main conflict for pr69
ndycode Mar 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 28 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ OAuth plugin for OpenCode that lets you use ChatGPT Plus/Pro rate limits with mo
## What You Get

- **GPT-5.4, GPT-5 Codex, GPT-5.1 Codex Max** and all GPT-5.x variants via ChatGPT OAuth
- **Multi-account support** — Add up to 20 ChatGPT accounts, health-aware rotation with automatic failover
- **Multi-account support** — Add as many ChatGPT accounts as you need, health-aware rotation with automatic failover
- **Per-project accounts** — Each project gets its own account storage (new in v4.10.0)
- **Workspace-aware identity persistence** — Keeps workspace/org identity stable across token refresh and verify-flagged restore flows
- **Click-to-switch** — Switch accounts directly from the OpenCode TUI
Expand Down Expand Up @@ -68,6 +68,8 @@ npx -y oc-chatgpt-multi-auth@latest

This writes the config to `~/.config/opencode/opencode.json`, backs up existing config, and clears the plugin cache.

After install, run `codex-doctor` once to confirm your local auth and account health are ready.

> Want legacy config (OpenCode v1.0.209 and below)? Add `--legacy` flag.

**Option C: Manual setup**
Expand Down Expand Up @@ -275,7 +277,7 @@ For legacy OpenCode (v1.0.209 and below), use `config/opencode-legacy.json` whic

## Multi-Account Setup

Add multiple ChatGPT accounts for higher combined quotas. The plugin uses **health-aware rotation** with automatic failover and supports up to 20 accounts.
Add multiple ChatGPT accounts for higher combined quotas. The plugin uses **health-aware rotation** with automatic failover and supports unlimited accounts.

```bash
opencode auth login # Run again to add more accounts
Expand Down Expand Up @@ -836,6 +838,30 @@ Create `~/.opencode/openai-codex-auth-config.json` for optional settings:
| `toastDurationMs` | `5000` | How long toast notifications stay visible (ms) |
| `beginnerSafeMode` | `false` | Beginner-safe retry profile: conservative retry budget, disables all-accounts wait/retry, and caps all-accounts retries |

### Experimental Settings

The auth dashboard now includes `Experimental settings` with a manual sync option for `codex-multi-auth`.

Persist the toggle in `~/.opencode/openai-codex-auth-config.json`:

```json
{
"experimental": {
"syncFromCodexMultiAuth": {
"enabled": true
}
}
}
```

When enabled, `Sync now` will auto-discover a `codex-multi-auth` account store from:
- `CODEX_MULTI_AUTH_DIR`
- `CODEX_HOME/multi-auth`
- `~/DevTools/config/codex/multi-auth`
- `~/.codex/multi-auth`

It previews import impact first and skips duplicate overlaps using the existing dedupe-aware import flow.

### Retry Behavior

| Option | Default | What It Does |
Expand Down
20 changes: 20 additions & 0 deletions docs/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,26 @@ The sample above intentionally sets `"retryAllAccountsMaxRetries": 3` as a bound
| `fetchTimeoutMs` | `60000` | upstream fetch timeout in ms |
| `streamStallTimeoutMs` | `45000` | max time to wait for next SSE chunk before aborting |

### Experimental Settings

Enable manual sync from `codex-multi-auth`:

```json
{
"experimental": {
"syncFromCodexMultiAuth": {
"enabled": true
}
}
}
```

When enabled, the auth dashboard can discover `codex-multi-auth` storage from:
- `CODEX_MULTI_AUTH_DIR`
- `CODEX_HOME/multi-auth`
- `~/DevTools/config/codex/multi-auth`
- `~/.codex/multi-auth`

### beginner safe mode behavior

when `beginnerSafeMode` is enabled (`true` or `CODEX_AUTH_BEGINNER_SAFE_MODE=1`), the plugin applies a safer retry profile automatically:
Expand Down
Loading