Providers and models

Connect a built-in or plugin-provided model service, select a model, and configure provider-specific behavior.

Built-in providers

Built-in provider IDs are openai-chatgpt, github-copilot, deepseek, and alibaba-cloud. chatgpt is an alias for openai-chatgpt, copilot is an alias for github-copilot, and dashscope is an alias for alibaba-cloud.

The only built-in UI ID is tui. Plugins may register more providers, aliases, and UIs. Anthropic support is available through the external xal-anthropic plugin.

Set provider and model in Configuration, or use the corresponding TUI commands. Run xal models or /model to refresh and list available models.

Model discovery

xal models and /model refresh every connected provider's model catalog. The catalog supplies the model picker, context-window tracking, input modalities, and the choices shown by /thinking.

The ChatGPT provider discovers the account-visible catalog from the authenticated Codex service and stores the last successful result in <app-home>/cache/openai-chatgpt-models.json. If live discovery is unavailable, Xal reports the failure and uses that cache, then its bundled catalog.

GitHub Copilot discovers the models enabled for the connected subscription and stores the compatible subset in <app-home>/cache/github-copilot-models.json, bound to the token and GitHub domain that produced it. It exposes tool-capable models that advertise /chat/completions or omit endpoint metadata. Models that explicitly advertise only Responses or Anthropic Messages remain hidden. Some Personal Copilot accounts leave every model-picker flag unset, so the canonical Personal endpoint falls back to explicitly policy-enabled compatible models. Enterprise endpoints keep strict picker visibility. If live discovery is unavailable, only a matching validated cache is used; without one, model discovery fails.

DeepSeek discovers models from its authenticated /models endpoint and reports when it must use bundled model metadata. Alibaba Cloud uses a bundled catalog of Qwen models shared by Model Studio and Coding Plan.

Alibaba Cloud

Configure options under pluginConfig.alibaba-cloud:

OptionTypeDefaultDescription
baseUrlstringhttps://dashscope-intl.aliyuncs.com/compatible-mode/v1HTTPS OpenAI-compatible endpoint for the API key's region, workspace, or Coding Plan.
clientNamestringPackage application nameClient name used in the provider request user agent.

Alibaba Cloud Model Studio API keys are region-specific. Set baseUrl to the OpenAI-compatible API Host shown when the key is created. Coding Plan keys use https://coding-intl.dashscope.aliyuncs.com/v1. /connect stores the key without making a billable model request; the first turn validates that the key, endpoint, and selected model are compatible.

GitHub Copilot

Configure options under pluginConfig.github-copilot:

OptionTypeDefaultDescription
enterpriseDomainstringgithub.comGitHub Enterprise domain or HTTPS URL used for device login.
clientNamestringPackage application nameClient name used in the provider request user agent.

Run xal connect copilot, open the displayed GitHub device-login URL, and enter its one-time code. Xal uses the resulting GitHub OAuth token directly with the Copilot API and validates that the account returns at least one compatible agent model before storing the token. Personal catalogs that omit endpoint, picker, or policy metadata are accepted unless a model is explicitly incompatible or disabled. For GitHub Enterprise, configure enterpriseDomain before connecting.

OpenAI ChatGPT

Configure options under pluginConfig.openai-chatgpt:

OptionTypeDefaultDescription
contextWindowPositive integer260000Upper bound applied to the model's reported context window.
clientNamestringPackage application nameClient name used in the provider request user agent.

DeepSeek

pluginConfig.deepseek.clientName is a non-empty string used in the provider request user agent. It defaults to the package application name. DeepSeek currently has no other configuration options.