You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 77f0f0a
Browse filesBrowse the repository at this point in the historyBrowse files
pavelhov
authored
Merge pull request #16 from pavelhov/codex/macos-first-run-bootstrap
Copy file name to clipboardExpand all lines: README.md
+33-6Lines changed: 33 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,7 @@ Two commands, and every one of them runs any LLM you point it at.</p>
5
5
```bash
6
6
bun install
7
7
bun run build:gui
8
+
bun run src/cli/index.ts init
8
9
bun run src/cli/index.ts start
9
10
```
10
11
@@ -34,6 +35,7 @@ account while existing threads stay pinned to the account that started them.
34
35
```bash
35
36
bun install
36
37
bun run build:gui
38
+
bun run src/cli/index.ts init
37
39
bun run src/cli/index.ts start # or use `service` instead of `start`
38
40
```
39
41
@@ -71,13 +73,29 @@ This preview requires macOS 13 or later. It is ad-hoc signed and not notarized y
71
73
3. If macOS still blocks it, open **System Settings → Privacy & Security** and choose **Open
72
74
Anyway**. Do not disable Gatekeeper. See [Apple's instructions](https://support.apple.com/guide/mac-help/open-a-mac-app-from-an-unknown-developer-mh40616/mac).
73
75
76
+
On a fresh Mac, a direct app launch creates CodexCommander's secret-free ChatGPT passthrough default
77
+
automatically. If Codex has not created `~/.codex/config.toml` yet, the proxy and dashboard still start
78
+
while Codex remains native; open Codex once, then choose **Route Codex Through Proxy** from the menu.
79
+
The app never creates Codex configuration automatically. Existing valid, invalid, unreadable, or
80
+
unsafe CodexCommander configuration is preserved and is never overwritten; repair an invalid or
81
+
inaccessible configuration before trying again. Providers, API keys, and OAuth accounts are not copied
82
+
from another Mac. Public distribution uses the universal release archive above, not the thin
83
+
development `.app` produced by a source checkout.
84
+
85
+
Applications and `~/Applications` support **Launch at Login**. A copy launched from Desktop or
86
+
Downloads is allowed to run for the current session, but the app shows neutral guidance to move it to
87
+
Applications for login startup. Quit CodexCommander before moving a running app, then reopen it from
88
+
its new location; the app never moves itself. If macOS launches the app through App Translocation,
89
+
**Start** is blocked before the proxy launches: move the app and reopen it. These location rules do not
90
+
change the ad-hoc Gatekeeper steps above.
91
+
74
92
<palign="center">
75
93
<imgsrc="docs-site/public/macos-menu-bar.png"alt="CodexCommander macOS menu bar companion showing a confirmed Codex route, a live request, provider quotas, and proxy controls"width="387">
76
94
</p>
77
95
78
96
| Action | What it does |
79
97
|---|---|
80
-
|**Start Proxy**| Starts or attaches to the proxy, then routes Codex through it. |
98
+
|**Start Proxy**| Starts or attaches to the proxy, then routes Codex through it when Codex configuration exists; on a fresh missing-Codex start, leaves Codex native and shows setup guidance. |
81
99
|**Restore Native Codex**| Switches only Codex back to OpenAI; the proxy keeps running. |
82
100
|**Route Codex Through Proxy**| Switches only the Codex route to the already-running proxy. |
83
101
|**Stop Proxy… / Restart Proxy…**| Restores native routing before stopping; Restart then starts and routes back. |
@@ -120,10 +138,13 @@ Codex tasks, history, or authentication, and it does not require a repair comman
120
138
database. Generated catalogs and caches may remain on disk, but native Codex no longer references
121
139
them.
122
140
123
-
On its first launch, the app enables **Launch at Login** so the menu icon returns after sign-in.
124
-
On every new manual or Login Item launch, the app performs an explicit **Start**: it starts or
125
-
attaches to the proxy, then routes managed Codex through it. An external user-managed Codex provider
126
-
is preserved. The startup row exposes the actual mode: **Desktop**
141
+
On its first launch from **Applications**, `~/Applications`, or the supported source-build location,
142
+
the app enables **Launch at Login** so the menu icon returns after sign-in. A Desktop or Downloads copy
143
+
may run for the current session but is not eligible for login startup. On every new manual or Login Item
144
+
launch, the app performs an explicit **Start**: it starts or attaches to the proxy, then routes managed
145
+
Codex through it when Codex configuration exists. If Codex has not created its config yet, the proxy and
146
+
dashboard still run with Codex native and the app shows setup guidance to open Codex once, then choose
147
+
**Route Codex Through Proxy**. An external user-managed Codex provider is preserved. The startup row exposes the actual mode: **Desktop**
127
148
performs this app-managed start, **Headless** leaves only an installed background service at login,
128
149
and **Off** starts neither automatically. Rebuilt source apps refresh their login registration in
129
150
place; they are never copied into Application Support. Full
@@ -140,8 +161,8 @@ rewrites OpenCode config files. For plain OpenCode or the Desktop app, use the d
140
161
### For agents
141
162
142
163
```bash
143
-
bun run src/cli/index.ts start # or use `service`
144
164
bun run src/cli/index.ts init # interactive setup: writes config; can route through a proven live proxy
165
+
bun run src/cli/index.ts start # or use `service`, after init
145
166
```
146
167
147
168
`ccx init` never starts the proxy. If a current-home proxy is already running and its protected
@@ -150,6 +171,12 @@ until an explicit `ccx start`. Headless commands like `ccx provider add` and `cc
150
171
the **live** proxy and exit nonzero when it is unreachable. `ccx status` / `ccx doctor` / `ccx
151
172
health` report the running state.
152
173
174
+
The source/headless path requires `ccx init` (or the equivalent `bun run src/cli/index.ts init`) to
175
+
create CodexCommander's configuration before ordinary CLI starts. Ordinary CLI startup does not own
176
+
the macOS app's automatic bootstrap and refuses a missing configuration; it never creates a Codex
177
+
config or a hand-written JSON substitute. Existing Codex configuration, including an external provider,
178
+
is left untouched unless you explicitly choose a CodexCommander route.
0 commit comments