From 52880417820b83e0fd469ddf7f0de917fc062e4c Mon Sep 17 00:00:00 2001 From: Ariane Emory <97994360+ariane-emory@users.noreply.github.com> Date: Tue, 25 Nov 2025 12:37:05 -0500 Subject: [PATCH] tweak: alphabetical (mostly) opencode models output (#4725) Co-authored-by: Dax Raad --- packages/opencode/src/cli/cmd/models.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/opencode/src/cli/cmd/models.ts b/packages/opencode/src/cli/cmd/models.ts index 8ce27c284..1ae4ae12c 100644 --- a/packages/opencode/src/cli/cmd/models.ts +++ b/packages/opencode/src/cli/cmd/models.ts @@ -38,7 +38,8 @@ export const ModelsCommand = cmd({ function printModels(providerID: string, verbose?: boolean) { const provider = providers[providerID] - for (const [modelID, model] of Object.entries(provider.info.models)) { + const sortedModels = Object.entries(provider.info.models).sort(([a], [b]) => a.localeCompare(b)) + for (const [modelID, model] of sortedModels) { process.stdout.write(`${providerID}/${modelID}`) process.stdout.write(EOL) if (verbose) { @@ -59,7 +60,15 @@ export const ModelsCommand = cmd({ return } - for (const providerID of Object.keys(providers)) { + const providerIDs = Object.keys(providers).sort((a, b) => { + const aIsOpencode = a.startsWith("opencode") + const bIsOpencode = b.startsWith("opencode") + if (aIsOpencode && !bIsOpencode) return -1 + if (!aIsOpencode && bIsOpencode) return 1 + return a.localeCompare(b) + }) + + for (const providerID of providerIDs) { printModels(providerID, args.verbose) } },