Feature request: explicitly bind a Codex chat to a specific Chrome profile/session for Computer Use
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
Summary
Please add an explicit UI to bind a specific Codex/Work chat to a specific external Chrome profile/session when using Computer Use / the ChatGPT Chrome extension.
Today, Chrome control is session-scoped, but the ownership/mapping is opaque. With multiple long-running Codex chats, there is no clear way to answer:
- Which chat currently owns the external Chrome bridge?
- Which Chrome profile is attached to that chat?
- Can I move/reassign that Chrome profile to another chat?
- Is the current chat using external Chrome, the in-app browser, or no browser route at all?
This becomes especially painful for production workflows that must use one specific signed-in Chrome profile.
Real workflow problem
I use multiple Codex chats in the same project and a dedicated Chrome profile for production work.
The Chrome extension is installed, enabled, and allowed on all sites. However, when trying to resume an authorized production workflow, different chats reported conflicting browser ownership states:
- one chat reported that the visible production Chrome tabs belonged to another Codex chat/session;
- the other chat later reported that only the Codex in-app browser was available and that no Founder-visible external Chrome attachment was present;
- moving between chats did not provide any UI to explicitly attach or transfer the Chrome profile/session.
The only recovery procedure that has sometimes worked is roughly:
- quit/kill all Chrome processes;
- restart the ChatGPT/Codex desktop app;
- reopen the intended Chrome profile;
- disable/re-enable Google Chrome under Computer Use / plugins;
- retry from a chosen chat.
Even after doing that, it can still be unclear which chat actually owns the Chrome connection.
This is disruptive and risky for production workflows because a task may pass source/CI gates and then stop only because the browser session cannot be proven to belong to the exact active chat.
Requested UX / behavior
Please add an explicit browser-session binding UI, for example:
Per-chat Browser / Computer Use panel
Show something like:
- Browser route: External Chrome / In-app Browser / None
- Chrome profile:
LogicSpring-Prod(or other user-visible profile name) - Connection status: Connected / Disconnected / Stale
- Session owner: current chat name/id
- Open tabs: optional count / preview
And provide explicit controls:
- Attach Chrome profile to this chat
- Detach from this chat
- Transfer / Reassign from another chat
- Refresh connection
If a profile is already attached elsewhere, show a clear confirmation such as:
LogicSpring-Prodis currently attached to Chat A. Transfer it to Chat B?
After transfer, both chats should immediately show the new authoritative ownership state.
Important requirement
The mapping should be authoritative and visible to both the user and the model/tool runtime. The model should not have to infer ownership from stale browser handles or historical session state.
A chat should be able to positively verify:
- exact active chat/session;
- exact external Chrome profile;
- that the Chrome bridge belongs to that exact chat/session;
- whether external Chrome or the in-app browser is actually being used.
Why this matters
For ordinary browsing this is inconvenient. For production/admin workflows it is a release blocker because the correct signed-in Chrome profile may carry the required authenticated sessions, while using a different profile or the in-app browser is not an acceptable substitute.
The current behavior can force repeated app/browser restarts and plugin toggles, yet still leave ownership ambiguous.
Related issues
This appears adjacent to existing reports about per-thread browser provisioning/session registration and Chrome connection instability, including:
- #41090 — Chrome extension connected but @Chrome not provisioned to desktop task
- #37626 — Chrome capability routing differs between Work/Codex conversations
- #40394 — Computer Use / Chrome control suddenly unavailable
- #38530 — Chrome extension/native-host detection and repair issues on macOS
Those issues focus mainly on connection/provisioning failures. This request is specifically for an explicit, first-class chat ↔ Chrome profile/session binding and transfer UI so users do not have to infer or reset session ownership manually.
Expected result
A user should be able to open a Codex chat, select the intended Chrome profile, click Attach to this chat, and then see a persistent, authoritative status showing that the exact chat owns that exact browser session until it is detached or transferred.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files, tests, or entry points are named. Start by locating the Computer Use and per-chat browser controls, then trace how Chrome session ownership is represented; done means users can view, attach, detach, transfer, and verify the authoritative chat-to-profile binding.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop, web-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 32/100