Skip to content

Browser skill is mounted in CLI TUI even when no in-app browser backend is available #25647

Open

Description

@JoeRoddy

What issue are you seeing?

When using the Codex CLI TUI directly, the bundled Browser / in-app browser skill is still mounted and advertised even though there is no Codex desktop app in-app browser backend available for the session.

This makes @Browser / $browser look usable in the CLI TUI, but the Browser runtime cannot discover any browser backend:

agent.browsers.list() => []
agent.browsers.get("iab") => Browser is not available: iab

The confusing part is that the skill itself is present and its browser-client.mjs can be loaded, so the agent spends time trying the Browser bootstrap path before discovering that no iab backend exists. In a pure CLI TUI session, there is no in-app browser pane for the skill to attach to.

Environment

  • Codex CLI: codex-cli 0.135.0
  • Platform: macOS 26.5 / Darwin 25.5.0 arm64
  • Session type: CLI TUI launched directly from a terminal, not the Codex desktop app
  • Browser plugin cache exists locally under ~/.codex/plugins/cache/openai-bundled/browser/...

Steps to reproduce

  1. Launch codex as the CLI TUI directly from a terminal.
  2. Ask Codex to use $browser / @Browser for a quick in-app browser check.
  3. Observe that the Browser skill is mounted and the agent attempts to use the Browser plugin.
  4. The runtime reports no available browser backend, e.g. agent.browsers.list() returns [] and agent.browsers.get("iab") fails.

Expected behavior

For CLI TUI sessions that are not attached to a Codex desktop app in-app browser backend, either:

  • do not mount/advertise the in-app Browser skill at all, or
  • expose it as unavailable with a clear immediate message such as: The in-app browser requires the Codex desktop app and is unavailable in CLI TUI sessions.

Actual behavior

The Browser skill is mounted and looks available, but no usable browser backend exists. This makes the failure look like a broken Browser plugin, missing extension, or IAB discovery regression, when the real issue is that the CLI TUI has no in-app browser surface.

Why this matters

It causes avoidable confusion between three separate cases:

  • Codex desktop app in-app browser (iab backend)
  • Codex Chrome extension / real browser control
  • CLI TUI with no browser backend

For users who explicitly do not want the Chrome extension and only want the in-app browser, the current CLI TUI behavior suggests that in-app browser support should work when it cannot.

Activity

  1. added
    bugSomething isn't working
    CLIIssues related to the Codex CLI
    TUIIssues related to the terminal user interface: text input, menus and dialogs, and terminal display
    skillsIssues related to skills
    on Jun 1, 2026
  2. github-actions commented on Jun 1, 2026

    @github-actions
    Contributor

    Potential duplicates detected. Please review them and close your issue if it is a duplicate.

    Powered by Codex Action

  3. JoeRoddy commented on Jun 1, 2026

    @JoeRoddy
    Author

    Potential duplicates detected. Please review them and close your issue if it is a duplicate.

    Powered by Codex Action

    A totally different app, but likely the same issue? I would suspect this issue may exist in any exposed surface that codex offers where skills are supported, other than the codex desktop app.

  4. daronspence commented on Jul 29, 2026

    @daronspence

    Fresh reproduction on Codex CLI 0.145.0 on macOS. This issue still occurs in a standalone interactive CLI session.

    Environment state:

    • browser@openai-bundled is installed and enabled.
    • browser_use and in_app_browser are enabled.
    • The bundled browser runtime is available to the agent.
    • No external browser MCP is configured.

    When asked to open a local development URL and capture a screenshot, Codex attempted the Browser workflow and eventually reported:

    In-app browser unavailable in this session. Browser list is empty, so I couldn’t open the local page or capture a screenshot.

    Enable/open in-app browser, then ask me to retry.

    That remediation is misleading in the standalone CLI: there is no in-app browser surface to enable or open for that CLI session. The plugin/skill being advertised caused the agent to offer and attempt an impossible action.

    Please capability-gate Browser exposure when constructing a CLI session. If there is no registered browser backend and no external browser MCP, the CLI should either:

    1. not mount/advertise the in-app Browser skill at all; or
    2. mark it unavailable immediately with an explicit message that the in-app browser requires a Codex Desktop task.

    Ideally, the CLI should only offer browser-backed screenshots/navigation after confirming that a usable backend exists. This avoids wasted tool attempts and prevents users from being sent through setup steps that cannot make an app-scoped browser available to a standalone CLI session.

  5. PaulRBerg commented on Aug 13, 2026

    @PaulRBerg

    This still occurs for me in a standalone Codex CLI session.

    The only practical workaround is to manually edit ~/.codex/config.toml when using Codex CLI, then manually enable the in-app browser again when using the ChatGPT desktop app. Since both surfaces share that configuration, I cannot use the CLI and the desktop app with the in-app browser at the same time.

    I proposed separating the CLI configuration from the desktop app configuration in #38193.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    TUIIssues related to the terminal user interface: text input, menus and dialogs, and terminal displaybrowserbugSomething isn't workingskillsIssues related to skills

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions