openai / openai/codex

Feature request: explicitly bind a Codex chat to a specific Chrome profile/session for Computer Use

Open
#43,160 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app browser computer-use enhancement
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:

  1. quit/kill all Chrome processes;
  2. restart the ChatGPT/Codex desktop app;
  3. reopen the intended Chrome profile;
  4. disable/re-enable Google Chrome under Computer Use / plugins;
  5. 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-Prod is 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:

  1. exact active chat/session;
  2. exact external Chrome profile;
  3. that the Chrome bridge belongs to that exact chat/session;
  4. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.