Skip to content

[TUI] /model in Plan mode updates Default globally and changes Medium to High #38236

Open

Description

@rajagiriravi

What version of Codex CLI is running?

codex-cli 0.146.0

What platform are you using?

Windows, Codex CLI TUI.

What issue are you seeing?

Changing the model with /model while Plan mode is active does not preserve separate Default- and Plan-mode settings.

Starting state:

  • Default mode: gpt-5.6-terra, Medium
  • Plan mode entered with Shift+Tab

After running /model in Plan mode and selecting gpt-5.6-sol, Medium, the resulting state is:

  • Default mode: gpt-5.6-sol, Medium
  • Plan mode: gpt-5.6-sol, High

The requested Sol/Medium selection is applied to Default mode, while Plan mode retains or introduces a High reasoning override. This makes it impossible through the observed flow to configure Default as Terra/Medium and Plan as Sol/Medium.

Steps to reproduce

  1. Start a Codex CLI session in Default mode using gpt-5.6-terra with Medium reasoning.
  2. Press Shift+Tab to enter Plan mode.
  3. Run /model while Plan mode is active.
  4. Select gpt-5.6-sol with Medium reasoning.
  5. Cycle between Default and Plan modes and inspect the model/reasoning shown for each.

Expected behavior

Either:

  • the selection made while Plan mode is active is saved as the Plan-mode override, leaving Default mode at Terra/Medium; or
  • the UI clearly asks whether the selection applies to the Plan override or the global Default setting, and respects that choice.

Expected final state for this reproduction:

  • Default mode: Terra/Medium
  • Plan mode: Sol/Medium

Actual behavior

  • Default mode changes to Sol/Medium.
  • Plan mode becomes Sol/High.

Additional context

Related issue #14379 states that /model in Plan mode should offer an “Apply to Plan mode override” path. The behavior above suggests that the scope is ambiguous, the Plan override is not being saved, or a separate Plan reasoning override is unexpectedly replacing Medium with High.

Activity

  1. added
    bugSomething isn't working
    CLIIssues related to the Codex CLI
    windows-osIssues related to Codex on Windows systems
    TUIIssues related to the terminal user interface: text input, menus and dialogs, and terminal display
    planIssues involving plan mode
    on Aug 12, 2026
  2. jdcodes1 commented on Aug 18, 2026

    @jdcodes1

    The state you ended with falls out of two separate settings that /model doesn't bridge (main @ 1f41cc5):

    • The model + effort picked in /model are persisted as the default-mode session settings (model, model_reasoning_effort) — there's no Plan-mode branch in the selection handler, so running it from Plan mode still writes the global default. That's your Default flipping to gpt-5.6-sol, Medium.
    • Plan mode's effort is a distinct setting (plan_mode_reasoning_effort, its own config key and UpdatePlanModeReasoningEffort event) that the /model picker never writes — so Plan mode kept its own value (High), silently discarding the Medium you chose while standing in Plan mode.

    So nothing is "corrupted" — the picker just has no notion of which mode you're in. Fix shape: when /model is invoked with Plan mode active, either write plan_mode_reasoning_effort (and scope the model change per-mode if that's the intended data model), or reuse the existing plan-reasoning scope prompt (OpenPlanReasoningScopePrompt machinery) to ask which scope the selection applies to. Either resolves the surprise; today's silent global write from inside Plan mode is the worst of both.

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

    CLIIssues related to the Codex CLITUIIssues related to the terminal user interface: text input, menus and dialogs, and terminal displaybugSomething isn't workingplanIssues involving plan modewindows-osIssues related to Codex on Windows systems

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions