[FEATURE] Keyboard shortcut to switch models while composing prompt

Resolved 💬 14 comments Opened Jan 24, 2026 by PaulRBerg Closed Jun 18, 2026

What feature would you like to see?

A keyboard shortcut to switch between Codex 5.2 models (Low, Medium, High, Xhigh) while composing a prompt in the input area.

Use case: I often start writing a prompt and then realize mid-composition that I want to use a smarter model for a complex task, or a faster/cheaper model for a simple one. Currently, there's no way to switch models without abandoning the prompt or using the menu.

Suggested implementation:

A keybinding like Ctrl+M to cycle through available models

This would improve the workflow for users who frequently switch between models based on task complexity.

Additional information

Codex v0.89.0

View original on GitHub ↗

14 Comments

vadimcomanescu · 5 months ago

Couldn't agree more. Claude code, Opencode pretty much all of them have this.

venkatd · 5 months ago

This would be great because sometimes I will want to swap between multiple models within a session.
Or smarter model to plan, medium model to execute, faster model to QA.

Even better would be setting up rules on which model to use and when so I don't have to swap by hand

PaulRBerg · 5 months ago

This would also be helpful in the macOS app

jorgejhms · 4 months ago

I would like a separate keymap for changing thinking levels. On open code this is ctrl+t. they also have ctrl+x m for opening the model selection

oxysoft · 4 months ago

This feels like the narrower keyboard-control seam under #14356.

That issue broadens the ask in three ways that seem worth keeping tied together:

  • dedicated reasoning-depth controls, not just model switching
  • a non-semantic depth meter with shapes like [◉···] [◉◉··] [◉◉◉·] [◉◉◉◉]
  • next-turn-safe switching semantics, so changing model/depth during an in-flight turn stages the new setting for the next prompt instead of mutating the running one

In practice I think the control surface wants to feel like a fast cockpit lever, not something that requires walking back through /models constantly.

RickVM · 4 months ago

I would like to toggle between spark and whichever model I was already running

jkryanchou · 2 months ago

alt + p -> Claude Code could switch.

NerdyPunkDad · 1 month ago

If you add the following to ~/.codex/config.toml it will

  • map 'alt-i' to increasing reasoning effort (from "low" to "medium", "high", "x-high")
  • map 'alt-i' to increasing reasoning effort (from "x-high", to "high", "medium", "low")
  • map 'alt-f' to turning fast mode on+off
  • Remove the conflicting keybindings that prevent you from mapping "alt-d" and "alt-f"

[tui.keymap]
chat.decrease_reasoning_effort = "alt-d"
chat.increase_reasoning_effort = "alt-i"
global.toggle_fast_mode = "alt-f"
editor.delete_forward_word = ["alt-delete", "ctrl-delete", "ctrl-shift-delete"]
editor.move_word_right = ["alt-right", "ctrl-right"]

PaulRBerg · 1 month ago

Thanks for the idea @NerdyPunkDad - custom keybindings are a great workaround in the interim.

There's a typo in your comment in the 2nd bullet point - I think you meant to write alt-d.

`` editor.delete_forward_word = ["alt-delete", "ctrl-delete", "ctrl-shift-delete"] editor.move_word_right = ["alt-right", "ctrl-right"] ``

I'm not sure I understand why we need this. Can you explain? Why do they conflict with alt-i and alt-d and alt-f?

edit: I figured it out:

```toml
[tui.keymap]
chat.decrease_reasoning_effort = "alt-d"
chat.increase_reasoning_effort = "alt-i"
global.toggle_fast_mode = "alt-f"
# need to set this because
alt-d is by default set to delete_forward_word
editor.delete_forward_word = ["alt-delete", "ctrl-delete", "ctrl-shift-delete"]
# need to set because
alt-f is by default set to move_word_right`
editor.move_word_right = [
"alt-right",
"ctrl-right",
]

````

PaulRBerg · 1 month ago

I've modified @NerdyPunkDad's keymaps to use alt-minus and alt-= (note: on Macs at least, = is on the same key as +, but + requires a shift; I decided to stick with = for simplicity), which I find a little more intuitive and easier to remember. And they also solve the issue of having to override editor.delete_forward_word because alt-minus and alt-= do not bind to anything by default.

````toml
[tui.keymap]
chat.decrease_reasoning_effort = "alt-minus"
chat.increase_reasoning_effort = ["alt-="]
global.toggle_fast_mode = "alt-f"

# need to set because alt-f is by default set to move_word_right
editor.move_word_right = [
"alt-right",
"ctrl-right",
]

````

frhanjav · 1 month ago

shift + up and shift + down are the default keymaps to increase and decrease reasoning effort respectively. also you can do /keymap to check the existing keymaps. #9807 and #10155 these issues can be closed now.

PaulRBerg · 1 month ago

@frhanjav that's great news. In which Codex CLI version did they add keybindings for increasing/decreasing effort level?

jkryanchou · 1 month ago

Yeah, I found it the keyboard shortcuts you provide works

Paul Berg @.***>于2026年6月14日 周日23:45写道:

PaulRBerg left a comment (openai/codex#9807) <https://github.com/openai/codex/issues/9807#issuecomment-4702243529> @frhanjav <https://github.com/frhanjav> that's great news. In which Codex CLI version did they add keybindings for increasing/decreasing effort level? — Reply to this email directly, view it on GitHub <https://github.com/openai/codex/issues/9807?email_source=notifications&email_token=AAJGQRSLWTPAC33TAWYZJYL473B7ZA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTINZQGIZDIMZVGI42M4TFMFZW63VHMNXW23LFNZ2KKZLWMVXHJLDGN5XXIZLSL5RWY2LDNM#issuecomment-4702243529>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AAJGQRV7ARQLKFOFCGYRDWD473B7ZAVCNFSNUABFKJSXA33TNF2G64TZHM4TMNJUGE2TMNBZHNEXG43VMU5TGOBVGA2TGMJVGYY2C5QC> . Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS <https://github.com/notifications/mobile/ios/AAJGQRTHA7TJPW6HSI77N53473B7ZA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTINZQGIZDIMZVGI42M4TFMFZW63VHMNXW23LFNZ2KKZLWMVXHJKTGN5XXIZLSL5UW64Y> and Android <https://github.com/notifications/mobile/android/AAJGQRSVQDQ372OONOCXKBL473B7ZA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTINZQGIZDIMZVGI42M4TFMFZW63VHMNXW23LFNZ2KKZLWMVXHJLTGN5XXIZLSL5QW4ZDSN5UWI>. Download it today! You are receiving this because you commented.Message ID: @.***>
PaulRBerg · 1 month ago

Yeah, I can confirm that <kbd>SHIFT+↑</kbd> and <kbd>SHIFT+↓</kbd> work now.

Closing this issue.