Skip to content

feat(provider): add CrossModel provider#12900

Open
hujuncheng wants to merge 2 commits into
continuedev:mainfrom
hujuncheng:add-crossmodel-provider
Open

feat(provider): add CrossModel provider#12900
hujuncheng wants to merge 2 commits into
continuedev:mainfrom
hujuncheng:add-crossmodel-provider

Conversation

@hujuncheng

@hujuncheng hujuncheng commented Jun 25, 2026

Copy link
Copy Markdown

Adds CrossModel as a new LLM provider.

CrossModel is an OpenAI- and Anthropic-compatible multi-provider API gateway. Users configure one API key and base URL to call models from OpenAI, Anthropic, DeepSeek, Gemini, Qwen, Kimi, GLM and more, with unified billing and usage tracking.

What this adds

  • core/llm/llms/CrossModel.ts — provider class extending the OpenAI-compatible base (apiBase: https://api.crossmodel.ai/v1/), plus a unit test.
  • Registered in core/llm/llms/index.ts (LLMClasses), core/llm/autodetect.ts (image support), and core/llm/toolSupport.ts.
  • packages/openai-adapterscrossmodel case + provider union entry (routes through the generic openAICompatible adapter).
  • GUI provider entry in gui/src/pages/AddNewModel/configs/providers.ts (requires API key; models are fetched dynamically from the gateway via /v1/models, so no hardcoded model list) + logo.
  • config_schema.json enum/description and a docs page under docs/customize/model-providers/more/crossmodel.mdx (added to docs/docs.json).

Notes

  • Implementation mirrors existing OpenAI-compatible providers (ClawRouter / OpenRouter).
  • packages/openai-adapters typechecks clean (tsc --noEmit). Model IDs use the <vendor>/<model> convention (e.g. anthropic/claude-sonnet-4-6); the catalog is at https://www.crossmodel.ai/models.

Docs: https://crossmodel.ai/docs


Summary by cubic

Adds CrossModel as a new OpenAI-/Anthropic-compatible provider with dynamic model discovery. Users can call models from OpenAI, Anthropic, DeepSeek, Gemini, Qwen, Kimi, GLM and more with one API key; tools and image models are supported.

  • New Features

    • New CrossModel provider (extends OpenAI base) with reasoning fields, default apiBase (https://api.crossmodel.ai/v1/), and unit test; registered in LLMClasses.
    • Tool support and image support added for crossmodel; model IDs use <vendor>/<model> (e.g., anthropic/claude-sonnet-4-6).
    • packages/openai-adapters routes crossmodel via the generic openAICompatible adapter; types updated.
    • GUI: new provider entry with API key input and dynamic /v1/models fetch, plus logo and docs page; docs/docs.json updated.
  • Bug Fixes

    • extensions/vscode/config_schema.json now requires apiKey for crossmodel; minor formatting cleanup.

Written for commit 8b61cc5. Summary will update on new commits.

Review in cubic

CrossModel (https://crossmodel.ai) is an OpenAI- and Anthropic-compatible
multi-provider API gateway. Adds it as an OpenAI-compatible provider so users
can call its catalog (OpenAI, Anthropic, DeepSeek, Gemini, Qwen, Kimi, GLM and
more) with one API key. Models can be fetched dynamically from /v1/models.
@hujuncheng hujuncheng requested a review from a team as a code owner June 25, 2026 17:27
@hujuncheng hujuncheng requested review from sestinj and removed request for a team June 25, 2026 17:27
@dosubot dosubot Bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Jun 25, 2026
@github-actions

github-actions Bot commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@hujuncheng

Copy link
Copy Markdown
Author

I have read the CLA Document and I hereby sign the CLA

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 12 files

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread extensions/vscode/config_schema.json
@hujuncheng

Copy link
Copy Markdown
Author

recheck

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant