AI Model Switcher
Switch CLI models in VS Code's integrated terminal with Ctrl+=.
Codex (v0.1.5)
Set aiModelSwitcher.provider to codex and add
aiModelSwitcher.nextModel to terminal.integrated.commandsToSkipShell.
With Codex idle and its prompt empty, press Ctrl+=. Close any open
model/effort menu with Escape first. Wait about three seconds between presses.
The default presets are Luna Medium → Sol Medium → Luna Medium.
The first press selects Luna, even if Luna is already active. The cycle is tracked
per terminal and resets after reloading the extension. Manual model changes do
not change the next preset.
Configure aiModelSwitcher.codex.presets with objects containing model and
effort (low, medium, high, or xhigh). The extension opens /model, uses
Home and Down to select the preset model, and confirms the default Medium
reasoning level directly (other levels use Home/Down). Operations are separated
by 400 ms.
aiModelSwitcher.codex.pickerOrder must match the CLI model menu order. Defaults
match the supplied screenshot: Sol, Astra, Terra, Luna, GPT-5.5. Update it if the
catalog changes. Legacy Codex models and commandTemplate settings are unused.
Verified with Codex CLI 0.154.0: Luna Medium → Sol Medium → Luna Medium → Sol Medium.
/model <name> was treated as a regular prompt in 0.153.4, not a model switch.
This uses timed terminal input, not an API connection. It requires an empty, idle
CLI prompt and the tested picker layout. It cannot read the CLI state or confirm
success; check Codex's own Model changed to ... message. Do not invoke it in a
shell, during generation, or while a dialog or draft is open.
Devin
Set aiModelSwitcher.provider to devin and configure
aiModelSwitcher.devin.models. Devin retains the /model ${model} command
template and internal cycle counter. Its end-to-end behavior is not verified
by the Codex tests.
Keybinding
Ctrl+= is contributed by the extension, only while the terminal has focus. To override it, use VS Code's
"Preferences: Open Keyboard Shortcuts (JSON)" command on the client machine.
In Windows + WSL, keybindings belong to Windows VS Code, not WSL's
~/.config/Code/User/keybindings.json.
Build
Run npm run package. Compilation runs automatically before packaging.