Repository navigation
Browser Automation
The browser companion can create/pair ChatGPT conversations, send pending input or goal continuations when eligible, and handle verified connector approvals. It is an unofficial UI integration with your authenticated ChatGPT session; it does not supply a model API or bypass OpenAI usage limits.
Automation is configured on by default, but cannot work until the separate companion is installed, signed in, and paired with the intended conversation. Existing explicit disabled settings remain disabled.
codexify browser install
codexify browser login
codexify browser statusThe package contains a managed browser and uses a dedicated profile, not normal system Chrome. The companion is an independent user-session process. Browser controls are under global Settings → Browser, shared by every chat.
When release notes change browser behavior, update the server, run codexify browser install, then Stop browser → Start browser in Settings. A compatible older companion can remain running after a server-only update. Installation and restart preserve the dedicated profile and sign-in.
An explicit Stop browser or codexify browser stop persists until Start. A server update/restart uses maintenance state that preserves the intended automatic-start choice. Closing or losing an enabled companion can trigger managed recovery; recovery does not itself replay a prompt.
Save the exact installed ChatGPT plugin/connector name in Browser settings. There is no assumed default name. New-chat/goal actions prompt for a missing name and preserve the pending action when cancelled.
For an existing task, paste the exact ChatGPT conversation URL into its pairing control. A content-free verification message asks that physical conversation to call automation_verify_pairing with a one-time reference. Only successful verification binds the URL to the task and owner generation. Recency, project membership, and the currently open tab do not establish pairing.
Pairing verification can take time after Send and does not hold the browser queue while waiting. A full continue_task handoff needs the new physical conversation's pairing verified. A saved but unverified URL is not sufficient for automatic work.
New chat creates the ChatGPT conversation, selects/reuses its workspace, and verifies pairing. Optional agentChat.automation.chatgptProjectUrl places newly created conversations in a particular ChatGPT project; leave it unset for top-level chats.
Model/effort choices use an account- and protocol-scoped cache. Switching local chats does not automatically rediscover models or open their ChatGPT pages. Explicit Refresh models refreshes the catalogue; a send verifies the actual model and effort on its already-open destination. Known unavailable selections can follow the bundled fallback order while retaining the saved preference for later turns.
Healthy target conversations are reused. An unavailable or sign-in failure page, including a no-composer failure, gets one deliberate recovery load on retry even when already open. Sign-in and the paired account are checked again before Send. Opening a different target requires navigation; retries and recovery use the shared navigation budget and cooldown.
The companion waits for the named @ connector. If its menu choice does not appear within the bounded wait, the message can be sent without the mention instead of reloading and replaying it. Changed or ambiguous connector identity is not silently accepted.
Before an offline send, a lingering ChatGPT response may need Stop. Each Stop click gets up to 20 seconds, ending early when the response stops. If ChatGPT asks for confirmation, confirming starts its own fresh 20-second window. The existing bounded retry/reload recovery runs only after those windows, not immediately after confirmation.
After clicking Send, Codexify keeps browser ownership for at least five seconds, including cancellation/error cleanup when submission may have started. The next action cannot navigate away during that hold. Semantic Send acceptance and network completion are distinct; the hold allows pending requests to settle without claiming arbitrary network requests are guaranteed to finish within five seconds.
Once accepted and settled, the browser queue is released without waiting for the entire ChatGPT response to finish. The agent's native tool activity and chat tools remain the authoritative activity/reply path. A missing Send acknowledgement is an ambiguous outcome; user messages are not automatically replayed as if definitely unsent.
artifactEgress.enabled controls file materialization and defaults false. Inline attachment text/image previews and local attachment inspection remain available without it. Enabling it can make ChatGPT ask permission before exposing a downloadable file.
With autoApproveToolCalls: true (default), the companion handles a matching latest-turn approval by opening its options and choosing the conversation-scoped permission for the verified connector. It validates conversation, account, connector/app identity, and menu structure. Old cards, unrelated connectors, ambiguous menus, and account changes are not approved.
Approving an existing blocking card resumes the existing turn; it suppresses another continuation message. Codexify allows a three-minute resume grace period plus jitter, ending early on fresh agent activity. The first tool call can take a minute or two after approval. This does not count as a newly sent goal turn or replay queued user messages.
Delays are measured after each failed attempt, not from the first failure. Stable per-action 0–10% positive jitter spreads chats out.
| Retry class | Base delays, then stop |
|---|---|
| Confirmed-unsent sign-in, conversation-access, and editor-insertion failures | 3 min → 5 min → 10 min → 20 min → 30 min → 60 min. |
| Other eligible confirmed-unsent action failures | 30 s → 1 min → 2 min → 4 min → 8 min. |
| Eligible goal-continuation recovery without agent activity | 1 min → 2 min → 4 min, with additional state/completion guards. |
These are bounded policies, not permission to repeat accepted or uncertain user messages. Pairing/new-chat failures and explicit cancellations have their own handling; do not infer retry eligibility from a red message alone. The UI countdown and available Retry/Continue controls reflect the saved action.
- Pause retries: retain the error, stop automatic attempts across browsers/restarts.
- Retry / Continue: request a manual attempt and clear that error's retry pause.
- Dismiss: clear the saved error and cancel its retries; do not mark unsent messages delivered or clear the goal.
- Settings → Chats & goals → Automatic retries: global live policy, on by default. Off still permits initial sends, normal goal continuation, and manual retry.
Fresh native activity clears stale goal-only continuation errors even after retries were exhausted. It does not discard pending user messages or accepted/uncertain-send records.
The UI uses three minutes for away and five minutes for offline. The v2.3.9 automation inactivity eligibility guard is four minutes; active calls, input waits, completion, and acknowledged activity also govern dispatch. Tool inactivity is not proof that ChatGPT has ended its response.
Browser operations have a 30-second inactivity budget renewed only by new verified phases, plus bounded cleanup. Repeated identical progress cannot keep ownership forever. Actual ChatGPT conversation loads can be rate-limited even though models are cached. Let cooldowns run rather than hammering manual reload/retry.
Block matching requests is off by default. Its editable patterns target selected registration/sidebar/list-conversation requests, not a cache or mock of individual conversation responses. Restart is required after changing that switch or its patterns. It is independent of retry and model-cache settings.
See Troubleshooting, Agent chat, and Security model.
Reviewed against v2.3.9 on 22 October 2026. Source: browser-companion/src/chatgpt-driver.ts · src/agent_automation/store.rs.
Guides reviewed for v2.3.9 · 22 October 2026 · Repository · Releases · Report an issue · MIT License
Get started
Chat and automation
Projects and task context
- Workspace selection
- Worktree isolation
- Context, memory, and continuation
- AGENTS.md and skills
- Diff checkpoints
Reference and operations