Skip to content

About

Claude Code mod: pick the model with one keypress when a session opens

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

model-picker

A Claude Code mod that lets you pick the model with one keypress the moment a session opens. No more typing /model.

Model: claude-fable-5-1. Press a digit to switch.
1: Fable  2: Opus  3: Sonnet  4: Haiku  5: GLM-5.3 Flash Beta  6: GLM-5.3 744B  0: Keep

(The last two: the model rows another mod — intility-inference — keeps in the settings file. See Customise.)

Press a digit on the empty prompt and the mod runs /model <alias> for you. Press 0 to keep what you have. The band goes away either way.

Install

At the prompt of a terminal session:

/plugin install model-picker --marketplace alfredtm/claude-model-picker

Answer y to add the marketplace, then pick a scope (user is the usual one). The mod is active right away and in every session after.

Use

  • The band appears above the prompt on every interactive start.
  • 1 to 4 switch the model. 0 keeps the current one.
  • /pick-model brings the band back later in the session.

Headless runs (claude -p) never show it.

Default model

Set a model the mod switches to on every interactive start, before you press anything. Handy when something else (managed settings, say) resets the model between sessions.

Open /config, find Default model under model-picker and enter whatever /model accepts: opus, sonnet, a full id like claude-opus-5-5. Or put it in ~/.claude/settings.json by hand:

{
  "pluginConfigs": {
    "model-picker@alfredtm": {
      "options": { "defaultModel": "opus" }
    }
  }
}

(The key is the plugin's name as claude plugin list prints it; a --plugin-dir checkout is plain model-picker.)

The band still shows, with the default marked, so a digit overrides it for the session. Leave the option empty to keep whatever the session opened on.

Customise

Beside the four built-ins, the band carries every model row in the user settings.json's modelPicker.options — the same rows /model shows, so whatever keeps them there rides the band with a digit of its own: a hand-edited lineup, or a mod that maintains one (intility-inference writes its GLM models there, and they appear beside the Claude models). replaceBuiltInOptions: true shows the rows alone. The rows are read when a session opens and when /pick-model is run, from the user settings file only, and the band stops at nine choices — 0 keeps — because the digits run out.

The built-ins themselves live in one list at the top of hooks/choices.ts:

export const BUILT_INS: Choice[] = [
  { hotkey: '1', label: 'Fable', value: 'fable' },
  ...
]

value is whatever /model accepts: an alias like opus or a full model id.

Develop

Run it from a checkout without installing:

claude --plugin-dir /path/to/claude-model-picker

Edits to the hooks module hot-reload in that session. Check and test with:

claude plugin validate .
claude plugin test .

After the mod has loaded once, tsc -p . type-checks it against the declarations Claude Code lays down in .claude-plugin/types/.

License

MIT

About

Claude Code mod: pick the model with one keypress when a session opens

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages