Skip to content
This repository was archived by the owner on Sep 23, 2026. It is now read-only.
This repository was archived by the owner on Sep 23, 2026. It is now read-only.

Feature Request: /thinking slash command and Ctrl+T shortcut to toggle thinking mode #2352

Description

@yahiasalamanca

Summary

Add a /thinking slash command (alias /t) and a Ctrl+T keyboard shortcut to toggle thinking mode on/off for the current model, without leaving the interactive session.

Motivation

Today, toggling thinking mode requires /model → select model → select thinking on/off → confirm. That's several keystrokes for a setting users may want to flip quickly between turns — e.g. switching from a complex task to a trivial follow-up.

A direct toggle would:

  • Reduce friction for a frequent action
  • Match the pattern of other in-session toggles (Ctrl+X for shell/agent mode, Shift+Tab for plan mode)
  • Reuse the existing default_thinking save + reload mechanism already in place behind /model

Proposed UX

  • /thinking (canonical) or /t (alias): flip the current thinking state, save config, reload session
  • Ctrl+T: same behavior, bound in the prompt
  • The existing dot indicator (●/○) in the status bar already reflects the state — no new UI needed
  • Add ctrl-t: thinking mode to the rotating toolbar tips

Semantics match the existing /model flow: is_from_default_location guard, always_thinking / thinking capability checks, telemetry via track("thinking_toggle", enabled=...), and raise Reload(session_id=...).

Related work — PR #2158

PR #2158 proposes Ctrl+T for toggling visibility of thinking content (hide/show the streamed reasoning). It's a complementary feature, but it conflicts on the shortcut.

The two are semantically distinct:

#2158 This FR
Toggle visibility of thinking output Toggle whether thinking is used at all
Display preference Model capability switch
Affects rendering only Affects default_thinking config + LLM behavior

UX rationale for the shortcut split: a base-level capability toggle fits a base modifier (Ctrl+T); a display preference fits a compound modifier (Ctrl+Shift+T). This is consistent with patterns where view modifiers stack on top of base bindings.

That said, this is a maintainers' call. The implementation is the same either way — happy to defer to whatever the team decides.

Reference implementation

I built an external installer that monkey-patches ui/shell/slash.py and ui/shell/prompt.py to add this feature: https://github.com/yahiasalamanca/kimi-cli-thinking-command

Tested on Linux and Windows; macOS coverage by code paths (XDG + legacy ~/Library/Application Support + UV_TOOL_DIR). The patched code is ~50 lines and mirrors /model's flow — should map cleanly to a native implementation.

Activity

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions