@minhspark/codex-mcp-bridge 1.25.2 → 1.26.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.
Files changed (50) hide show
  1. package/.codex-plugin/plugin.json +1 -1
  2. package/CHANGELOG.md +58 -0
  3. package/README.md +81 -32
  4. package/docs/new-macos-setup.md +47 -21
  5. package/docs/new-windows-setup.md +34 -9
  6. package/docs/project-onboarding.md +21 -8
  7. package/package.json +2 -1
  8. package/plugin.json +1 -1
  9. package/scripts/background-relay-hidden.vbs +11 -0
  10. package/scripts/install-antigravity-bridge.mjs +65 -23
  11. package/scripts/install-background-relay.mjs +428 -0
  12. package/scripts/install-claude-code.mjs +2 -2
  13. package/scripts/install-claude-desktop.mjs +12 -7
  14. package/scripts/install-native-relay.mjs +2 -2
  15. package/scripts/setup-background-relay.mjs +58 -0
  16. package/scripts/setup.mjs +3 -3
  17. package/scripts/worker-relay.mjs +41 -0
  18. package/src/antigravity-bridge.mjs +96 -27
  19. package/src/antigravity-cli.mjs +13 -2
  20. package/src/antigravity-deliveries.mjs +32 -8
  21. package/src/antigravity-ipc.mjs +18 -9
  22. package/src/antigravity-outbound-bridge.mjs +71 -23
  23. package/src/antigravity-outbound-targets.mjs +100 -10
  24. package/src/background-antigravity-worker.mjs +192 -0
  25. package/src/background-claude-worker.mjs +240 -0
  26. package/src/background-codex-worker.mjs +344 -0
  27. package/src/background-relay-client.mjs +107 -0
  28. package/src/background-relay-config.mjs +98 -0
  29. package/src/background-relay-daemon.mjs +60 -0
  30. package/src/background-relay-mcp.mjs +45 -0
  31. package/src/background-relay-protocol.mjs +54 -0
  32. package/src/background-relay-registration.mjs +198 -0
  33. package/src/background-relay-service.mjs +311 -0
  34. package/src/background-relay-storage.mjs +203 -0
  35. package/src/background-relay-storage.ps1 +64 -0
  36. package/src/background-relay.mjs +373 -0
  37. package/src/bridge-readiness.mjs +2 -2
  38. package/src/claude-bridge.mjs +43 -25
  39. package/src/claude-code-registration.mjs +2 -1
  40. package/src/claude-session-router.mjs +8 -15
  41. package/src/index.mjs +39 -22
  42. package/src/mcp-supervisor.mjs +26 -16
  43. package/src/native-relay-companion.mjs +4 -1
  44. package/src/native-relay.mjs +5 -1
  45. package/src/peer-protocol.mjs +9 -6
  46. package/src/recipient-preflight.mjs +81 -0
  47. package/src/reload-control.mjs +2 -2
  48. package/src/setup.mjs +62 -25
  49. package/src/thread-delivery.mjs +10 -5
  50. package/src/windows-pipe-acl.ps1 +1 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-mcp-bridge",
3
- "version": "1.25.2",
3
+ "version": "1.26.0",
4
4
  "description": "Connect ChatGPT to your own Codex Desktop projects and conversations.",
5
5
  "author": {
6
6
  "name": "Bui Dang Minh"
package/CHANGELOG.md CHANGED
@@ -4,6 +4,64 @@ Follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and [SemVer](ht
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [1.26.0] - 2026-11-01
8
+
9
+ ### Upgrade
10
+
11
+ The same single command updates the package, reapplies managed client settings and configures the independent background service:
12
+
13
+ ```sh
14
+ npm install -g @minhspark/codex-mcp-bridge@latest --allow-scripts=@minhspark/codex-mcp-bridge --foreground-scripts
15
+ ```
16
+
17
+ Use `npm.cmd` in Windows PowerShell. Setup applies the managed client registrations, background startup and scoped worker communication settings, including Antigravity's four relay tool grants. CLI authentication and explicit project grants remain separate from installing configuration; no Desktop credentials are copied and no existing denials are removed. Setup supplies a missing Codex CLI; Claude Code and `agy` must be installed separately when those workers are needed.
18
+
19
+ ### Added
20
+
21
+ - An independent per-user relay and separate Codex, Claude and Antigravity CLI workers, supporting all six worker-to-worker directions. Background jobs and cross-worker messages can continue without a responsive Desktop host. Native conversations retain their existing native routing and are never silently replaced by worker sessions.
22
+ - Durable job receipts, authenticated local transport, same-project delegation, bounded queues and delegation depth, and persistent diagnostic reports. Interrupted sends stay unknown; only proven queued work resumes after daemon restart.
23
+ - Background worker status, discovery, send and receipt tools plus the `worker-relay` command. Service readiness, CLI authentication and model execution evidence are reported separately.
24
+ - Managed background startup and recovery on Windows, macOS and Linux, with hidden Windows launches and idle adoption of updated service code. Setup preserves disabled services and reports pending activation honestly.
25
+
26
+ ### Fixed
27
+
28
+ - Antigravity MCP registrations use managed supervisors so future package updates can replace idle workers without reconnecting the host. Live CLI sessions and unconfirmed deliveries defer reload; crashed operations are never replayed.
29
+ - Worker CLI launches isolate their session identity from native Desktop chats. Claude worker launches suppress optional user/plugin startup hooks without changing authentication or permission policy.
30
+ - Antigravity worker discovery accepts the CLI's native MCP dispatcher when initialization does not enumerate individual server tools. Dispatcher availability is reported separately from verified relay-tool discovery; missing relay tools and permission failures still produce typed diagnostics.
31
+
32
+ ### Validation and limits
33
+
34
+ - Live Windows checks completed all six directions between Codex, Claude and Antigravity workers with Antigravity CLI 1.4.12. A saturated delegation returned `WORKER_DELEGATION_CAPACITY` with `not_sent` instead of queuing behind waiting workers.
35
+ - Closed or frozen Desktop apps do not host these workers. A frozen UI cannot accept new user input or display results until it responds; a terminal's `worker-relay` command or another responsive MCP client can submit authorized background work and read receipts.
36
+ - Execution still requires a running operating system and per-user service, installed and authenticated provider CLIs, an authorized project, network/provider availability, quota and effective tool permissions. Saved configuration is not a guarantee of readiness or a live verification result on another machine.
37
+
38
+ ## [1.25.3] - 2026-11-01
39
+
40
+ ### Upgrade
41
+
42
+ One command updates the package and reapplies managed settings for all clients:
43
+
44
+ ```sh
45
+ npm install -g @minhspark/codex-mcp-bridge@latest --allow-scripts=@minhspark/codex-mcp-bridge --foreground-scripts
46
+ ```
47
+
48
+ On Windows PowerShell use `npm.cmd` in place of `npm`. Setup reports saved configuration separately from live host readiness and never opens apps or chats to load a relay.
49
+
50
+ ### Fixed
51
+
52
+ - Normal Codex task creation and delivery no longer navigate or activate the Desktop window by default, including on Windows. Explicit `openInApp: true` remains available. Comprehensive install/update migrates historical automatic navigation settings to the silent default.
53
+ - The native relay refuses navigation to its internal executor, which has no user conversation history and must not be opened as a task.
54
+ - Claude endpoint rediscovery from Codex and Antigravity no longer opens apps or saved chats to load a relay. A dormant native task reports `CLAUDE_SESSION_NOT_READY` with `sent: false`; an endpoint that becomes available is revalidated against the current account, process, directory and native permission policy.
55
+ - Antigravity inbound MCP instructions now describe the existing outbound `agent-bridge` instead of incorrectly claiming that Antigravity cannot send to Codex or Claude. Status reports distinguish supported Desktop routes from unverified outbound readiness and retain the CLI and automatic-reply-forwarding limits.
56
+ - An unreachable Antigravity sidecar now reports a connectivity problem without assuming the App is closed, and points callers to the sidecar diagnostics when the App is already running.
57
+ - Relay and tool failures include a readable diagnostic block and structured report with the exact error/cause codes, operation, phase, bridge/Node/platform versions, UTC time, report ID and safe request identifiers. Credential and private-path redaction applies to the report block. Uncertain sends remain uncertain and are never automatically replayed.
58
+ - Antigravity IPC and durable delivery records preserve original failure codes and reports; failed or unknown receipt reads are surfaced as errors instead of successful-looking results. Supervisor crashes distinguish in-flight unknown delivery from a new request refused before dispatch.
59
+ - The same one-command npm install/update applies managed settings for all clients, shows setup progress, and fails if configuration is incomplete. It enables supported native background preferences without changing accounts or permissions and distinguishes saved configuration from unverified running-client activation.
60
+
61
+ ### Limitations
62
+
63
+ - Background delivery still requires the native host process and its loaded bridge. Closing a window can retain these processes; fully quitting a native host cannot provide an always-ready endpoint. An unloaded Codex MCP or dormant Claude Code process has no supported silent cold-start path in this bridge. Recovery never opens old, new, empty or failed chats, uses Computer Use, or launches a substitute CLI/app-server.
64
+
7
65
  ## [1.25.2] - 2026-10-31
8
66
 
9
67
  ### Fixed
package/README.md CHANGED
@@ -15,33 +15,53 @@
15
15
  <a href="LICENSE"><img src="https://img.shields.io/npm/l/@minhspark/codex-mcp-bridge" height="20" alt="license" /></a>
16
16
  </p>
17
17
 
18
- Connect **Claude, Codex, and Antigravity** through MCP, keeping work in each agent's own app and preserving native identity and permission checks. Supports Windows, macOS, and Linux; native Desktop integration supports Windows and macOS.
18
+ Connect **Claude, Codex, and Antigravity** through MCP using native Desktop handoffs or independent CLI background workers. Native handoffs preserve each app's conversation identity and permission checks; workers have separate sessions and enforce provider permissions and project authorization. Supports Windows, macOS, and Linux; native Desktop integration supports Windows and macOS.
19
19
 
20
- The optional **Antigravity bridge** sends work both ways between existing Desktop conversations in the same project. Codex and Claude can also start and continue bridge-owned Antigravity CLI streaming sessions. Antigravity App replies remain in the App; outbound calls from Antigravity CLI are not supported. [Setup and current limits](#antigravity-app-and-cli).
20
+ The **background worker relay** supports all six directions between Codex, Claude and Antigravity CLI workers, independently of Desktop responsiveness. The optional **native Antigravity bridge** connects existing Desktop conversations in the same project and offers separate bridge-owned CLI streaming sessions. Native App replies remain in the App. [Background workers](#independent-background-workers) · [Antigravity native and streaming-session limits](#antigravity-app-and-cli).
21
21
 
22
22
  https://github.com/user-attachments/assets/98b23989-826f-4d7d-9dcb-ad7dd2739095
23
23
 
24
24
  ## Installation
25
25
 
26
- One global npm command installs the package and configures the local Claude, Codex, and Antigravity bridges. Install and sign in to the apps you intend to use first. Setup preserves existing project restrictions and custom settings; it does not sign in, grant workspace trust, change permission modes, or restart running apps.
26
+ One global npm command installs the package, configures the local Claude, Codex and Antigravity bridges, and installs the independent worker relay. Native handoffs require the selected Desktop apps; background work requires the selected provider CLIs and their own authentication. Setup preserves existing project restrictions and custom settings; it does not sign in, grant workspace trust, change permission modes, or restart running apps.
27
27
 
28
28
  ### Package — npm
29
29
 
30
30
  **macOS / Linux / WSL**
31
31
 
32
32
  ```bash
33
- npm install -g @minhspark/codex-mcp-bridge@latest --allow-scripts=@minhspark/codex-mcp-bridge
33
+ npm install -g @minhspark/codex-mcp-bridge@latest --allow-scripts=@minhspark/codex-mcp-bridge --foreground-scripts
34
34
  ```
35
35
 
36
36
  **Windows PowerShell**
37
37
 
38
38
  ```powershell
39
- npm.cmd install -g @minhspark/codex-mcp-bridge@latest --allow-scripts=@minhspark/codex-mcp-bridge
39
+ npm.cmd install -g @minhspark/codex-mcp-bridge@latest --allow-scripts=@minhspark/codex-mcp-bridge --foreground-scripts
40
40
  ```
41
41
 
42
- Requires **Node.js 22.13+**. Use `.cmd` for this package's commands in Windows PowerShell. Run the same command to update. The global install runs setup automatically and verifies the saved registrations. If a native Codex CLI is missing, setup installs a pinned official `@openai/codex` package in the current user's `~/.config/GptClaudeBridge/tools` (or the corresponding `XDG_CONFIG_HOME` path); no separate CLI install command is needed.
42
+ Requires **Node.js 22.13+**. Use `.cmd` for this package's commands in Windows PowerShell. **Every release uses this same single install/update command.** It updates the package, applies the managed bridge settings across Claude, Codex and Antigravity, configures the independent background worker relay, and verifies saved registrations and service activation separately. Comprehensive setup migrates historical automatic Codex navigation to `CODEX_BRIDGE_OPEN_IN_APP=0`, enables Claude's native background preference and updates Antigravity's existing Windows background preference where supported. Accounts, project grants, unrelated custom registrations and existing permission denials remain unchanged. Setup adds only the four worker-relay communication grants required by headless Antigravity; it does not enable broad permission bypasses. If a native Codex CLI is missing, setup installs a pinned official `@openai/codex` package in the current user's `~/.config/GptClaudeBridge/tools` (or the corresponding `XDG_CONFIG_HOME` path); no separate CLI install command is needed.
43
43
 
44
- `--allow-scripts=@minhspark/codex-mcp-bridge` authorizes only this package's setup hook. npm versions that block install scripts by default need this flag; a plain install works only when the hook is allowed. Add `--foreground-scripts` to the command to see setup progress because npm may hide lifecycle output. If npm prints `1 package had install scripts blocked`, rerun the recommended command or run `codex-bridge-setup` explicitly.
44
+ ### Independent background workers
45
+
46
+ `worker_status`, `list_workers`, `send_to_worker` and `read_worker_delivery` address separate Codex, Claude and Antigravity CLI workers. The `worker-relay` command provides status, list, send and receipt-read operations from a terminal. All six worker directions are supported: Codex ↔ Claude, Codex ↔ Antigravity and Claude ↔ Antigravity. A native handoff still addresses its original native task; an uncertain native send is never silently replayed through a CLI worker.
47
+
48
+ The service and worker processes run independently of Desktop hosts. Submitted background jobs and worker-to-worker communication can continue while those apps are closed or frozen. A frozen window cannot accept new user input or display new results until it responds again. Submit authorized background work or inspect its receipts through `worker-relay` in a terminal or another responsive MCP client; this does not repair or reopen the frozen UI.
49
+
50
+ The operating system and per-user service must be running, the selected CLI must be installed and authenticated, and the project must be authorized. Provider access, network connectivity, quota and tool permissions still apply. Setup supplies a missing Codex CLI; install Claude Code and `agy` separately when those workers are needed. Sleep, shutdown, a disabled service or a provider failure can prevent execution.
51
+
52
+ `authentication-unverified` with `canAcceptWork: true` is an informational state for a CLI without a supported authentication probe. It is not an authentication failure. Actual failed jobs have a durable diagnostic receipt. Keep the original request ID when inspecting or retrying an uncertain submission; after a terminal `failed` receipt confirms `not_sent`, fix the reported cause before creating a new authorized request.
53
+
54
+ The package update configures per-user startup: Task Scheduler on Windows, a LaunchAgent on macOS and a systemd user service on Linux. It starts the service without opening apps or chats, preserves intentional disabled choices, and drains active jobs before adopting updated code. `worker-relay status` reports transport availability, provider authentication checks and recent errors separately. A saved configuration is not proof of live activation or model access.
55
+
56
+ CLI authentication is separate from Desktop sign-in. Workers use each provider's official credential handling; the bridge does not copy Desktop tokens. Codex and Claude use ephemeral CLI sessions. Antigravity starts a fresh CLI-owned conversation and never resumes a Desktop conversation; its CLI may retain history according to provider behavior and uses its shared MCP inventory. Setup preserves other MCP entries and effective provider permissions. No worker opens or navigates that history.
57
+
58
+ Background dispatch uses the existing shared project-policy file. Select a project explicitly with `bridge-projects allow-project <absolute-project-path>` if it is not already authorized; updates preserve grants and revocations. Each child delegation stays in the same canonical project. Existing provider permissions remain enforced, including denials that prevent unattended execution.
59
+
60
+ Keep the same request UUID for retries and read its durable receipt. Queued work can survive relay restarts; work that might already have reached a worker is marked unknown and is never replayed automatically. Failure reports remain readable after the original window closes, with error/cause codes, delivery certainty and report IDs. Errors from tool calls appear in their Claude/Codex/Antigravity tool results; this package does not create a separate Desktop popup or reopen a chat to show them.
61
+
62
+ Worker delegation is bounded. `WORKER_DELEGATION_CAPACITY` means the destination has no free execution slot and that delegation was not sent or queued behind waiting workers. Inspect or finish existing delegated work before retrying the same unsent request. Queue and delegation limits are reported explicitly.
63
+
64
+ `--allow-scripts=@minhspark/codex-mcp-bridge` authorizes only this package's setup hook. npm versions that block install scripts by default need this flag; a plain install works only when the hook is allowed. `--foreground-scripts` displays configuration progress and failures that npm otherwise hides. If npm prints `1 package had install scripts blocked`, rerun the recommended command or run `codex-bridge-setup` explicitly.
45
65
 
46
66
  | Client | Installed entry | Purpose |
47
67
  | --- | --- | --- |
@@ -51,20 +71,21 @@ Requires **Node.js 22.13+**. Use `.cmd` for this package's commands in Windows P
51
71
  | Codex Desktop, Windows/macOS | `codex-native-relay` | Native delivery, pipe forwarding, and relay executor bootstrap |
52
72
  | Codex and Claude Code | `antigravity-bridge` | Send to Antigravity App or bridge-owned CLI sessions |
53
73
  | Antigravity | `agent-bridge` and `codex-bridge` sidecar | Outbound agent messages and native App connectivity |
74
+ | Independent CLI workers | `worker-relay` | Authorized background jobs and all six worker-to-worker directions |
54
75
 
55
- After setup, open or reconnect the affected apps after active work finishes. For native Claude-to-Codex handoffs, use Claude Desktop's **Code tab** and the same local project saved in Codex Desktop. The shared `codex-bridge-desktop` connector has its own legacy route; it does not establish a native Code sender identity. Saved configuration is not proof of a live connection. Complete [verification](#verify-the-installation) in the actual clients.
76
+ For native Claude-to-Codex handoffs, use an existing native Claude **Code** session and the same local project saved in Codex Desktop. The shared `codex-bridge-desktop` connector has its own legacy route; it does not establish a native Code sender identity. Setup applies saved configuration without opening or restarting apps. Saved configuration is not proof of a live connection; available supervisors reload compatible workers when idle. Complete [verification](#verify-the-installation) with the tools already available in the actual clients. If a native host is unloaded, report the diagnostic instead of opening chats to load a relay.
56
77
 
57
78
  Automatic setup runs only for a **global npm install**. Local `npm install` and `npm ci` do not change app settings. Set `CODEX_BRIDGE_SKIP_SETUP=1`, or pass `--ignore-scripts`, to install the package without configuring apps. The optional [workflow skill](#workflow-skill--npx-skills), VS Code preview, and hosted ChatGPT pairing retain their separate setup steps.
58
79
 
59
80
  ### Setup recovery and checks
60
81
 
61
- If an app configuration step fails, the npm install retains the package and its commands so setup can be repaired. A successful npm exit alone does not mean all registrations are configured. If setup reports an incomplete component, correct its reported issue and rerun:
82
+ If an app configuration step fails, setup and the global install return a nonzero exit with the failing component. Correct its reported issue and rerun the update command above, or rerun configuration on an existing installation:
62
83
 
63
84
  ```bash
64
85
  codex-bridge-setup
65
86
  ```
66
87
 
67
- On Windows use `codex-bridge-setup.cmd`. `codex-mcp-bridge setup` is an equivalent entry point. Repeated setup keeps existing settings and reports conflicts rather than overwriting unrelated registrations.
88
+ On Windows use `codex-bridge-setup.cmd`. `codex-mcp-bridge setup` is an equivalent entry point. Repeated setup reapplies managed bridge settings and reports conflicts rather than overwriting unrelated registrations. `configured: true` confirms saved configuration; `liveVerified: false` means running clients have not been verified to load it. Setup never opens an app or chat, uses Computer Use, or interrupts active work to load a relay. Missing or unsupported native background preferences are reported separately.
68
89
 
69
90
  ```bash
70
91
  codex-bridge-setup --check
@@ -99,18 +120,19 @@ Run `codex-bridge-setup` after installing through Homebrew. The installers recor
99
120
  | Codex → Claude Desktop Code | Automatic `claude-bridge` registration |
100
121
  | Codex / Claude Desktop Code → Antigravity App or CLI | Automatic Antigravity registrations |
101
122
  | Antigravity App → Codex / Claude Desktop Code | Automatic outbound registration and sidecar |
123
+ | Codex ↔ Claude ↔ Antigravity CLI workers | Automatic independent relay setup; provider CLIs, authentication and project grants required |
102
124
  | Claude Code ↔ Codex inside VS Code | Separate Windows preview registrations below |
103
125
  | ChatGPT → paired Codex Desktop | Hosted plugin plus `codex-sites-connector --pair` |
104
126
 
105
127
  ### Antigravity App and CLI
106
128
 
107
- The global npm setup registers all Antigravity components. Install and sign in to the Antigravity App and/or `agy` CLI to use them. The following commands are optional for selective manual setup or repair:
129
+ The global npm setup registers all Antigravity components, including the independent `worker-relay` MCP entry and its four scoped CLI communication grants. Install and sign in to the Antigravity App for native conversations or the `agy` CLI for CLI work. The following commands configure only the native bridge and its legacy streaming-session tools; use the global setup above to configure the independent worker service as well:
108
130
 
109
131
  ```bash
110
132
  antigravity-mcp-bridge-install --all
111
133
  ```
112
134
 
113
- **Windows PowerShell — all components**
135
+ **Windows PowerShell — all native bridge components**
114
136
 
115
137
  ```powershell
116
138
  antigravity-mcp-bridge-install.cmd --all
@@ -140,28 +162,30 @@ antigravity-mcp-bridge-install --desktop
140
162
  antigravity-mcp-bridge-install --all --dry-run
141
163
  ```
142
164
 
143
- Use `.cmd` for each command on Windows. `--all` includes all three components; the individual commands are alternatives when only some clients are needed. The installer preserves unrelated configuration and native permissions. Reload Codex/Claude to load the new MCP server. Antigravity launches its own sidecar from `~/.gemini/config/sidecars/codex-bridge/sidecar.json`; do not run that sidecar manually or copy authentication environment variables between processes.
165
+ Use `.cmd` for each command on Windows. `--all` includes the Codex, Claude and Antigravity native bridge components; the individual commands are alternatives when only some clients are needed. The installer preserves unrelated configuration and native permissions. Managed MCP supervisors adopt compatible updates when idle; an old direct process remains on its loaded version until the host reconnects normally. No app or chat is opened to force readiness. Antigravity launches its own sidecar from `~/.gemini/config/sidecars/codex-bridge/sidecar.json`; do not run that sidecar manually or copy authentication environment variables between processes.
144
166
 
145
- The `agy` CLI must be installed and signed in separately. CLI sessions are started through the `start_antigravity_cli_session` MCP tool; there is no separate `--cli` installer flag. Set `ANTIGRAVITY_CLI_BIN` to the absolute `agy` executable path in the MCP server environment if automatic discovery cannot find it.
167
+ The `agy` CLI must be installed and signed in separately. The legacy `start_antigravity_cli_session` tool creates streaming sessions owned by the calling bridge process; independent background work instead uses `send_to_worker` with `agent: "antigravity"`. There is no separate `--cli` installer flag. Set `ANTIGRAVITY_CLI_BIN` to the absolute `agy` executable path in the MCP server environment if automatic discovery cannot find it.
146
168
 
147
169
  | Tool | Behavior |
148
170
  | --- | --- |
149
- | `antigravity_bridge_status` | Reports native sidecar connectivity and CLI capabilities. |
171
+ | `antigravity_bridge_status` | Reports native sidecar connectivity, CLI capabilities, and the separate outbound Desktop route. Outbound readiness requires `agent_bridge_status` inside Antigravity. |
150
172
  | `list_antigravity_conversations` | Lists the selected surface in the verified sender's exact project directory. |
151
173
  | `send_to_antigravity_conversation` | Sends to an exact existing App conversation or a CLI session owned by this bridge. |
152
174
  | `start_antigravity_cli_session` | Starts an explicitly authorized CLI streaming session with its initial prompt. |
153
175
  | `read_antigravity_delivery` | Reads the original receipt without resending. |
154
176
  | `close_antigravity_cli_session` | Closes an idle CLI session owned by the sender. |
155
177
 
156
- Generate a new `requestId` UUID for each intentional delivery and reuse it only when inspecting or retrying that same delivery. A pending or unknown receipt must be inspected before further action. Receipts survive process restarts; live CLI processes do not. A CLI timeout retains its conversation identity for inspection. No mode or permission-bypass flag is added; headless tool requests requiring interaction may be denied by Antigravity.
178
+ For these native bridge and legacy streaming-session tools, generate a new `requestId` UUID for each intentional delivery and reuse it only when inspecting or retrying that same delivery. A pending or unknown receipt must be inspected before further action. Receipts survive process restarts; live streaming CLI processes do not. A CLI timeout retains its conversation identity for inspection. No mode or permission-bypass flag is added; headless tool requests requiring interaction may be denied by Antigravity.
157
179
 
158
- The App adapter uses the official [sidecar `agentapi`](https://antigravity.google/docs/sidecars), verifies native workspace metadata, and refuses busy or ambiguous destinations. An App `accepted` receipt confirms native acceptance, not a completed agent reply. Open the exact App conversation to read its response. The CLI adapter uses the official [streaming JSON interface](https://antigravity.google/docs/cli/headless) and returns the agent's final result. It creates bridge-owned headless sessions; it does not attach to an already running interactive terminal. The two surfaces never substitute for one another.
180
+ The App adapter uses the official [sidecar `agentapi`](https://antigravity.google/docs/sidecars), verifies native workspace metadata, and refuses busy or ambiguous destinations. An App `accepted` receipt confirms native acceptance, not a completed agent reply. Its response remains in the exact native App conversation and can be read when that UI is responsive. The CLI adapter uses the official [streaming JSON interface](https://antigravity.google/docs/cli/headless) and returns the agent's final result. It creates bridge-owned headless sessions; it does not attach to an already running interactive terminal. The two surfaces never substitute for one another.
159
181
 
160
- The installer also registers **agent-bridge inside Antigravity Desktop** in `~/.gemini/config/mcp_config.json`. Reload the App after installation to discover it. From an Antigravity conversation, ask the agent to check `agent_bridge_status`, call `list_agent_tasks` for `codex` or `claude`, then use `send_to_agent_task` with the exact destination ID, project directory, prompt, and a fresh request UUID. Claude destinations also require their native `taskId`. Read `read_agent_delivery` without resending; `read_agent_task` reads the selected Codex task's response or Claude's native task metadata.
182
+ The installer also registers **agent-bridge inside Antigravity Desktop** in `~/.gemini/config/mcp_config.json`. Once the host has loaded that registration, use the tools available in the intended Antigravity conversation: check `agent_bridge_status`, call `list_agent_tasks` for `codex` or `claude`, then use `send_to_agent_task` with the exact destination ID, project directory, prompt, and a fresh request UUID. Claude destinations also require their native `taskId`. Read `read_agent_delivery` without resending; `read_agent_task` reads the selected Codex task's response or Claude's native task metadata.
161
183
 
162
- Outbound calls verify Antigravity's per-call MCP metadata, Desktop process ancestry, native workspace/project, and effective permission settings. The sender is attributed as Antigravity. Codex keeps its native task settings; Claude's inbound policy and permission-class checks remain in effect. A socket write to Claude is `sent_unconfirmed`, not acceptance or completion. After MCP restart, a saved receipt remains available but live Claude reply tracking may be unavailable; inspect the exact native task before further action.
184
+ Native outbound calls verify Antigravity's per-call MCP metadata, Desktop process ancestry, native workspace/project, and effective permission settings. The sender is attributed as Antigravity. Codex keeps its native task settings; Claude's inbound policy and permission-class checks remain in effect. A socket write to Claude is `sent_unconfirmed`, not acceptance or completion. After MCP restart, a saved receipt remains available but live Claude reply tracking may be unavailable; inspect the exact native task before further action.
163
185
 
164
- Outbound support targets existing local Codex tasks and live Claude Desktop Code sessions in the same project. Nested Antigravity callers, outbound CLI callers, App conversation creation, and automatic App reply forwarding are not implemented. Windows Desktop is the live verification platform; macOS ancestry has unit coverage and Linux outbound host verification fails closed. The existing Codex↔Claude bridge remains separate. Use `antigravity-mcp-bridge-install --all --remove` to remove only these registrations; delivery receipts are retained.
186
+ If a caller says the bridge only supports one-way messaging, compare its loaded version with the installed package: older initialization instructions incorrectly denied the separate native outbound route. A managed worker can reload when idle; an old direct MCP process requires a normal host reconnection. An unavailable inbound sidecar does not prove that the App is closed or that outbound messaging is unsupported. Use available `agent_bridge_status` diagnostics to verify the native outbound route independently, and `worker_status` for the independent workers.
187
+
188
+ Native outbound support targets existing local Codex tasks and live Claude Desktop Code sessions in the same project. That route rejects nested Antigravity callers and CLI callers claiming Desktop identity; App conversation creation and automatic App reply forwarding are not implemented. These native limits do not restrict the separately authorized CLI workers, which communicate through `worker-relay` in all six directions. Windows Desktop is the native live verification platform; macOS ancestry has unit coverage and Linux native outbound host verification fails closed. The existing Codex↔Claude native bridge remains separate. Use `antigravity-mcp-bridge-install --all --remove` to remove only the native bridge registrations; independent worker configuration and delivery receipts are retained.
165
189
 
166
190
  ### Windows (PowerShell)
167
191
 
@@ -276,7 +300,7 @@ codex-mcp-bridge-install.cmd --entry-name codex-bridge-desktop
276
300
  CODEX_BRIDGE_DESKTOP_TASKS=0 CODEX_BRIDGE_AUTOSTART=1 codex-mcp-bridge-install --entry-name codex-bridge-desktop
277
301
  ```
278
302
 
279
- Close and reopen Claude after active work finishes to load changed shared configuration. A fresh `--entry-name codex-bridge-desktop` registration defaults to legacy mode even when the native relay is configured. Existing custom modes are preserved. `--desktop-tasks` does not make a shared Desktop chat server a verified Code sender.
303
+ Running clients may retain their previously loaded configuration; setup reports live activation as unverified and does not interrupt them. A fresh `--entry-name codex-bridge-desktop` registration defaults to legacy mode even when the native relay is configured. Existing custom modes are preserved. `--desktop-tasks` does not make a shared Desktop chat server a verified Code sender.
280
304
 
281
305
  ### VS Code extensions — Windows preview
282
306
 
@@ -305,7 +329,7 @@ On Windows and macOS, `codex-native-relay-install` adds this to the relay's entr
305
329
  env_vars = ["CODEX_APP_TOOLS_PIPE_PATH"]
306
330
  ```
307
331
 
308
- If you register the relay by hand, add the same line and append the variable name if `env_vars` already exists. Only the name is saved, never the temporary pipe path. Restart Codex Desktop after active work finishes so it relaunches the relay.
332
+ If you register the relay by hand, add the same line and append the variable name if `env_vars` already exists. Only the name is saved, never the temporary pipe path. The changed environment takes effect when the native host next reconnects that MCP process; setup does not restart the app or open a chat to force it.
309
333
 
310
334
  ### Linux / WSL (Bash)
311
335
 
@@ -444,7 +468,7 @@ This repository ships a hosted ChatGPT plugin and the skill above. It does not c
444
468
 
445
469
  Run `codex-bridge-setup --check` (`codex-bridge-setup.cmd --check` on Windows) to inspect saved registrations. An incomplete result names the component requiring attention; rerun setup after correcting it.
446
470
 
447
- Reconnect the affected MCP servers in the actual client tasks; Claude Code provides `/mcp`. If the app has not loaded the new registrations, close and reopen it after active work finishes. Setup does not kill or restart apps. Run these **MCP tools** inside the apps:
471
+ Use the bridge tools already available in the actual clients. Configuration checks do not prove that a running client loaded new registrations. Setup does not open, kill or restart apps or chats. If a tool is unavailable, retain that exact failure for reporting. Run these **MCP tools** when available:
448
472
 
449
473
  | Client | Tool |
450
474
  |---|---|
@@ -453,6 +477,9 @@ Reconnect the affected MCP servers in the actual client tasks; Claude Code provi
453
477
  | Codex Desktop | `native_relay_status` |
454
478
  | Codex / Claude Desktop Code with Antigravity installed | `antigravity_bridge_status` |
455
479
  | Antigravity App | `agent_bridge_status` |
480
+ | Any configured background relay client | `worker_status` |
481
+
482
+ For the independent service, `worker-relay status` (`worker-relay.cmd status` on Windows) works from a terminal without a responsive Desktop app. Inspect transport, CLI authentication and recent execution errors separately. A CLI with unverified authentication still needs a successful authorized job before model access is established.
456
483
 
457
484
  To check CLI registrations without sending work:
458
485
 
@@ -463,7 +490,7 @@ claude mcp list
463
490
 
464
491
  These optional CLI checks require the respective CLI on PATH; the complete setup check can also use its managed Codex CLI. On Windows use `codex.exe mcp list`. An installed skill is listed separately with `npx skills list` (add `-g` for user-wide skills); it is not an MCP registration.
465
492
 
466
- Send a short message and confirm its reply **in both directions**. Registration alone does not prove delivery.
493
+ For an authorized live check, send a short message and confirm its reply on each selected route. Check worker-to-worker routes separately from native conversations; registration alone does not prove delivery.
467
494
 
468
495
  ## Use
469
496
 
@@ -518,10 +545,10 @@ Node.js 22.13+ is required. If a command is missing, open a new terminal and che
518
545
  If the package or registrations are missing, use the complete installation command:
519
546
 
520
547
  ```powershell
521
- npm.cmd install -g @minhspark/codex-mcp-bridge@latest --allow-scripts=@minhspark/codex-mcp-bridge
548
+ npm.cmd install -g @minhspark/codex-mcp-bridge@latest --allow-scripts=@minhspark/codex-mcp-bridge --foreground-scripts
522
549
  ```
523
550
 
524
- On npm 12, `1 package had install scripts blocked` means the setup hook did not run. The scoped `--allow-scripts` flag authorizes this package's hook; it does not enable every package's scripts globally. Add `--foreground-scripts` to see lifecycle progress. A local `npm install`/`npm ci`, `--ignore-scripts`, or `CODEX_BRIDGE_SKIP_SETUP=1` intentionally skips automatic setup.
551
+ On npm 12, `1 package had install scripts blocked` means the setup hook did not run. The scoped `--allow-scripts` flag authorizes this package's hook; it does not enable every package's scripts globally. `--foreground-scripts` displays lifecycle progress. A local `npm install`/`npm ci`, `--ignore-scripts`, or `CODEX_BRIDGE_SKIP_SETUP=1` intentionally skips automatic setup.
525
552
 
526
553
  For an already-installed package, preview and apply setup explicitly:
527
554
 
@@ -622,7 +649,7 @@ codex-bridge-setup.cmd --check
622
649
 
623
650
  1. Save the original task/delivery IDs and let active work finish before replacing its connection. A pending or uncertain delivery can intentionally defer automatic worker reload.
624
651
  2. In the affected Claude **Code** session, open `/mcp`, select `codex-bridge`, and reconnect. In ordinary Chat, inspect the separate `codex-bridge-desktop` connector. Reconnect the relevant Codex MCP entries in their actual task as needed.
625
- 3. If the client cannot reload that connection, open a new Code session in the same saved project to verify the registration. Reopen the app only after active work is safe to stop. A window's **Reload** action may refresh its UI while retaining the old Code process and MCP failure state.
652
+ 3. If the client cannot reload that connection, retain its diagnostic until the host reconnects normally. Do not open or create a chat to bootstrap a relay. A window's **Reload** action may refresh its UI while retaining the old Code process and MCP failure state. Separately authorized background work remains available through the independent service when its own prerequisites are satisfied.
626
653
  4. Call the status tool from that client and compare its runtime version, registration and sender/relay state. A standalone process answering `initialize`, or printing `ready`, does not verify the app's connection.
627
654
 
628
655
  An old worker cannot learn a newly written client environment from a disk update alone. Compatible source changes can reload through the supervisor when idle, but changed launchers/environment or a blocked old connection may still require reconnecting. Do not restart active work merely to clear a receipt or make a status indicator green.
@@ -667,11 +694,15 @@ For a repeatable failure, capture the app/OS/Node versions, the version reported
667
694
 
668
695
  ### Relay unavailable, stale pipe, or an active writer
669
696
 
697
+ Normal task creation and delivery run without navigating or focusing Codex Desktop. Use `openInApp: true` only when the user wants to see the target task. The comprehensive install/update command migrates older `CODEX_BRIDGE_OPEN_IN_APP=1` settings to `0`. The internal relay executor is not a user conversation and cannot be opened through the bridge.
698
+
699
+ Closing an application window and quitting its native host have different effects. Antigravity's native `runInBackground` setting keeps its sidecar running after the last window closes; Windows defaults to quitting when this setting is off. On Windows, use Codex's native startup task for background startup instead of an additional foreground `shell:AppsFolder` launcher. A healthy loaded relay can recover its worker, but cannot cold-start an unloaded Codex MCP. No periodic task-opening loop is used to simulate readiness.
700
+
670
701
  **Symptoms:** `RELAY_UNAVAILABLE`, `connect ENOENT`, a missing native relay socket, or `thread ... already has an active writer`.
671
702
 
672
- Native Desktop handoffs require Codex Desktop to be installed, signed in and open on Windows/macOS. The app runs `codex-native-relay` while a regular task has its MCP servers loaded. Recovery never navigates to a task, launches a window, or activates Codex. The Desktop-owned supervisor restarts crashed native relay workers with bounded exponential backoff; pending requests fail without replay, and later requests use the recovered worker. Inherited native pipe hints are rediscovered through the original Desktop process ancestry when they become stale. Requests that never reached the relay wait up to 20 seconds, within their original deadline, for its transport to recover. `CODEX_BRIDGE_RELAY_WAKE=0` disables that wait; the retired `CODEX_BRIDGE_RELAY_KEEPER` flag cannot enable UI navigation.
703
+ Native Desktop handoffs require Codex Desktop to be installed, signed in and running on Windows/macOS. The app runs `codex-native-relay` while a regular task has its MCP servers loaded. These native-host requirements do not apply to [independent background workers](#independent-background-workers). Recovery never navigates to a task, launches a window, or activates Codex. The Desktop-owned supervisor restarts crashed native relay workers with bounded exponential backoff; pending requests fail without replay, and later requests use the recovered worker. Inherited native pipe hints are rediscovered through the original Desktop process ancestry when they become stale. Requests that never reached the relay wait up to 20 seconds, within their original deadline, for its transport to recover. `CODEX_BRIDGE_RELAY_WAKE=0` disables that wait; the retired `CODEX_BRIDGE_RELAY_KEEPER` flag cannot enable UI navigation.
673
704
 
674
- Check `native_relay_status` in a regular project task and `codex_bridge_status` in the sending Code session. Native status performs a read-only `list_projects` probe and reports native dispatch separately from socket availability. Recovery requires the original Desktop-owned supervisor to remain alive: it cannot cold-start MCP when Desktop has loaded no session, and it stops when the MCP client closes. After five unsuccessful worker replacements, reconnect MCP in a regular task. Do not open the internal **Native Relay** executor; it is not an interactive chat and may show a missing-rollout error. Rerun setup if registration/executor configuration is missing, and verify [native relay pipe forwarding](#native-relay-pipe-forwarding). Never persist a pipe address copied from a different app process. After upgrading from a supervisor without crash recovery, reconnect the relay MCP once to load the updated supervisor; worker hot reload alone cannot replace its parent.
705
+ Use the available `native_relay_status` and `codex_bridge_status` tools without opening a chat to load them. Native status performs a read-only `list_projects` probe and reports native dispatch separately from socket availability. Recovery requires the original Desktop-owned supervisor to remain alive: it cannot cold-start an unloaded native MCP, and it stops when the MCP client closes. After five unsuccessful worker replacements, report the exact diagnostic. Never open an old, new, empty, failed or internal **Native Relay** chat to bootstrap readiness. Rerun setup if registration/executor configuration is missing, and verify [native relay pipe forwarding](#native-relay-pipe-forwarding). Never persist a pipe address copied from a different app process. Worker hot reload cannot replace a running supervisor from an older release; configuration success alone does not prove that process is upgraded.
675
706
 
676
707
  An active-writer error usually identifies the legacy app-server route attempting to attach to a thread already owned by Desktop. Use the registered native Code-to-Desktop route for that conversation. Do not start another app-server or terminate shared work to force access. The ordinary `codex-bridge-desktop` Chat connector remains a legacy app-server connection; it is not a substitute for the verified native sender. An unused `CODEX_APP_SERVER_URL` alongside `external app-server disabled` is not by itself a native connection failure.
677
708
 
@@ -681,13 +712,31 @@ Use native session discovery and peer delivery from the Codex task:
681
712
 
682
713
  1. Call `list_claude_sessions` with the exact absolute `expectedCwd`.
683
714
  2. Verify the returned `entrypoint: claude-desktop`, `sessionId`, native `desktop.taskId`, and project directory. Use `read_claude_transcript` with that session identity to confirm the intended unfinished work when needed; a title alone is insufficient.
684
- 3. Call `send_to_claude_session` with the exact session identity as `target`, the independently verified `expectedCwd`, and the returned native ID as `expectedTaskId`. For an exact dormant saved task, `target: "auto"` plus its `expectedTaskId` lets the bridge reopen and rediscover that task without substituting another conversation.
715
+ 3. Call `send_to_claude_session` with the exact session identity as `target`, the independently verified `expectedCwd`, and the returned native ID as `expectedTaskId`. `target: "auto"` plus `expectedTaskId` rediscovers the exact live endpoint without opening the app or chat. A dormant saved task returns `CLAUDE_SESSION_NOT_READY`, `sent: false`.
685
716
  4. Preserve the returned `msgId`. After a timeout, inspect it with `read_claude_delivery`; read `read_claude_inbox` for late replies and correlated bridge-status notifications.
686
717
 
687
- If no eligible session appears, open the intended Claude **Code** task in the same project and check sign-in, data-root selection and sender status. A new ordinary Chat window or unrelated CLI session does not establish that native recipient. [1.25.0](CHANGELOG.md#1250---2026-10-30) clarifies the tool instructions to use this route; it cannot guarantee every model follows them. External Computer Use typing/clicking is not a delivery fallback for an already-open session.
718
+ If no eligible session appears, inspect sign-in, data-root selection and sender status using available bridge diagnostics. Saved history does not prove that a native Code endpoint is running. There is no supported silent cold-start API for a dormant Claude task. The bridge reports this limitation instead of opening a chat, using Computer Use, or launching a substitute CLI. Closing a window can preserve native background work; fully quitting the native host removes its receiving endpoint.
719
+
720
+ Antigravity's `list_agent_tasks` also reports verified dormant Claude tasks with `status: "dormant"`, `recoverable: false` and `code: "CLAUDE_SESSION_NOT_READY"`. Discovery and sends never open the application or a chat to load its endpoint. Archived tasks, changed accounts, mismatched directories and uncertain sends remain blocked.
688
721
 
689
722
  `PEER_REPLY_PENDING` protects an earlier unresolved message. A `held` receipt, `CLAUDE_RECIPIENT_INBOUND_POLICY`, or `CLAUDE_RECIPIENT_CLASS_MISMATCH` identifies an actual recipient policy/permission boundary. Inspect the original receipt and task; resolve the stated policy through the user's intended host settings. Installing a newer bridge does not authorize changing permissions. An `interrupted` bridge-status notification ends observation only: it is not Claude's answer, does not cancel background work, and does not make retrying the original action safe.
690
723
 
724
+ ### Screenshot-ready error reports
725
+
726
+ Failures include a **Bridge diagnostic** block in the tool result and `structuredContent.diagnostic` for clients. Capture that block when filing an issue. It contains the exact error and cause codes, component, tool, phase, bridge/Node/platform versions, UTC timestamp, report ID and available request/message/delivery IDs. It excludes request prompts, tokens and account identities and redacts common credential, URL, email and private-path patterns from the error reason. Review any surrounding output before sharing it.
727
+
728
+ | Diagnostic | Meaning |
729
+ |---|---|
730
+ | `RELAY_UNREACHABLE` | Native relay transport could not be reached; this alone does not prove the app is closed. |
731
+ | `NATIVE_PIPE_UNAVAILABLE` | The native dispatch pipe could not be verified. |
732
+ | `CLAUDE_SESSION_NOT_READY` | The exact saved task has no live native Code endpoint; silent cold-start is unavailable. |
733
+ | `CLAUDE_RECIPIENT_INBOUND_POLICY` / `CLAUDE_RECIPIENT_CLASS_MISMATCH` | Native recipient policy or permission classes block the handoff. |
734
+ | `CLAUDE_REPLY_TIMEOUT` | A send has no confirmed reply yet; retain its message ID. |
735
+ | `MCP_WORKER_EXITED` | A worker exited while handling a request; its delivery may already have happened. |
736
+ | `MCP_WORKER_UNAVAILABLE` | This new request was refused before dispatch while its worker was unavailable. |
737
+
738
+ `deliveryState: not_sent` means this operation did not send a message. `unknown` means delivery remains uncertain; inspect the original receipt and never automatically resend. `not_applicable` marks a diagnostic read rather than a send. A diagnostic does not instruct an agent to create/open chats, use Computer Use, or change permissions to make the error disappear.
739
+
691
740
  ### Normal startup output labelled as an error
692
741
 
693
742
  Claude may label stderr as `ERR: Server stderr`, including ordinary `[bridge-supervisor] preparing`, `prepared`, and `[codex-mcp-bridge] ready` lines. The label alone is not a failure. Look for the actual connection result, exception, or timeout and verify the tool from the client. Keep diagnostics on stderr: stdout is reserved for MCP protocol messages, and redirecting logs there can break initialization.
@@ -729,7 +778,7 @@ The catalog below records user-visible failures fixed in earlier releases. It is
729
778
  | An account switch, a large task database or a concurrent metadata update hid an otherwise valid Claude task | [1.14.0](CHANGELOG.md#1140---2026-09-07): per-call account discovery, including Store data. [1.18.1](CHANGELOG.md#1181---2026-09-25): bounded discovery beyond 32 MiB. [1.22.3](CHANGELOG.md#1223---2026-10-15): retry changed metadata snapshots. | Check sign-in and [data-root selection](#microsoft-store-claude-or-multiple-data-directories), then rediscover. Conflicting, archived or persistently changing identities still fail closed; shared Chat still cannot prove Code ancestry. |
730
779
  | Windows ancestry checks expired while PowerShell was still starting | [1.19.1](CHANGELOG.md#1191---2026-09-29): separate startup/read deadlines. [1.25.0](CHANGELOG.md#1250---2026-10-30): coalesce identical simultaneous inspections. | Use the [timeout diagnostic steps](#connection-timeout-versus-sender-inspection-timeout). These changes do not establish a fix for every MCP initialization timeout. |
731
780
  | Ordinary managed Codex tasks were rejected as unverified senders; some review flags caused incorrect permission classification | [1.19.0](CHANGELOG.md#1190---2026-09-29): support verified managed prompting profiles. [1.13.6](CHANGELOG.md#1136---2026-09-06): correct human-review classification. | Upgrade and inspect `claude_bridge_status`. A real recipient class/inbound-policy mismatch remains a denial; do not change sandbox or approval settings merely to suppress it. |
732
- | Dormant Claude tasks could not resume; a new Windows conversation opened in “No folder”; an app update broke its URI launcher | [1.19.7](CHANGELOG.md#1197---2026-10-02): exact-task recovery, Windows folder/submission verification and launcher recovery. [1.22.4](CHANGELOG.md#1224---2026-10-19): moved-project discovery for authorized new conversations. | Resume the exact saved task with `target: "auto"` and `expectedTaskId`. A moved directory is a discovery candidate, not proof that an old task is safe to resume. Inspect an existing creation receipt before opening another composer. |
781
+ | Dormant Claude tasks could not resume; a new Windows conversation opened in “No folder”; an app update broke its URI launcher | [1.19.7](CHANGELOG.md#1197---2026-10-02): exact-task recovery and composer verification. [1.25.3](CHANGELOG.md#1253---2026-11-01): removes implicit app/chat reopening from recovery. | `target: "auto"` rediscovers an existing live endpoint only. A dormant task reports `CLAUDE_SESSION_NOT_READY`; never open or create a chat to load a relay. A moved directory remains an unverified discovery candidate. |
733
782
  | A listed human-created thread returned `NOT AUTHORIZED`; a path from another computer resolved incorrectly | [1.11.0](CHANGELOG.md#1110---2026-08-23): explicit thread policy. [1.8.0](CHANGELOG.md#180---2026-08-19) / [1.11.2](CHANGELOG.md#1112---2026-08-28): usable cross-machine path resolution. | Verify the exact saved project and intended grant/thread policy. Listing and mutation have different authorization requirements; setup preserves existing restrictions and cannot authorize a different project. |
734
783
  | An Antigravity App restart could leave a sidecar attached to the retired parent | [1.24.0](CHANGELOG.md#1240---2026-10-28): sidecars track native parent identity and exit when that parent stops. | Use current setup and reconnect through the active App. An App receipt confirms native acceptance only; App reply forwarding and new App conversation creation remain unsupported. |
735
784
 
@@ -1,35 +1,58 @@
1
1
  # New macOS setup
2
2
 
3
- Connect Claude Desktop's **Code tab** and Codex Desktop through local MCP
4
- processes and sockets. Both apps still authenticate with their providers and
5
- use hosted models; local bridge transport does not mean offline inference.
3
+ Connect native Desktop conversations through local MCP processes and sockets,
4
+ or use independent Claude, Codex and Antigravity CLI workers. Both routes use
5
+ provider authentication and hosted models; local bridge transport does not mean
6
+ offline inference.
6
7
 
7
8
  ## One-command local installation
8
9
 
9
10
  The [ChatGPT plugin setup](../README.md#chatgpt-plugin) uses a hosted Sites
10
- connector. For local Desktop use, install Node.js 22.13+ and sign in to the apps
11
- under the same macOS user. Save the intended local project in Codex Desktop and
12
- open it in Claude's Code tab, then run:
11
+ connector. Install Node.js 22.13+ under the macOS account that will use the
12
+ bridges. Native handoffs require signed-in apps and the same local project saved
13
+ in Codex Desktop and Claude's Code tab. Independent background workers use
14
+ separately authenticated provider CLIs and do not require open Desktop apps.
15
+ Run:
13
16
 
14
17
  ```bash
15
- npm install -g @minhspark/codex-mcp-bridge@latest --allow-scripts=@minhspark/codex-mcp-bridge
18
+ npm install -g @minhspark/codex-mcp-bridge@latest --allow-scripts=@minhspark/codex-mcp-bridge --foreground-scripts
16
19
  ```
17
20
 
18
21
  The script allowance applies only to this package's setup hook. npm versions
19
22
  that block install scripts by default need it; a plain install is sufficient
20
- only when the hook is allowed. Append `--foreground-scripts` to see progress.
23
+ only when the hook is allowed. `--foreground-scripts` displays setup progress.
21
24
  If npm reports `1 package had install scripts blocked`, rerun the command above
22
25
  or run `codex-bridge-setup` explicitly.
23
26
 
24
27
  Setup registers the local bridges, adds native pipe forwarding, and bootstraps
25
28
  the relay executor. It reuses an available Codex CLI or installs a pinned
26
29
  official package under `~/.config/GptClaudeBridge/tools` (or
27
- `XDG_CONFIG_HOME/GptClaudeBridge/tools`). No separate CLI install command is
28
- required. Run the install under the account that uses the apps, without `sudo`.
30
+ `XDG_CONFIG_HOME/GptClaudeBridge/tools`). No separate Codex CLI install command
31
+ is required. Run the install under the account that uses the apps, without `sudo`.
29
32
  The package remains installed if an app configuration step fails, preserving
30
33
  the setup command for repair. A successful npm exit does not verify that every
31
34
  component is configured.
32
35
 
36
+ The command also installs an independent per-user LaunchAgent for separate
37
+ Claude, Codex and Antigravity CLI workers and updates its managed settings on
38
+ each release. It registers worker communication and adds only Antigravity's four
39
+ relay tool grants, preserving existing denials, disabled choices and unrelated
40
+ settings. Install Claude Code and `agy` separately when those workers are needed;
41
+ CLI authentication is separate from Desktop sign-in.
42
+
43
+ With authenticated CLIs and an authorized project, `send_to_worker` supports
44
+ all six worker-to-worker directions independently of closed or frozen Desktop
45
+ apps. The operating system and user service must be running; network/provider
46
+ access, quota and tool permissions still apply. A frozen window cannot accept
47
+ new user input or show results until it responds. Use `worker-relay` in a terminal
48
+ or another responsive MCP client to submit authorized background work and read
49
+ receipts. These workers do not resume native chats or launch Desktop windows.
50
+
51
+ Use `worker-relay status` to inspect service and CLI readiness separately, and
52
+ `read_worker_delivery` for durable results. Authorize a selected project with
53
+ `bridge-projects allow-project <absolute-project-path>` before sending work if
54
+ it has no existing grant.
55
+
33
56
  | Client | Entry | Route |
34
57
  | --- | --- | --- |
35
58
  | Claude Code | `codex-bridge` | Native Codex Desktop handoffs |
@@ -38,22 +61,25 @@ component is configured.
38
61
  | Codex | `codex-native-relay` | Native Desktop transport |
39
62
  | Codex and Claude Code | `antigravity-bridge` | Antigravity App and bridge-owned CLI sessions |
40
63
  | Antigravity | `agent-bridge` and `codex-bridge` sidecar | Outbound messaging and native App connectivity |
64
+ | Independent CLI workers | `worker-relay` | Authorized background jobs and all six worker-to-worker directions |
41
65
 
42
66
  The shared `codex-bridge-desktop` connector cannot establish a native Code
43
67
  sender identity. The native route uses the actual Code session and the same
44
68
  saved local Codex project. Setup does not pair the hosted ChatGPT connector.
45
69
 
46
- The relay needs the trusted app-bundled Node runtime selected by setup; do not
47
- substitute an arbitrary Homebrew/nvm Node. Pipe forwarding saves only the
48
- `CODEX_APP_TOOLS_PIPE_PATH` variable name, never its temporary value.
49
-
50
- Open or reconnect the affected MCP servers in the actual Desktop conversations,
51
- or restart the app after active work finishes. Setup does not restart or kill
52
- apps. Check `codex_bridge_status` inside Claude Code, `claude_bridge_status` and
53
- `native_relay_status` in Codex, and `agent_bridge_status` in Antigravity. Complete
54
- [installation verification](../README.md#verify-the-installation), including
55
- a message and reply in each direction. Saved configuration is not a completed
56
- live exchange or a claim of verification on another Mac.
70
+ The native Codex relay needs the trusted app-bundled Node runtime selected by
71
+ setup; do not substitute an arbitrary Homebrew/nvm Node. Pipe forwarding saves
72
+ only the `CODEX_APP_TOOLS_PIPE_PATH` variable name, never its temporary value.
73
+
74
+ Managed MCP supervisors adopt compatible updates when idle. An old direct MCP
75
+ process remains stale until its host reconnects normally; setup does not open
76
+ or create chats, restart apps or interrupt active work to load a relay. When the
77
+ tools are available, check `codex_bridge_status` inside Claude Code,
78
+ `claude_bridge_status` and `native_relay_status` in Codex, and
79
+ `agent_bridge_status` in Antigravity. Follow
80
+ [installation verification](../README.md#verify-the-installation) for each
81
+ selected native or background route. Saved configuration is not a completed live
82
+ exchange or a claim of verification on another Mac.
57
83
 
58
84
  ## Checks, recovery, and manual alternatives
59
85
 
@@ -1,16 +1,17 @@
1
1
  # Windows setup and initial permissions
2
2
 
3
- Install Node.js 22.13+ and sign in to the apps you intend to use. For native
4
- handoffs, save the local project in Codex Desktop and open the same directory
5
- in Claude Desktop's **Code tab**. Run one PowerShell command:
3
+ Install Node.js 22.13+. Native handoffs use signed-in Desktop apps and the same
4
+ local project saved in Codex Desktop and Claude Desktop's **Code tab**.
5
+ Independent background work uses separately authenticated provider CLIs and
6
+ does not require the Desktop apps to be open. Run one PowerShell command:
6
7
 
7
8
  ```powershell
8
- npm.cmd install -g @minhspark/codex-mcp-bridge@latest --allow-scripts=@minhspark/codex-mcp-bridge
9
+ npm.cmd install -g @minhspark/codex-mcp-bridge@latest --allow-scripts=@minhspark/codex-mcp-bridge --foreground-scripts
9
10
  ```
10
11
 
11
12
  The `--allow-scripts` value permits only this package's setup hook. npm versions
12
13
  that block install scripts by default need it; a plain install runs setup only
13
- when scripts are allowed. Add `--foreground-scripts` to see setup progress. If
14
+ when scripts are allowed. `--foreground-scripts` displays setup progress. If
14
15
  npm reports `1 package had install scripts blocked`, run the recommended command
15
16
  again or run `codex-bridge-setup.cmd` explicitly.
16
17
 
@@ -22,6 +23,27 @@ executor. A failed component is reported as incomplete rather than ready. The
22
23
  package stays installed when an app configuration step fails, so the setup
23
24
  command remains available for repair. npm success alone does not verify setup.
24
25
 
26
+ The same command installs the independent worker relay as a hidden per-user
27
+ scheduled task and applies its managed settings on every update. It registers
28
+ worker communication and adds only the four Antigravity relay tool grants;
29
+ existing disabled settings, permission denials and unrelated settings remain.
30
+ Install Claude Code and `agy` separately when those workers are needed; setup
31
+ supplies a missing Codex CLI. CLI authentication is separate from Desktop sign-in.
32
+
33
+ Once the selected CLIs are authenticated and the project is authorized,
34
+ `send_to_worker` supports all six directions between Claude, Codex and
35
+ Antigravity workers, even while Desktop apps are closed or frozen. The operating
36
+ system and user service must be running; network/provider access, quota and tool
37
+ permissions still apply. A frozen window cannot accept new user input or show
38
+ results until it responds. Use `worker-relay.cmd` in a terminal or another
39
+ responsive MCP client to submit authorized work and read receipts. The relay
40
+ does not open apps or resume native chats.
41
+
42
+ Use `worker-relay.cmd status` to inspect service and CLI readiness separately,
43
+ and `read_worker_delivery` for durable results and diagnostic reports. Authorize
44
+ a selected project with `bridge-projects.cmd allow-project <absolute-project-path>`
45
+ before sending work if it has no existing grant.
46
+
25
47
  ## Installed entries
26
48
 
27
49
  | Client | Entry | Purpose |
@@ -32,16 +54,19 @@ command remains available for repair. npm success alone does not verify setup.
32
54
  | Claude Desktop shared connectors | `codex-bridge-desktop` | Connect ordinary chat to local Codex app-server sessions |
33
55
  | Codex and Claude Code | `antigravity-bridge` | Send to Antigravity App or bridge-owned CLI sessions |
34
56
  | Antigravity | `agent-bridge` and `codex-bridge` sidecar | Outbound agent messages and native App connectivity |
57
+ | Independent CLI workers | `worker-relay` | Authorized background jobs and all six worker-to-worker directions |
35
58
 
36
59
  The shared `codex-bridge-desktop` connector does not establish a native Code
37
60
  sender identity. Use the actual Code session for native Codex Desktop work.
38
61
  Existing project restrictions, permission modes, and custom settings are
39
62
  preserved. Setup does not sign in, grant workspace trust, or close applications.
40
63
 
41
- After active work finishes, open or reconnect the affected apps so they load
42
- the entries. A conversation refresh may leave the previous MCP process loaded.
43
- Check `codex_bridge_status` inside the sending Claude Code task,
44
- `claude_bridge_status` and `native_relay_status` in Codex, and
64
+ Managed MCP supervisors adopt compatible updates when idle. An old direct MCP
65
+ process remains stale until its host reconnects normally; setup does not open
66
+ or create a chat to load it. A conversation refresh may leave the previous
67
+ process loaded. When the tools are available, check `codex_bridge_status` inside
68
+ the sending Claude Code task, `claude_bridge_status` and `native_relay_status`
69
+ in Codex, and
45
70
  `agent_bridge_status` in Antigravity. Configuration verification is separate
46
71
  from a completed live exchange.
47
72