[FEATURE] Mods: no way to put effort on a key without /effort rows in the transcript

Status Open
Reported on v2.1.287
Maintainer reply None cached
Activity 0 comments · opened Oct 2, 2026

Related: #61904 (Chat-context effort actions). This issue is about the gap on the mods side: even with a mod, effort can't be put on a key without filling the transcript.

Problem

There is no keybinding action that changes the effort level from the prompt. The only effort actions are effortSlider:increaseEffort / effortSlider:decreaseEffort, and they work only inside the slider that /effort opens.

The only way to put effort on a key today is a workaround:

  1. A plugin registers one command per level (/effort-low … /effort-max), because command: bindings accept a bare name only (^command:[a-zA-Z0-9:\-_]+$), with no arguments.
  2. keybindings.json binds ctrl+1…ctrl+5 to command:effort-low … command:effort-max.
  3. Each of those commands runs /effort <level> through $.command.run.

It works, but every key press leaves two rows in the transcript:

› /effort high
⎿ Set effort level to high (saved as your default for new sessions): Comprehensive implementation …

Switching a few times while working fills the transcript with these rows. A mod can't hide or restyle them: in my testing the rows don't go through CommandOutput or any other ui.render site (I logged every ui.render call while switching). /config has no effort row either, so $.config.set isn't an option.

Proposal

Any one of these would solve it:

  1. Chat-context keybinding actions for effort (as in #61904): chat:cycleEffort, chat:increaseEffort, chat:decreaseEffort, and ideally one per level (chat:effortLow … chat:effortMax). They would act like chat:cycleMode does for permission modes: change the level in place, with no transcript row.
  2. Arguments in command: bindings, for example "ctrl+3": "command:effort high", so the built-in command can be bound directly.
  3. For mods: a way to set the session's effort, such as an effort row in /config or a $ method, or raising CommandOutput for built-in local commands like /effort, so a mod can fold those rows.

Why it matters

Effort is something I change several times per session, like the permission mode. The permission mode has shift+tab and a label in the footer. Effort has neither, unless you build the workaround above and accept the transcript noise.

Environment

  • Claude Code 2.1.287
  • macOS, Ghostty

View original on GitHub ↗