github / github/copilot-cli

Allow specifying a model *family* (e.g. `opus`, `sonnet`, `fable`) that resolves to its latest stable version

Open
#4,068 0 comments 0 reactions 0 assignees View on GitHub
area:configuration area:models
Dominant language
Shell
Stars
11.2k
Forks
1.9k
Avg merge
14h 16m
Merged PRs (30d)
6

Description

## Describe the feature or problem you'd like to solve
A default currently must pin an exact version (e.g. `claude-opus-4.8`). The Opus family alone has shipped `4.5`, `4.6`, `4.7`, and `4.8` (plus `-fast` variants), so anyone who wants "always the newest Opus" must manually edit their config on each release. I'd like to express a stable *family* preference and let the CLI track the newest version automatically. (I searched existing issues and did not find a duplicate family-level request; #3466 covers related model-selection UX pain but is a distinct problem.)

## Proposed solution
Accept a version-less family alias wherever a model is specified — `settings.json` `"model"`, `--model`, and `COPILOT_MODEL` — e.g. `"model": "opus"`, `copilot --model sonnet`, `COPILOT_MODEL=fable`. Resolution rules:

- Resolves to the highest **stable** version available to the account in that family, re-evaluated at each launch; prefer stable over `-fast`/preview variants when both exist.
- A family alias occupies the same precedence tier as an exact model id would in that source (so an explicit `--model ` still overrides a `settings.json` family alias, as today).
- If the family is unavailable to the account, fall through to the next resolver tier (or emit a clear error), rather than silently using an unrelated model.
- Complements the existing `auto` selector (which lets Copilot pick automatically): a family alias keeps the family fixed while auto-tracking versions within it.

## Example prompts or workflows
- `copilot --model opus -p "refactor this"` keeps using the newest Opus across upgrades with no config churn.
- A user sets `"model": "sonnet"` once and doesn't re-edit config on each Sonnet release.

## Additional context
Reduces how often users must interact with the model picker as new versions ship (see #3466 for current picker UX friction).

Contributor guide

Open the contributing guide

Research direction

Start by tracing the existing model resolution paths for settings.json, --model, and COPILOT_MODEL. The work is done when family aliases select the newest stable version available to the account, preserve source precedence, and fall through or report a clear error when unavailable.

Written by the indexing model from the issue text.

Assessment

Tech stack
shell
Domain
cli
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.