Skip to content

Expose extended thinking as a control independent of reasoning effort #3888

Description

@kapral18

Describe the feature or problem you'd like to solve

For Anthropic models (e.g. Claude Opus 4.8), thinking and reasoning effort are separate API parameters, but the CLI only exposes effort. There's no first-class way to turn extended thinking on/off independently of the effort level.

Proposed solution

Surface thinking as its own control, decoupled from reasoning effort:

  • a --thinking on|off flag (and /thinking off in interactive mode), and/or
  • a 4th step in the /model wizard. It's currently model → reasoning effort → context size; add a Thinking on/off step.

Default to current behavior so nothing changes unless a user opts in, on models that support it.

Why

  • Anthropic exposes effort (token spend, all output) and thinking (adaptive/disabled) as independent params; effort explicitly doesn't require thinking enabled. Docs: effort, extended thinking.
  • Cursor's CLI already ships both axes (claude-opus-4-8-xhigh vs claude-opus-4-8-thinking-xhigh), so it's implementable on a CLI surface.
  • The plumbing already exists in the CLI: COPILOT_DISABLE_ANTHROPIC_THINKING=1 sets thinking: {type: "disabled"} while keeping effort, and is honored end-to-end. But it's an undocumented, launch-only, process-wide env var that's invisible in /model — this ask is to promote it to a real control.

Example workflows

  • --model claude-opus-4.8 --effort xhigh --thinking off: long agentic run at high effort, no thinking tokens.
  • --effort low --thinking on: cheap pass that still reasons on hard subproblems.
  • Headless --print runs pinned to thinking off for lower-latency, deterministic output.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:modelsModel selection, availability, switching, rate limits, and model-specific behavior
    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions