Simplified custom model flow with canonical models#6934
Merged
Conversation
* 'main' of github.com:block/goose: (40 commits) Remove trailing space from links (#7156) fix: detect low balance and prompt for top up (#7166) feat(apps): add support for MCP apps to sample (#7039) Typescript SDK for ACP extension methods (#7319) chore: upgrade to rmcp 0.16.0 (#7274) docs: add monitoring subagent activity section (#7323) docs: document Desktop UI recipe editing for model/provider and extensions (#7327) docs: add CLAUDE_THINKING_BUDGET and CLAUDE_THINKING_ENABLED environm… (#7330) fix: display 'Code Mode' instead of 'code_execution' in CLI (#7321) docs: add Permission Policy documentation for MCP Apps (#7325) update RPI plan prompt (#7326) docs: add CLI syntax highlighting theme customization (#7324) fix(cli): replace shell-based update with native Rust implementation (#7148) docs: rename Code Execution extension to Code Mode extension (#7316) docs: remove ALPHA_FEATURES flag from documentation (#7315) docs: escape variable syntax in recipes (#7314) docs: update OTel environment variable and config guides (#7221) docs: system proxy settings (#7311) docs: add Summon extension tutorial and update Skills references (#7310) docs: agent session id (#7289) ...
Contributor
There was a problem hiding this comment.
Pull request overview
This pull request introduces a simplified custom model provider configuration flow using canonical models from a provider catalog. The changes enable users to select from pre-configured provider templates that auto-fill configuration fields, making it easier to set up custom providers.
Changes:
- Added a provider catalog system that fetches metadata from models.dev and creates templates for compatible providers
- Introduced a new multi-step UI flow for provider setup: users can choose between selecting a template or manual configuration
- Extended provider configuration to support
catalog_provider_idfor tracking template-based providers
Reviewed changes
Copilot reviewed 18 out of 20 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| ui/desktop/src/components/settings/providers/subcomponents/CardContainer.tsx | Added optional className prop for custom styling |
| ui/desktop/src/components/settings/providers/modal/subcomponents/forms/CustomProviderForm.tsx | Refactored to support multi-step flow with template selection, catalog browsing, and manual configuration |
| ui/desktop/src/components/settings/providers/modal/subcomponents/ProviderCatalogPicker.tsx | New component for browsing and selecting provider templates from the catalog |
| ui/desktop/src/components/settings/providers/ProviderGrid.tsx | Updated "Add Custom Provider" text to "Add Provider" with description |
| ui/desktop/src/api/*.ts | Added new types and API endpoints for provider catalog functionality |
| ui/desktop/openapi.json | Added OpenAPI schemas for catalog endpoints and types |
| crates/goose/src/providers/catalog.rs | New module implementing provider catalog logic with format detection and template generation |
| crates/goose/src/providers/canonical/registry.rs | Added method to get all models for a specific provider |
| crates/goose/src/providers/canonical/data/provider_metadata.json | New 785-line JSON file with provider metadata from models.dev |
| crates/goose/src/providers/canonical/build_canonical_models.rs | Updated build script to generate provider metadata and remove cost requirement |
| crates/goose/src/config/declarative_providers.rs | Added catalog_provider_id field to provider configs |
| crates/goose-server/src/routes/config_management.rs | Added endpoints for getting catalog and templates |
| crates/goose-cli/src/commands/configure.rs | Updated CLI to pass catalog_provider_id as None |
Files not reviewed (1)
- ui/desktop/package-lock.json: Language not supported
lifeizhou-ap
approved these changes
Feb 19, 2026
Collaborator
lifeizhou-ap
left a comment
There was a problem hiding this comment.
Great! Now it is easy to add new providers!
lifeizhou-ap
added a commit
that referenced
this pull request
Feb 24, 2026
* main: Simplified custom model flow with canonical models (#6934) feat: simplify the text editor to be more like pi (#7426) docs: add YouTube short embed to Neighborhood extension tutorial (#7456) fix: flake.nix build failure and deprecation warning (#7408) feat(claude-code): add permission prompt routing for approve mode (#7420) docs: generate manpages (#7443) Blog/goose v1 25 0 release (#7433) fix: detect truncated LLM responses in apps extension (#7354) fix: removed unnecessary version for goose acp macro dependency (#7428) add flag to hide select voice providers (#7406) New navigation settings layout options and styling (#6645) refactor: MCP-compliant theme tokens and CSS class rename (#7275) Redirect llama.cpp logs through tracing to avoid polluting CLI stdout/stderr (#7434) refactor: change open recipe in new window to pass recipe id (#7392) fix: handle truncated tool calls that break conversation alternation (#7424) streamline some github actions (#7430) Enable bedrock prompt cache (#6710) fix: use BEGIN IMMEDIATE to prevent SQLite deadlocks (#7429) Display working dir (#7419)
lifeizhou-ap
added a commit
that referenced
this pull request
Feb 24, 2026
* main: (171 commits) fix: TLDR CLI tab in Neighborhood MCP docs (#7461) fix(summon): restore skill supporting files and directory path in load output (#7457) Simplified custom model flow with canonical models (#6934) feat: simplify the text editor to be more like pi (#7426) docs: add YouTube short embed to Neighborhood extension tutorial (#7456) fix: flake.nix build failure and deprecation warning (#7408) feat(claude-code): add permission prompt routing for approve mode (#7420) docs: generate manpages (#7443) Blog/goose v1 25 0 release (#7433) fix: detect truncated LLM responses in apps extension (#7354) fix: removed unnecessary version for goose acp macro dependency (#7428) add flag to hide select voice providers (#7406) New navigation settings layout options and styling (#6645) refactor: MCP-compliant theme tokens and CSS class rename (#7275) Redirect llama.cpp logs through tracing to avoid polluting CLI stdout/stderr (#7434) refactor: change open recipe in new window to pass recipe id (#7392) fix: handle truncated tool calls that break conversation alternation (#7424) streamline some github actions (#7430) Enable bedrock prompt cache (#6710) fix: use BEGIN IMMEDIATE to prevent SQLite deadlocks (#7429) ...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Use canonical models to provide a new flow for initializing custom models that are part of our models database.
Screen.Recording.2026-02-19.at.1.02.38.AM.mov