You're viewing documentation for unreleased changes. View the latest release.

providers.json Settings Reference

This page lists every key the schema accepts, grouped into one table per provider. See providers.json for what the file is, where it lives, how these keys fit together, and worked examples of the configurations that come up most often.

Each row lists a key in full, such as providers.bedrock.aws.region, so you can search for a key from your providers.json and find it here verbatim.

A few keys use a placeholder instead:

  • {name}: the name you give a custom entry under providers.custom.
  • {header}: a header name in customHeaders.
  • {model-id}: a model id in models.overrides.

[] marks an array element, as in models.custom[].id.

Top-level keys

KeyDescriptionTypeDefault
$schemaPath or URL of the JSON Schema for this file. Editors use it for validation and autocomplete.string"https://assistant.posit.co/schemas/providers.schema.json"
providersProvider configuration, keyed by built-in provider id, plus the reserved `default` and `custom` keys.object—
versionVersion of this config format. Always 1.1—

anthropic

KeyDescriptionTypeDefault
providers.anthropicConfiguration for the built-in anthropic provider.object—
providers.anthropic.baseUrlBase URL for the provider's API. Some providers need a version segment: `https://api.anthropic.com/v1` for Anthropic, `https://api.openai.com/v1` for OpenAI, and `https://generativelanguage.googleapis.com/v1beta` for Gemini. A bare host will fail for those.string—
providers.anthropic.customHeadersExtra HTTP headers sent with each request to this provider, for proxy tenancy or routing markers, on providers whose transport supports custom headers. Do not put credentials or SDK-managed headers such as `Authorization`, `x-api-key`, or `anthropic-version` here. A `User-Agent` entry replaces the default Posit Assistant product identity; the SDK's library tokens are still appended.object—
providers.anthropic.customHeaders.{header}Header value.string—
providers.anthropic.enabledWhether this provider is available. Set to false to hide it from the model picker.booleantrue
providers.anthropic.endpointEndpoint URL for a self-hosted provider such as Ollama or LM Studio, for example `http://localhost:11434`.string—
providers.anthropic.endpointsBase URL overrides for one protocol at a time, keyed by protocol. Use this when every model on a protocol shares a path that the provider's other models do not.object—
providers.anthropic.endpoints.anthropic-messagesBase URL to use for this protocol.string—
providers.anthropic.endpoints.bedrock-converseBase URL to use for this protocol.string—
providers.anthropic.endpoints.google-generativeBase URL to use for this protocol.string—
providers.anthropic.endpoints.mlflow-responsesBase URL to use for this protocol.string—
providers.anthropic.endpoints.openai-chatBase URL to use for this protocol.string—
providers.anthropic.endpoints.openai-responsesBase URL to use for this protocol.string—
providers.anthropic.modelsWhich models this provider offers, and how their metadata is filled in.object—
providers.anthropic.models.allowModel ids to offer. When this list is non-empty it is exclusive: no other model from this provider is offered.string[]—
providers.anthropic.models.customModels to declare yourself, for models the provider does not return from discovery.object[]—
providers.anthropic.models.custom[].baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.anthropic.models.custom[].familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.anthropic.models.custom[].idModel id sent to the provider's API.string (required, non-empty)—
providers.anthropic.models.custom[].maxContextLengthTotal context window, in tokens.integer (required, positive)—
providers.anthropic.models.custom[].maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.anthropic.models.custom[].maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.anthropic.models.custom[].nameDisplay name shown in the model picker.string (required, non-empty)—
providers.anthropic.models.custom[].protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.anthropic.models.custom[].supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.anthropic.models.custom[].supportsImagesWhether the model accepts images as input.boolean (required)—
providers.anthropic.models.custom[].supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean (required)—
providers.anthropic.models.custom[].supportsToolsWhether the model can call tools.boolean (required)—
providers.anthropic.models.custom[].supportsWebSearchWhether the model supports the provider's own web search.boolean (required)—
providers.anthropic.models.custom[].thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.anthropic.models.denyModel ids to hide. Applied after `allow`, so a model listed in both is hidden.string[]—
providers.anthropic.models.discoveryWhether to ask the provider for its model list. `auto` discovers models from the provider; `off` offers only the models declared under `models.custom`."auto" | "off""auto"
providers.anthropic.models.overridesMetadata patches for models the provider already returns, keyed by model id. Only the fields you set are changed.object—
providers.anthropic.models.overrides.{model-id}—object—
providers.anthropic.models.overrides.{model-id}.baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.anthropic.models.overrides.{model-id}.familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.anthropic.models.overrides.{model-id}.maxContextLengthTotal context window, in tokens.integer (positive)—
providers.anthropic.models.overrides.{model-id}.maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.anthropic.models.overrides.{model-id}.maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.anthropic.models.overrides.{model-id}.nameDisplay name shown in the model picker.string—
providers.anthropic.models.overrides.{model-id}.protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.anthropic.models.overrides.{model-id}.supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.anthropic.models.overrides.{model-id}.supportsImagesWhether the model accepts images as input.boolean—
providers.anthropic.models.overrides.{model-id}.supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean—
providers.anthropic.models.overrides.{model-id}.supportsToolsWhether the model can call tools.boolean—
providers.anthropic.models.overrides.{model-id}.supportsWebSearchWhether the model supports the provider's own web search.boolean—
providers.anthropic.models.overrides.{model-id}.thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.anthropic.protocolAPI wire protocol for this provider. Set this only when the provider does not use its default protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—

bedrock

KeyDescriptionTypeDefault
providers.bedrockConfiguration for the built-in bedrock provider.object—
providers.bedrock.awsAWS connection settings for Bedrock. Credentials are not stored here.object—
providers.bedrock.aws.profileNamed profile from your AWS config and credentials files.string—
providers.bedrock.aws.regionAWS region to call, such as `us-east-1`.string—
providers.bedrock.baseUrlBase URL for the provider's API. Some providers need a version segment: `https://api.anthropic.com/v1` for Anthropic, `https://api.openai.com/v1` for OpenAI, and `https://generativelanguage.googleapis.com/v1beta` for Gemini. A bare host will fail for those.string—
providers.bedrock.customHeadersExtra HTTP headers sent with each request to this provider, for proxy tenancy or routing markers, on providers whose transport supports custom headers. Do not put credentials or SDK-managed headers such as `Authorization`, `x-api-key`, or `anthropic-version` here. A `User-Agent` entry replaces the default Posit Assistant product identity; the SDK's library tokens are still appended.object—
providers.bedrock.customHeaders.{header}Header value.string—
providers.bedrock.enabledWhether this provider is available. Set to false to hide it from the model picker.booleantrue
providers.bedrock.endpointEndpoint URL for a self-hosted provider such as Ollama or LM Studio, for example `http://localhost:11434`.string—
providers.bedrock.endpointsBase URL overrides for one protocol at a time, keyed by protocol. Use this when every model on a protocol shares a path that the provider's other models do not.object—
providers.bedrock.endpoints.anthropic-messagesBase URL to use for this protocol.string—
providers.bedrock.endpoints.bedrock-converseBase URL to use for this protocol.string—
providers.bedrock.endpoints.google-generativeBase URL to use for this protocol.string—
providers.bedrock.endpoints.mlflow-responsesBase URL to use for this protocol.string—
providers.bedrock.endpoints.openai-chatBase URL to use for this protocol.string—
providers.bedrock.endpoints.openai-responsesBase URL to use for this protocol.string—
providers.bedrock.modelsWhich models this provider offers, and how their metadata is filled in.object—
providers.bedrock.models.allowModel ids to offer. When this list is non-empty it is exclusive: no other model from this provider is offered.string[]—
providers.bedrock.models.customModels to declare yourself, for models the provider does not return from discovery.object[]—
providers.bedrock.models.custom[].baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.bedrock.models.custom[].familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.bedrock.models.custom[].idModel id sent to the provider's API.string (required, non-empty)—
providers.bedrock.models.custom[].maxContextLengthTotal context window, in tokens.integer (required, positive)—
providers.bedrock.models.custom[].maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.bedrock.models.custom[].maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.bedrock.models.custom[].nameDisplay name shown in the model picker.string (required, non-empty)—
providers.bedrock.models.custom[].protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.bedrock.models.custom[].supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.bedrock.models.custom[].supportsImagesWhether the model accepts images as input.boolean (required)—
providers.bedrock.models.custom[].supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean (required)—
providers.bedrock.models.custom[].supportsToolsWhether the model can call tools.boolean (required)—
providers.bedrock.models.custom[].supportsWebSearchWhether the model supports the provider's own web search.boolean (required)—
providers.bedrock.models.custom[].thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.bedrock.models.denyModel ids to hide. Applied after `allow`, so a model listed in both is hidden.string[]—
providers.bedrock.models.discoveryWhether to ask the provider for its model list. `auto` discovers models from the provider; `off` offers only the models declared under `models.custom`."auto" | "off""auto"
providers.bedrock.models.overridesMetadata patches for models the provider already returns, keyed by model id. Only the fields you set are changed.object—
providers.bedrock.models.overrides.{model-id}—object—
providers.bedrock.models.overrides.{model-id}.baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.bedrock.models.overrides.{model-id}.familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.bedrock.models.overrides.{model-id}.maxContextLengthTotal context window, in tokens.integer (positive)—
providers.bedrock.models.overrides.{model-id}.maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.bedrock.models.overrides.{model-id}.maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.bedrock.models.overrides.{model-id}.nameDisplay name shown in the model picker.string—
providers.bedrock.models.overrides.{model-id}.protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.bedrock.models.overrides.{model-id}.supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.bedrock.models.overrides.{model-id}.supportsImagesWhether the model accepts images as input.boolean—
providers.bedrock.models.overrides.{model-id}.supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean—
providers.bedrock.models.overrides.{model-id}.supportsToolsWhether the model can call tools.boolean—
providers.bedrock.models.overrides.{model-id}.supportsWebSearchWhether the model supports the provider's own web search.boolean—
providers.bedrock.models.overrides.{model-id}.thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.bedrock.protocolAPI wire protocol for this provider. Set this only when the provider does not use its default protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—

copilot

KeyDescriptionTypeDefault
providers.copilotConfiguration for the built-in copilot provider.object—
providers.copilot.baseUrlBase URL for the provider's API. Some providers need a version segment: `https://api.anthropic.com/v1` for Anthropic, `https://api.openai.com/v1` for OpenAI, and `https://generativelanguage.googleapis.com/v1beta` for Gemini. A bare host will fail for those.string—
providers.copilot.customHeadersExtra HTTP headers sent with each request to this provider, for proxy tenancy or routing markers, on providers whose transport supports custom headers. Do not put credentials or SDK-managed headers such as `Authorization`, `x-api-key`, or `anthropic-version` here. A `User-Agent` entry replaces the default Posit Assistant product identity; the SDK's library tokens are still appended.object—
providers.copilot.customHeaders.{header}Header value.string—
providers.copilot.enabledWhether this provider is available. Set to false to hide it from the model picker.booleantrue
providers.copilot.endpointEndpoint URL for a self-hosted provider such as Ollama or LM Studio, for example `http://localhost:11434`.string—
providers.copilot.endpointsBase URL overrides for one protocol at a time, keyed by protocol. Use this when every model on a protocol shares a path that the provider's other models do not.object—
providers.copilot.endpoints.anthropic-messagesBase URL to use for this protocol.string—
providers.copilot.endpoints.bedrock-converseBase URL to use for this protocol.string—
providers.copilot.endpoints.google-generativeBase URL to use for this protocol.string—
providers.copilot.endpoints.mlflow-responsesBase URL to use for this protocol.string—
providers.copilot.endpoints.openai-chatBase URL to use for this protocol.string—
providers.copilot.endpoints.openai-responsesBase URL to use for this protocol.string—
providers.copilot.modelsWhich models this provider offers, and how their metadata is filled in.object—
providers.copilot.models.allowModel ids to offer. When this list is non-empty it is exclusive: no other model from this provider is offered.string[]—
providers.copilot.models.customModels to declare yourself, for models the provider does not return from discovery.object[]—
providers.copilot.models.custom[].baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.copilot.models.custom[].familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.copilot.models.custom[].idModel id sent to the provider's API.string (required, non-empty)—
providers.copilot.models.custom[].maxContextLengthTotal context window, in tokens.integer (required, positive)—
providers.copilot.models.custom[].maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.copilot.models.custom[].maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.copilot.models.custom[].nameDisplay name shown in the model picker.string (required, non-empty)—
providers.copilot.models.custom[].protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.copilot.models.custom[].supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.copilot.models.custom[].supportsImagesWhether the model accepts images as input.boolean (required)—
providers.copilot.models.custom[].supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean (required)—
providers.copilot.models.custom[].supportsToolsWhether the model can call tools.boolean (required)—
providers.copilot.models.custom[].supportsWebSearchWhether the model supports the provider's own web search.boolean (required)—
providers.copilot.models.custom[].thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.copilot.models.denyModel ids to hide. Applied after `allow`, so a model listed in both is hidden.string[]—
providers.copilot.models.discoveryWhether to ask the provider for its model list. `auto` discovers models from the provider; `off` offers only the models declared under `models.custom`."auto" | "off""auto"
providers.copilot.models.overridesMetadata patches for models the provider already returns, keyed by model id. Only the fields you set are changed.object—
providers.copilot.models.overrides.{model-id}—object—
providers.copilot.models.overrides.{model-id}.baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.copilot.models.overrides.{model-id}.familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.copilot.models.overrides.{model-id}.maxContextLengthTotal context window, in tokens.integer (positive)—
providers.copilot.models.overrides.{model-id}.maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.copilot.models.overrides.{model-id}.maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.copilot.models.overrides.{model-id}.nameDisplay name shown in the model picker.string—
providers.copilot.models.overrides.{model-id}.protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.copilot.models.overrides.{model-id}.supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.copilot.models.overrides.{model-id}.supportsImagesWhether the model accepts images as input.boolean—
providers.copilot.models.overrides.{model-id}.supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean—
providers.copilot.models.overrides.{model-id}.supportsToolsWhether the model can call tools.boolean—
providers.copilot.models.overrides.{model-id}.supportsWebSearchWhether the model supports the provider's own web search.boolean—
providers.copilot.models.overrides.{model-id}.thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.copilot.protocolAPI wire protocol for this provider. Set this only when the provider does not use its default protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—

custom

KeyDescriptionTypeDefault
providers.customProviders you declare yourself, keyed by a name of your choosing.object—
providers.custom.{name}—object—
providers.custom.{name}.apiKeyOptionalWhether an API key is optional for this provider. Set to true when the endpoint authenticates another way, such as a local proxy that adds SSO credentials, so no API key needs to be configured.boolean—
providers.custom.{name}.awsAWS connection settings for Bedrock. Credentials are not stored here.object—
providers.custom.{name}.aws.profileNamed profile from your AWS config and credentials files.string—
providers.custom.{name}.aws.regionAWS region to call, such as `us-east-1`.string—
providers.custom.{name}.baseUrlBase URL for the provider's API. Some providers need a version segment: `https://api.anthropic.com/v1` for Anthropic, `https://api.openai.com/v1` for OpenAI, and `https://generativelanguage.googleapis.com/v1beta` for Gemini. A bare host will fail for those.string—
providers.custom.{name}.customHeadersExtra HTTP headers sent with each request to this provider, for proxy tenancy or routing markers, on providers whose transport supports custom headers. Do not put credentials or SDK-managed headers such as `Authorization`, `x-api-key`, or `anthropic-version` here. A `User-Agent` entry replaces the default Posit Assistant product identity; the SDK's library tokens are still appended.object—
providers.custom.{name}.customHeaders.{header}Header value.string—
providers.custom.{name}.enabledWhether this provider is available. Set to false to hide it from the model picker.booleantrue
providers.custom.{name}.endpointEndpoint URL for a self-hosted provider such as Ollama or LM Studio, for example `http://localhost:11434`.string—
providers.custom.{name}.endpointsBase URL overrides for one protocol at a time, keyed by protocol. Use this when every model on a protocol shares a path that the provider's other models do not.object—
providers.custom.{name}.endpoints.anthropic-messagesBase URL to use for this protocol.string—
providers.custom.{name}.endpoints.bedrock-converseBase URL to use for this protocol.string—
providers.custom.{name}.endpoints.google-generativeBase URL to use for this protocol.string—
providers.custom.{name}.endpoints.mlflow-responsesBase URL to use for this protocol.string—
providers.custom.{name}.endpoints.openai-chatBase URL to use for this protocol.string—
providers.custom.{name}.endpoints.openai-responsesBase URL to use for this protocol.string—
providers.custom.{name}.googleCloudGoogle Cloud connection settings for Vertex AI.object—
providers.custom.{name}.googleCloud.locationGoogle Cloud region for Vertex AI, such as `us-central1`.string—
providers.custom.{name}.googleCloud.projectGoogle Cloud project id for Vertex AI.string—
providers.custom.{name}.modelsWhich models this provider offers, and how their metadata is filled in.object—
providers.custom.{name}.models.allowModel ids to offer. When this list is non-empty it is exclusive: no other model from this provider is offered.string[]—
providers.custom.{name}.models.customModels to declare yourself, for models the provider does not return from discovery.object[]—
providers.custom.{name}.models.custom[].baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.custom.{name}.models.custom[].familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.custom.{name}.models.custom[].idModel id sent to the provider's API.string (required, non-empty)—
providers.custom.{name}.models.custom[].maxContextLengthTotal context window, in tokens.integer (required, positive)—
providers.custom.{name}.models.custom[].maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.custom.{name}.models.custom[].maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.custom.{name}.models.custom[].nameDisplay name shown in the model picker.string (required, non-empty)—
providers.custom.{name}.models.custom[].protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.custom.{name}.models.custom[].supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.custom.{name}.models.custom[].supportsImagesWhether the model accepts images as input.boolean (required)—
providers.custom.{name}.models.custom[].supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean (required)—
providers.custom.{name}.models.custom[].supportsToolsWhether the model can call tools.boolean (required)—
providers.custom.{name}.models.custom[].supportsWebSearchWhether the model supports the provider's own web search.boolean (required)—
providers.custom.{name}.models.custom[].thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.custom.{name}.models.denyModel ids to hide. Applied after `allow`, so a model listed in both is hidden.string[]—
providers.custom.{name}.models.discoveryWhether to ask the provider for its model list. `auto` discovers models from the provider; `off` offers only the models declared under `models.custom`."auto" | "off""auto"
providers.custom.{name}.models.overridesMetadata patches for models the provider already returns, keyed by model id. Only the fields you set are changed.object—
providers.custom.{name}.models.overrides.{model-id}—object—
providers.custom.{name}.models.overrides.{model-id}.baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.custom.{name}.models.overrides.{model-id}.familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.custom.{name}.models.overrides.{model-id}.maxContextLengthTotal context window, in tokens.integer (positive)—
providers.custom.{name}.models.overrides.{model-id}.maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.custom.{name}.models.overrides.{model-id}.maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.custom.{name}.models.overrides.{model-id}.nameDisplay name shown in the model picker.string—
providers.custom.{name}.models.overrides.{model-id}.protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.custom.{name}.models.overrides.{model-id}.supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.custom.{name}.models.overrides.{model-id}.supportsImagesWhether the model accepts images as input.boolean—
providers.custom.{name}.models.overrides.{model-id}.supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean—
providers.custom.{name}.models.overrides.{model-id}.supportsToolsWhether the model can call tools.boolean—
providers.custom.{name}.models.overrides.{model-id}.supportsWebSearchWhether the model supports the provider's own web search.boolean—
providers.custom.{name}.models.overrides.{model-id}.thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.custom.{name}.protocolAPI wire protocol for this provider. Set this only when the provider does not use its default protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.custom.{name}.snowflakeSnowflake connection settings. Credentials are not stored here.object—
providers.custom.{name}.snowflake.accountSnowflake account identifier.string—
providers.custom.{name}.snowflake.connectionNameWhich connection from `connections.toml` to use. Ignored in Positron, which uses its own Snowflake sign-in.string—
providers.custom.{name}.snowflake.homeDirectory holding `connections.toml`, the same thing `SNOWFLAKE_HOME` sets. Point this at a managed directory when your credentials are not in the default location.string—
providers.custom.{name}.snowflake.hostSnowflake host name. Set this when the account identifier alone does not resolve to the right host.string—
providers.custom.{name}.typeWhich provider client handles this entry."openai-compatible" | "anthropic" | "openai" | "gemini" | "aws" | "snowflake" | "google-vertex" | "ollama" | "lmstudio" | "deepseek" | "openrouter" | "ms-foundry" | "litellm" | "portkey" (required)—

databricks

KeyDescriptionTypeDefault
providers.databricksConfiguration for the built-in databricks provider.object—
providers.databricks.baseUrlBase URL for the provider's API. Some providers need a version segment: `https://api.anthropic.com/v1` for Anthropic, `https://api.openai.com/v1` for OpenAI, and `https://generativelanguage.googleapis.com/v1beta` for Gemini. A bare host will fail for those.string—
providers.databricks.customHeadersExtra HTTP headers sent with each request to this provider, for proxy tenancy or routing markers, on providers whose transport supports custom headers. Do not put credentials or SDK-managed headers such as `Authorization`, `x-api-key`, or `anthropic-version` here. A `User-Agent` entry replaces the default Posit Assistant product identity; the SDK's library tokens are still appended.object—
providers.databricks.customHeaders.{header}Header value.string—
providers.databricks.databricksDatabricks workspace settings.object—
providers.databricks.databricks.hostDatabricks workspace host. This is not a chat base URL: the serving-endpoint URL is derived from it.string—
providers.databricks.enabledWhether this provider is available. Set to false to hide it from the model picker.booleantrue
providers.databricks.endpointEndpoint URL for a self-hosted provider such as Ollama or LM Studio, for example `http://localhost:11434`.string—
providers.databricks.endpointsBase URL overrides for one protocol at a time, keyed by protocol. Use this when every model on a protocol shares a path that the provider's other models do not.object—
providers.databricks.endpoints.anthropic-messagesBase URL to use for this protocol.string—
providers.databricks.endpoints.bedrock-converseBase URL to use for this protocol.string—
providers.databricks.endpoints.google-generativeBase URL to use for this protocol.string—
providers.databricks.endpoints.mlflow-responsesBase URL to use for this protocol.string—
providers.databricks.endpoints.openai-chatBase URL to use for this protocol.string—
providers.databricks.endpoints.openai-responsesBase URL to use for this protocol.string—
providers.databricks.modelsWhich models this provider offers, and how their metadata is filled in.object—
providers.databricks.models.allowModel ids to offer. When this list is non-empty it is exclusive: no other model from this provider is offered.string[]—
providers.databricks.models.customModels to declare yourself, for models the provider does not return from discovery.object[]—
providers.databricks.models.custom[].baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.databricks.models.custom[].familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.databricks.models.custom[].idModel id sent to the provider's API.string (required, non-empty)—
providers.databricks.models.custom[].maxContextLengthTotal context window, in tokens.integer (required, positive)—
providers.databricks.models.custom[].maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.databricks.models.custom[].maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.databricks.models.custom[].nameDisplay name shown in the model picker.string (required, non-empty)—
providers.databricks.models.custom[].protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.databricks.models.custom[].supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.databricks.models.custom[].supportsImagesWhether the model accepts images as input.boolean (required)—
providers.databricks.models.custom[].supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean (required)—
providers.databricks.models.custom[].supportsToolsWhether the model can call tools.boolean (required)—
providers.databricks.models.custom[].supportsWebSearchWhether the model supports the provider's own web search.boolean (required)—
providers.databricks.models.custom[].thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.databricks.models.denyModel ids to hide. Applied after `allow`, so a model listed in both is hidden.string[]—
providers.databricks.models.discoveryWhether to ask the provider for its model list. `auto` discovers models from the provider; `off` offers only the models declared under `models.custom`."auto" | "off""auto"
providers.databricks.models.overridesMetadata patches for models the provider already returns, keyed by model id. Only the fields you set are changed.object—
providers.databricks.models.overrides.{model-id}—object—
providers.databricks.models.overrides.{model-id}.baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.databricks.models.overrides.{model-id}.familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.databricks.models.overrides.{model-id}.maxContextLengthTotal context window, in tokens.integer (positive)—
providers.databricks.models.overrides.{model-id}.maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.databricks.models.overrides.{model-id}.maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.databricks.models.overrides.{model-id}.nameDisplay name shown in the model picker.string—
providers.databricks.models.overrides.{model-id}.protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.databricks.models.overrides.{model-id}.supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.databricks.models.overrides.{model-id}.supportsImagesWhether the model accepts images as input.boolean—
providers.databricks.models.overrides.{model-id}.supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean—
providers.databricks.models.overrides.{model-id}.supportsToolsWhether the model can call tools.boolean—
providers.databricks.models.overrides.{model-id}.supportsWebSearchWhether the model supports the provider's own web search.boolean—
providers.databricks.models.overrides.{model-id}.thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.databricks.protocolAPI wire protocol for this provider. Set this only when the provider does not use its default protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—

deepseek

KeyDescriptionTypeDefault
providers.deepseekConfiguration for the built-in deepseek provider.object—
providers.deepseek.baseUrlBase URL for the provider's API. Some providers need a version segment: `https://api.anthropic.com/v1` for Anthropic, `https://api.openai.com/v1` for OpenAI, and `https://generativelanguage.googleapis.com/v1beta` for Gemini. A bare host will fail for those.string—
providers.deepseek.customHeadersExtra HTTP headers sent with each request to this provider, for proxy tenancy or routing markers, on providers whose transport supports custom headers. Do not put credentials or SDK-managed headers such as `Authorization`, `x-api-key`, or `anthropic-version` here. A `User-Agent` entry replaces the default Posit Assistant product identity; the SDK's library tokens are still appended.object—
providers.deepseek.customHeaders.{header}Header value.string—
providers.deepseek.enabledWhether this provider is available. Set to false to hide it from the model picker.booleantrue
providers.deepseek.endpointEndpoint URL for a self-hosted provider such as Ollama or LM Studio, for example `http://localhost:11434`.string—
providers.deepseek.endpointsBase URL overrides for one protocol at a time, keyed by protocol. Use this when every model on a protocol shares a path that the provider's other models do not.object—
providers.deepseek.endpoints.anthropic-messagesBase URL to use for this protocol.string—
providers.deepseek.endpoints.bedrock-converseBase URL to use for this protocol.string—
providers.deepseek.endpoints.google-generativeBase URL to use for this protocol.string—
providers.deepseek.endpoints.mlflow-responsesBase URL to use for this protocol.string—
providers.deepseek.endpoints.openai-chatBase URL to use for this protocol.string—
providers.deepseek.endpoints.openai-responsesBase URL to use for this protocol.string—
providers.deepseek.modelsWhich models this provider offers, and how their metadata is filled in.object—
providers.deepseek.models.allowModel ids to offer. When this list is non-empty it is exclusive: no other model from this provider is offered.string[]—
providers.deepseek.models.customModels to declare yourself, for models the provider does not return from discovery.object[]—
providers.deepseek.models.custom[].baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.deepseek.models.custom[].familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.deepseek.models.custom[].idModel id sent to the provider's API.string (required, non-empty)—
providers.deepseek.models.custom[].maxContextLengthTotal context window, in tokens.integer (required, positive)—
providers.deepseek.models.custom[].maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.deepseek.models.custom[].maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.deepseek.models.custom[].nameDisplay name shown in the model picker.string (required, non-empty)—
providers.deepseek.models.custom[].protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.deepseek.models.custom[].supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.deepseek.models.custom[].supportsImagesWhether the model accepts images as input.boolean (required)—
providers.deepseek.models.custom[].supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean (required)—
providers.deepseek.models.custom[].supportsToolsWhether the model can call tools.boolean (required)—
providers.deepseek.models.custom[].supportsWebSearchWhether the model supports the provider's own web search.boolean (required)—
providers.deepseek.models.custom[].thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.deepseek.models.denyModel ids to hide. Applied after `allow`, so a model listed in both is hidden.string[]—
providers.deepseek.models.discoveryWhether to ask the provider for its model list. `auto` discovers models from the provider; `off` offers only the models declared under `models.custom`."auto" | "off""auto"
providers.deepseek.models.overridesMetadata patches for models the provider already returns, keyed by model id. Only the fields you set are changed.object—
providers.deepseek.models.overrides.{model-id}—object—
providers.deepseek.models.overrides.{model-id}.baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.deepseek.models.overrides.{model-id}.familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.deepseek.models.overrides.{model-id}.maxContextLengthTotal context window, in tokens.integer (positive)—
providers.deepseek.models.overrides.{model-id}.maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.deepseek.models.overrides.{model-id}.maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.deepseek.models.overrides.{model-id}.nameDisplay name shown in the model picker.string—
providers.deepseek.models.overrides.{model-id}.protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.deepseek.models.overrides.{model-id}.supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.deepseek.models.overrides.{model-id}.supportsImagesWhether the model accepts images as input.boolean—
providers.deepseek.models.overrides.{model-id}.supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean—
providers.deepseek.models.overrides.{model-id}.supportsToolsWhether the model can call tools.boolean—
providers.deepseek.models.overrides.{model-id}.supportsWebSearchWhether the model supports the provider's own web search.boolean—
providers.deepseek.models.overrides.{model-id}.thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.deepseek.protocolAPI wire protocol for this provider. Set this only when the provider does not use its default protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—

default

KeyDescriptionTypeDefault
providers.defaultBaseline applied to every provider that does not set the same key itself.object—
providers.default.enabledDefault enablement for providers that do not set `enabled` themselves.booleantrue

gemini

KeyDescriptionTypeDefault
providers.geminiConfiguration for the built-in gemini provider.object—
providers.gemini.baseUrlBase URL for the provider's API. Some providers need a version segment: `https://api.anthropic.com/v1` for Anthropic, `https://api.openai.com/v1` for OpenAI, and `https://generativelanguage.googleapis.com/v1beta` for Gemini. A bare host will fail for those.string—
providers.gemini.customHeadersExtra HTTP headers sent with each request to this provider, for proxy tenancy or routing markers, on providers whose transport supports custom headers. Do not put credentials or SDK-managed headers such as `Authorization`, `x-api-key`, or `anthropic-version` here. A `User-Agent` entry replaces the default Posit Assistant product identity; the SDK's library tokens are still appended.object—
providers.gemini.customHeaders.{header}Header value.string—
providers.gemini.enabledWhether this provider is available. Set to false to hide it from the model picker.booleantrue
providers.gemini.endpointEndpoint URL for a self-hosted provider such as Ollama or LM Studio, for example `http://localhost:11434`.string—
providers.gemini.endpointsBase URL overrides for one protocol at a time, keyed by protocol. Use this when every model on a protocol shares a path that the provider's other models do not.object—
providers.gemini.endpoints.anthropic-messagesBase URL to use for this protocol.string—
providers.gemini.endpoints.bedrock-converseBase URL to use for this protocol.string—
providers.gemini.endpoints.google-generativeBase URL to use for this protocol.string—
providers.gemini.endpoints.mlflow-responsesBase URL to use for this protocol.string—
providers.gemini.endpoints.openai-chatBase URL to use for this protocol.string—
providers.gemini.endpoints.openai-responsesBase URL to use for this protocol.string—
providers.gemini.modelsWhich models this provider offers, and how their metadata is filled in.object—
providers.gemini.models.allowModel ids to offer. When this list is non-empty it is exclusive: no other model from this provider is offered.string[]—
providers.gemini.models.customModels to declare yourself, for models the provider does not return from discovery.object[]—
providers.gemini.models.custom[].baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.gemini.models.custom[].familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.gemini.models.custom[].idModel id sent to the provider's API.string (required, non-empty)—
providers.gemini.models.custom[].maxContextLengthTotal context window, in tokens.integer (required, positive)—
providers.gemini.models.custom[].maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.gemini.models.custom[].maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.gemini.models.custom[].nameDisplay name shown in the model picker.string (required, non-empty)—
providers.gemini.models.custom[].protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.gemini.models.custom[].supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.gemini.models.custom[].supportsImagesWhether the model accepts images as input.boolean (required)—
providers.gemini.models.custom[].supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean (required)—
providers.gemini.models.custom[].supportsToolsWhether the model can call tools.boolean (required)—
providers.gemini.models.custom[].supportsWebSearchWhether the model supports the provider's own web search.boolean (required)—
providers.gemini.models.custom[].thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.gemini.models.denyModel ids to hide. Applied after `allow`, so a model listed in both is hidden.string[]—
providers.gemini.models.discoveryWhether to ask the provider for its model list. `auto` discovers models from the provider; `off` offers only the models declared under `models.custom`."auto" | "off""auto"
providers.gemini.models.overridesMetadata patches for models the provider already returns, keyed by model id. Only the fields you set are changed.object—
providers.gemini.models.overrides.{model-id}—object—
providers.gemini.models.overrides.{model-id}.baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.gemini.models.overrides.{model-id}.familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.gemini.models.overrides.{model-id}.maxContextLengthTotal context window, in tokens.integer (positive)—
providers.gemini.models.overrides.{model-id}.maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.gemini.models.overrides.{model-id}.maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.gemini.models.overrides.{model-id}.nameDisplay name shown in the model picker.string—
providers.gemini.models.overrides.{model-id}.protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.gemini.models.overrides.{model-id}.supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.gemini.models.overrides.{model-id}.supportsImagesWhether the model accepts images as input.boolean—
providers.gemini.models.overrides.{model-id}.supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean—
providers.gemini.models.overrides.{model-id}.supportsToolsWhether the model can call tools.boolean—
providers.gemini.models.overrides.{model-id}.supportsWebSearchWhether the model supports the provider's own web search.boolean—
providers.gemini.models.overrides.{model-id}.thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.gemini.protocolAPI wire protocol for this provider. Set this only when the provider does not use its default protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—

google-vertex

KeyDescriptionTypeDefault
providers.google-vertexConfiguration for the built-in google-vertex provider.object—
providers.google-vertex.baseUrlBase URL for the provider's API. Some providers need a version segment: `https://api.anthropic.com/v1` for Anthropic, `https://api.openai.com/v1` for OpenAI, and `https://generativelanguage.googleapis.com/v1beta` for Gemini. A bare host will fail for those.string—
providers.google-vertex.customHeadersExtra HTTP headers sent with each request to this provider, for proxy tenancy or routing markers, on providers whose transport supports custom headers. Do not put credentials or SDK-managed headers such as `Authorization`, `x-api-key`, or `anthropic-version` here. A `User-Agent` entry replaces the default Posit Assistant product identity; the SDK's library tokens are still appended.object—
providers.google-vertex.customHeaders.{header}Header value.string—
providers.google-vertex.enabledWhether this provider is available. Set to false to hide it from the model picker.booleantrue
providers.google-vertex.endpointEndpoint URL for a self-hosted provider such as Ollama or LM Studio, for example `http://localhost:11434`.string—
providers.google-vertex.endpointsBase URL overrides for one protocol at a time, keyed by protocol. Use this when every model on a protocol shares a path that the provider's other models do not.object—
providers.google-vertex.endpoints.anthropic-messagesBase URL to use for this protocol.string—
providers.google-vertex.endpoints.bedrock-converseBase URL to use for this protocol.string—
providers.google-vertex.endpoints.google-generativeBase URL to use for this protocol.string—
providers.google-vertex.endpoints.mlflow-responsesBase URL to use for this protocol.string—
providers.google-vertex.endpoints.openai-chatBase URL to use for this protocol.string—
providers.google-vertex.endpoints.openai-responsesBase URL to use for this protocol.string—
providers.google-vertex.googleCloudGoogle Cloud connection settings for Vertex AI.object—
providers.google-vertex.googleCloud.locationGoogle Cloud region for Vertex AI, such as `us-central1`.string"us-central1"
providers.google-vertex.googleCloud.projectGoogle Cloud project id for Vertex AI.string—
providers.google-vertex.modelsWhich models this provider offers, and how their metadata is filled in.object—
providers.google-vertex.models.allowModel ids to offer. When this list is non-empty it is exclusive: no other model from this provider is offered.string[]—
providers.google-vertex.models.customModels to declare yourself, for models the provider does not return from discovery.object[]—
providers.google-vertex.models.custom[].baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.google-vertex.models.custom[].familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.google-vertex.models.custom[].idModel id sent to the provider's API.string (required, non-empty)—
providers.google-vertex.models.custom[].maxContextLengthTotal context window, in tokens.integer (required, positive)—
providers.google-vertex.models.custom[].maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.google-vertex.models.custom[].maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.google-vertex.models.custom[].nameDisplay name shown in the model picker.string (required, non-empty)—
providers.google-vertex.models.custom[].protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.google-vertex.models.custom[].supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.google-vertex.models.custom[].supportsImagesWhether the model accepts images as input.boolean (required)—
providers.google-vertex.models.custom[].supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean (required)—
providers.google-vertex.models.custom[].supportsToolsWhether the model can call tools.boolean (required)—
providers.google-vertex.models.custom[].supportsWebSearchWhether the model supports the provider's own web search.boolean (required)—
providers.google-vertex.models.custom[].thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.google-vertex.models.denyModel ids to hide. Applied after `allow`, so a model listed in both is hidden.string[]—
providers.google-vertex.models.discoveryWhether to ask the provider for its model list. `auto` discovers models from the provider; `off` offers only the models declared under `models.custom`."auto" | "off""auto"
providers.google-vertex.models.overridesMetadata patches for models the provider already returns, keyed by model id. Only the fields you set are changed.object—
providers.google-vertex.models.overrides.{model-id}—object—
providers.google-vertex.models.overrides.{model-id}.baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.google-vertex.models.overrides.{model-id}.familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.google-vertex.models.overrides.{model-id}.maxContextLengthTotal context window, in tokens.integer (positive)—
providers.google-vertex.models.overrides.{model-id}.maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.google-vertex.models.overrides.{model-id}.maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.google-vertex.models.overrides.{model-id}.nameDisplay name shown in the model picker.string—
providers.google-vertex.models.overrides.{model-id}.protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.google-vertex.models.overrides.{model-id}.supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.google-vertex.models.overrides.{model-id}.supportsImagesWhether the model accepts images as input.boolean—
providers.google-vertex.models.overrides.{model-id}.supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean—
providers.google-vertex.models.overrides.{model-id}.supportsToolsWhether the model can call tools.boolean—
providers.google-vertex.models.overrides.{model-id}.supportsWebSearchWhether the model supports the provider's own web search.boolean—
providers.google-vertex.models.overrides.{model-id}.thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.google-vertex.protocolAPI wire protocol for this provider. Set this only when the provider does not use its default protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—

litellm

KeyDescriptionTypeDefault
providers.litellmConfiguration for the built-in litellm provider.object—
providers.litellm.baseUrlBase URL for the provider's API. Some providers need a version segment: `https://api.anthropic.com/v1` for Anthropic, `https://api.openai.com/v1` for OpenAI, and `https://generativelanguage.googleapis.com/v1beta` for Gemini. A bare host will fail for those.string—
providers.litellm.customHeadersExtra HTTP headers sent with each request to this provider, for proxy tenancy or routing markers, on providers whose transport supports custom headers. Do not put credentials or SDK-managed headers such as `Authorization`, `x-api-key`, or `anthropic-version` here. A `User-Agent` entry replaces the default Posit Assistant product identity; the SDK's library tokens are still appended.object—
providers.litellm.customHeaders.{header}Header value.string—
providers.litellm.enabledWhether this provider is available. Set to false to hide it from the model picker.booleantrue
providers.litellm.endpointEndpoint URL for a self-hosted provider such as Ollama or LM Studio, for example `http://localhost:11434`.string—
providers.litellm.endpointsBase URL overrides for one protocol at a time, keyed by protocol. Use this when every model on a protocol shares a path that the provider's other models do not.object—
providers.litellm.endpoints.anthropic-messagesBase URL to use for this protocol.string—
providers.litellm.endpoints.bedrock-converseBase URL to use for this protocol.string—
providers.litellm.endpoints.google-generativeBase URL to use for this protocol.string—
providers.litellm.endpoints.mlflow-responsesBase URL to use for this protocol.string—
providers.litellm.endpoints.openai-chatBase URL to use for this protocol.string—
providers.litellm.endpoints.openai-responsesBase URL to use for this protocol.string—
providers.litellm.modelsWhich models this provider offers, and how their metadata is filled in.object—
providers.litellm.models.allowModel ids to offer. When this list is non-empty it is exclusive: no other model from this provider is offered.string[]—
providers.litellm.models.customModels to declare yourself, for models the provider does not return from discovery.object[]—
providers.litellm.models.custom[].baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.litellm.models.custom[].familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.litellm.models.custom[].idModel id sent to the provider's API.string (required, non-empty)—
providers.litellm.models.custom[].maxContextLengthTotal context window, in tokens.integer (required, positive)—
providers.litellm.models.custom[].maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.litellm.models.custom[].maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.litellm.models.custom[].nameDisplay name shown in the model picker.string (required, non-empty)—
providers.litellm.models.custom[].protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.litellm.models.custom[].supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.litellm.models.custom[].supportsImagesWhether the model accepts images as input.boolean (required)—
providers.litellm.models.custom[].supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean (required)—
providers.litellm.models.custom[].supportsToolsWhether the model can call tools.boolean (required)—
providers.litellm.models.custom[].supportsWebSearchWhether the model supports the provider's own web search.boolean (required)—
providers.litellm.models.custom[].thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.litellm.models.denyModel ids to hide. Applied after `allow`, so a model listed in both is hidden.string[]—
providers.litellm.models.discoveryWhether to ask the provider for its model list. `auto` discovers models from the provider; `off` offers only the models declared under `models.custom`."auto" | "off""auto"
providers.litellm.models.overridesMetadata patches for models the provider already returns, keyed by model id. Only the fields you set are changed.object—
providers.litellm.models.overrides.{model-id}—object—
providers.litellm.models.overrides.{model-id}.baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.litellm.models.overrides.{model-id}.familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.litellm.models.overrides.{model-id}.maxContextLengthTotal context window, in tokens.integer (positive)—
providers.litellm.models.overrides.{model-id}.maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.litellm.models.overrides.{model-id}.maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.litellm.models.overrides.{model-id}.nameDisplay name shown in the model picker.string—
providers.litellm.models.overrides.{model-id}.protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.litellm.models.overrides.{model-id}.supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.litellm.models.overrides.{model-id}.supportsImagesWhether the model accepts images as input.boolean—
providers.litellm.models.overrides.{model-id}.supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean—
providers.litellm.models.overrides.{model-id}.supportsToolsWhether the model can call tools.boolean—
providers.litellm.models.overrides.{model-id}.supportsWebSearchWhether the model supports the provider's own web search.boolean—
providers.litellm.models.overrides.{model-id}.thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.litellm.protocolAPI wire protocol for this provider. Set this only when the provider does not use its default protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—

lmstudio

KeyDescriptionTypeDefault
providers.lmstudioConfiguration for the built-in lmstudio provider.object—
providers.lmstudio.baseUrlBase URL for the provider's API. Some providers need a version segment: `https://api.anthropic.com/v1` for Anthropic, `https://api.openai.com/v1` for OpenAI, and `https://generativelanguage.googleapis.com/v1beta` for Gemini. A bare host will fail for those.string—
providers.lmstudio.customHeadersExtra HTTP headers sent with each request to this provider, for proxy tenancy or routing markers, on providers whose transport supports custom headers. Do not put credentials or SDK-managed headers such as `Authorization`, `x-api-key`, or `anthropic-version` here. A `User-Agent` entry replaces the default Posit Assistant product identity; the SDK's library tokens are still appended.object—
providers.lmstudio.customHeaders.{header}Header value.string—
providers.lmstudio.enabledWhether this provider is available. Set to false to hide it from the model picker.booleantrue
providers.lmstudio.endpointEndpoint URL for a self-hosted provider such as Ollama or LM Studio, for example `http://localhost:11434`.string"http://localhost:1234/v1"
providers.lmstudio.endpointsBase URL overrides for one protocol at a time, keyed by protocol. Use this when every model on a protocol shares a path that the provider's other models do not.object—
providers.lmstudio.endpoints.anthropic-messagesBase URL to use for this protocol.string—
providers.lmstudio.endpoints.bedrock-converseBase URL to use for this protocol.string—
providers.lmstudio.endpoints.google-generativeBase URL to use for this protocol.string—
providers.lmstudio.endpoints.mlflow-responsesBase URL to use for this protocol.string—
providers.lmstudio.endpoints.openai-chatBase URL to use for this protocol.string—
providers.lmstudio.endpoints.openai-responsesBase URL to use for this protocol.string—
providers.lmstudio.modelsWhich models this provider offers, and how their metadata is filled in.object—
providers.lmstudio.models.allowModel ids to offer. When this list is non-empty it is exclusive: no other model from this provider is offered.string[]—
providers.lmstudio.models.customModels to declare yourself, for models the provider does not return from discovery.object[]—
providers.lmstudio.models.custom[].baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.lmstudio.models.custom[].familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.lmstudio.models.custom[].idModel id sent to the provider's API.string (required, non-empty)—
providers.lmstudio.models.custom[].maxContextLengthTotal context window, in tokens.integer (required, positive)—
providers.lmstudio.models.custom[].maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.lmstudio.models.custom[].maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.lmstudio.models.custom[].nameDisplay name shown in the model picker.string (required, non-empty)—
providers.lmstudio.models.custom[].protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.lmstudio.models.custom[].supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.lmstudio.models.custom[].supportsImagesWhether the model accepts images as input.boolean (required)—
providers.lmstudio.models.custom[].supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean (required)—
providers.lmstudio.models.custom[].supportsToolsWhether the model can call tools.boolean (required)—
providers.lmstudio.models.custom[].supportsWebSearchWhether the model supports the provider's own web search.boolean (required)—
providers.lmstudio.models.custom[].thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.lmstudio.models.denyModel ids to hide. Applied after `allow`, so a model listed in both is hidden.string[]—
providers.lmstudio.models.discoveryWhether to ask the provider for its model list. `auto` discovers models from the provider; `off` offers only the models declared under `models.custom`."auto" | "off""auto"
providers.lmstudio.models.overridesMetadata patches for models the provider already returns, keyed by model id. Only the fields you set are changed.object—
providers.lmstudio.models.overrides.{model-id}—object—
providers.lmstudio.models.overrides.{model-id}.baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.lmstudio.models.overrides.{model-id}.familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.lmstudio.models.overrides.{model-id}.maxContextLengthTotal context window, in tokens.integer (positive)—
providers.lmstudio.models.overrides.{model-id}.maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.lmstudio.models.overrides.{model-id}.maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.lmstudio.models.overrides.{model-id}.nameDisplay name shown in the model picker.string—
providers.lmstudio.models.overrides.{model-id}.protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.lmstudio.models.overrides.{model-id}.supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.lmstudio.models.overrides.{model-id}.supportsImagesWhether the model accepts images as input.boolean—
providers.lmstudio.models.overrides.{model-id}.supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean—
providers.lmstudio.models.overrides.{model-id}.supportsToolsWhether the model can call tools.boolean—
providers.lmstudio.models.overrides.{model-id}.supportsWebSearchWhether the model supports the provider's own web search.boolean—
providers.lmstudio.models.overrides.{model-id}.thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.lmstudio.protocolAPI wire protocol for this provider. Set this only when the provider does not use its default protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—

ms-foundry

KeyDescriptionTypeDefault
providers.ms-foundryConfiguration for the built-in ms-foundry provider.object—
providers.ms-foundry.azureMicrosoft Entra ID connection settings for the built-in ms-foundry provider.object—
providers.ms-foundry.azure.authModeHow to authenticate: `apikey` (default, back-compat) or `entra` for Microsoft Entra ID sign-in."apikey" | "entra""apikey"
providers.ms-foundry.azure.scopeOAuth scope requested when acquiring a Microsoft Entra ID token.string"https://cognitiveservices.azure.com/.default"
providers.ms-foundry.azure.tenantIdMicrosoft Entra ID tenant to authenticate against. Uses the default tenant if unset.string—
providers.ms-foundry.baseUrlBase URL for the provider's API. Some providers need a version segment: `https://api.anthropic.com/v1` for Anthropic, `https://api.openai.com/v1` for OpenAI, and `https://generativelanguage.googleapis.com/v1beta` for Gemini. A bare host will fail for those.string—
providers.ms-foundry.customHeadersExtra HTTP headers sent with each request to this provider, for proxy tenancy or routing markers, on providers whose transport supports custom headers. Do not put credentials or SDK-managed headers such as `Authorization`, `x-api-key`, or `anthropic-version` here. A `User-Agent` entry replaces the default Posit Assistant product identity; the SDK's library tokens are still appended.object—
providers.ms-foundry.customHeaders.{header}Header value.string—
providers.ms-foundry.enabledWhether this provider is available. Set to false to hide it from the model picker.booleantrue
providers.ms-foundry.endpointEndpoint URL for a self-hosted provider such as Ollama or LM Studio, for example `http://localhost:11434`.string—
providers.ms-foundry.endpointsBase URL overrides for one protocol at a time, keyed by protocol. Use this when every model on a protocol shares a path that the provider's other models do not.object—
providers.ms-foundry.endpoints.anthropic-messagesBase URL to use for this protocol.string—
providers.ms-foundry.endpoints.bedrock-converseBase URL to use for this protocol.string—
providers.ms-foundry.endpoints.google-generativeBase URL to use for this protocol.string—
providers.ms-foundry.endpoints.mlflow-responsesBase URL to use for this protocol.string—
providers.ms-foundry.endpoints.openai-chatBase URL to use for this protocol.string—
providers.ms-foundry.endpoints.openai-responsesBase URL to use for this protocol.string—
providers.ms-foundry.modelsWhich models this provider offers, and how their metadata is filled in.object—
providers.ms-foundry.models.allowModel ids to offer. When this list is non-empty it is exclusive: no other model from this provider is offered.string[]—
providers.ms-foundry.models.customModels to declare yourself, for models the provider does not return from discovery.object[]—
providers.ms-foundry.models.custom[].baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.ms-foundry.models.custom[].familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.ms-foundry.models.custom[].idModel id sent to the provider's API.string (required, non-empty)—
providers.ms-foundry.models.custom[].maxContextLengthTotal context window, in tokens.integer (required, positive)—
providers.ms-foundry.models.custom[].maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.ms-foundry.models.custom[].maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.ms-foundry.models.custom[].nameDisplay name shown in the model picker.string (required, non-empty)—
providers.ms-foundry.models.custom[].protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.ms-foundry.models.custom[].supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.ms-foundry.models.custom[].supportsImagesWhether the model accepts images as input.boolean (required)—
providers.ms-foundry.models.custom[].supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean (required)—
providers.ms-foundry.models.custom[].supportsToolsWhether the model can call tools.boolean (required)—
providers.ms-foundry.models.custom[].supportsWebSearchWhether the model supports the provider's own web search.boolean (required)—
providers.ms-foundry.models.custom[].thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.ms-foundry.models.denyModel ids to hide. Applied after `allow`, so a model listed in both is hidden.string[]—
providers.ms-foundry.models.discoveryWhether to ask the provider for its model list. `auto` discovers models from the provider; `off` offers only the models declared under `models.custom`."auto" | "off""auto"
providers.ms-foundry.models.overridesMetadata patches for models the provider already returns, keyed by model id. Only the fields you set are changed.object—
providers.ms-foundry.models.overrides.{model-id}—object—
providers.ms-foundry.models.overrides.{model-id}.baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.ms-foundry.models.overrides.{model-id}.familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.ms-foundry.models.overrides.{model-id}.maxContextLengthTotal context window, in tokens.integer (positive)—
providers.ms-foundry.models.overrides.{model-id}.maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.ms-foundry.models.overrides.{model-id}.maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.ms-foundry.models.overrides.{model-id}.nameDisplay name shown in the model picker.string—
providers.ms-foundry.models.overrides.{model-id}.protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.ms-foundry.models.overrides.{model-id}.supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.ms-foundry.models.overrides.{model-id}.supportsImagesWhether the model accepts images as input.boolean—
providers.ms-foundry.models.overrides.{model-id}.supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean—
providers.ms-foundry.models.overrides.{model-id}.supportsToolsWhether the model can call tools.boolean—
providers.ms-foundry.models.overrides.{model-id}.supportsWebSearchWhether the model supports the provider's own web search.boolean—
providers.ms-foundry.models.overrides.{model-id}.thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.ms-foundry.protocolAPI wire protocol for this provider. Set this only when the provider does not use its default protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—

ollama

KeyDescriptionTypeDefault
providers.ollamaConfiguration for the built-in ollama provider.object—
providers.ollama.baseUrlBase URL for the provider's API. Some providers need a version segment: `https://api.anthropic.com/v1` for Anthropic, `https://api.openai.com/v1` for OpenAI, and `https://generativelanguage.googleapis.com/v1beta` for Gemini. A bare host will fail for those.string—
providers.ollama.customHeadersExtra HTTP headers sent with each request to this provider, for proxy tenancy or routing markers, on providers whose transport supports custom headers. Do not put credentials or SDK-managed headers such as `Authorization`, `x-api-key`, or `anthropic-version` here. A `User-Agent` entry replaces the default Posit Assistant product identity; the SDK's library tokens are still appended.object—
providers.ollama.customHeaders.{header}Header value.string—
providers.ollama.enabledWhether this provider is available. Set to false to hide it from the model picker.booleantrue
providers.ollama.endpointEndpoint URL for a self-hosted provider such as Ollama or LM Studio, for example `http://localhost:11434`.string"http://localhost:11434"
providers.ollama.endpointsBase URL overrides for one protocol at a time, keyed by protocol. Use this when every model on a protocol shares a path that the provider's other models do not.object—
providers.ollama.endpoints.anthropic-messagesBase URL to use for this protocol.string—
providers.ollama.endpoints.bedrock-converseBase URL to use for this protocol.string—
providers.ollama.endpoints.google-generativeBase URL to use for this protocol.string—
providers.ollama.endpoints.mlflow-responsesBase URL to use for this protocol.string—
providers.ollama.endpoints.openai-chatBase URL to use for this protocol.string—
providers.ollama.endpoints.openai-responsesBase URL to use for this protocol.string—
providers.ollama.modelsWhich models this provider offers, and how their metadata is filled in.object—
providers.ollama.models.allowModel ids to offer. When this list is non-empty it is exclusive: no other model from this provider is offered.string[]—
providers.ollama.models.customModels to declare yourself, for models the provider does not return from discovery.object[]—
providers.ollama.models.custom[].baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.ollama.models.custom[].familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.ollama.models.custom[].idModel id sent to the provider's API.string (required, non-empty)—
providers.ollama.models.custom[].maxContextLengthTotal context window, in tokens.integer (required, positive)—
providers.ollama.models.custom[].maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.ollama.models.custom[].maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.ollama.models.custom[].nameDisplay name shown in the model picker.string (required, non-empty)—
providers.ollama.models.custom[].protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.ollama.models.custom[].supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.ollama.models.custom[].supportsImagesWhether the model accepts images as input.boolean (required)—
providers.ollama.models.custom[].supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean (required)—
providers.ollama.models.custom[].supportsToolsWhether the model can call tools.boolean (required)—
providers.ollama.models.custom[].supportsWebSearchWhether the model supports the provider's own web search.boolean (required)—
providers.ollama.models.custom[].thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.ollama.models.denyModel ids to hide. Applied after `allow`, so a model listed in both is hidden.string[]—
providers.ollama.models.discoveryWhether to ask the provider for its model list. `auto` discovers models from the provider; `off` offers only the models declared under `models.custom`."auto" | "off""auto"
providers.ollama.models.overridesMetadata patches for models the provider already returns, keyed by model id. Only the fields you set are changed.object—
providers.ollama.models.overrides.{model-id}—object—
providers.ollama.models.overrides.{model-id}.baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.ollama.models.overrides.{model-id}.familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.ollama.models.overrides.{model-id}.maxContextLengthTotal context window, in tokens.integer (positive)—
providers.ollama.models.overrides.{model-id}.maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.ollama.models.overrides.{model-id}.maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.ollama.models.overrides.{model-id}.nameDisplay name shown in the model picker.string—
providers.ollama.models.overrides.{model-id}.protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.ollama.models.overrides.{model-id}.supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.ollama.models.overrides.{model-id}.supportsImagesWhether the model accepts images as input.boolean—
providers.ollama.models.overrides.{model-id}.supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean—
providers.ollama.models.overrides.{model-id}.supportsToolsWhether the model can call tools.boolean—
providers.ollama.models.overrides.{model-id}.supportsWebSearchWhether the model supports the provider's own web search.boolean—
providers.ollama.models.overrides.{model-id}.thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.ollama.protocolAPI wire protocol for this provider. Set this only when the provider does not use its default protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—

openai

KeyDescriptionTypeDefault
providers.openaiConfiguration for the built-in openai provider.object—
providers.openai.baseUrlBase URL for the provider's API. Some providers need a version segment: `https://api.anthropic.com/v1` for Anthropic, `https://api.openai.com/v1` for OpenAI, and `https://generativelanguage.googleapis.com/v1beta` for Gemini. A bare host will fail for those.string—
providers.openai.customHeadersExtra HTTP headers sent with each request to this provider, for proxy tenancy or routing markers, on providers whose transport supports custom headers. Do not put credentials or SDK-managed headers such as `Authorization`, `x-api-key`, or `anthropic-version` here. A `User-Agent` entry replaces the default Posit Assistant product identity; the SDK's library tokens are still appended.object—
providers.openai.customHeaders.{header}Header value.string—
providers.openai.enabledWhether this provider is available. Set to false to hide it from the model picker.booleantrue
providers.openai.endpointEndpoint URL for a self-hosted provider such as Ollama or LM Studio, for example `http://localhost:11434`.string—
providers.openai.endpointsBase URL overrides for one protocol at a time, keyed by protocol. Use this when every model on a protocol shares a path that the provider's other models do not.object—
providers.openai.endpoints.anthropic-messagesBase URL to use for this protocol.string—
providers.openai.endpoints.bedrock-converseBase URL to use for this protocol.string—
providers.openai.endpoints.google-generativeBase URL to use for this protocol.string—
providers.openai.endpoints.mlflow-responsesBase URL to use for this protocol.string—
providers.openai.endpoints.openai-chatBase URL to use for this protocol.string—
providers.openai.endpoints.openai-responsesBase URL to use for this protocol.string—
providers.openai.modelsWhich models this provider offers, and how their metadata is filled in.object—
providers.openai.models.allowModel ids to offer. When this list is non-empty it is exclusive: no other model from this provider is offered.string[]—
providers.openai.models.customModels to declare yourself, for models the provider does not return from discovery.object[]—
providers.openai.models.custom[].baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.openai.models.custom[].familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.openai.models.custom[].idModel id sent to the provider's API.string (required, non-empty)—
providers.openai.models.custom[].maxContextLengthTotal context window, in tokens.integer (required, positive)—
providers.openai.models.custom[].maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.openai.models.custom[].maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.openai.models.custom[].nameDisplay name shown in the model picker.string (required, non-empty)—
providers.openai.models.custom[].protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.openai.models.custom[].supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.openai.models.custom[].supportsImagesWhether the model accepts images as input.boolean (required)—
providers.openai.models.custom[].supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean (required)—
providers.openai.models.custom[].supportsToolsWhether the model can call tools.boolean (required)—
providers.openai.models.custom[].supportsWebSearchWhether the model supports the provider's own web search.boolean (required)—
providers.openai.models.custom[].thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.openai.models.denyModel ids to hide. Applied after `allow`, so a model listed in both is hidden.string[]—
providers.openai.models.discoveryWhether to ask the provider for its model list. `auto` discovers models from the provider; `off` offers only the models declared under `models.custom`."auto" | "off""auto"
providers.openai.models.overridesMetadata patches for models the provider already returns, keyed by model id. Only the fields you set are changed.object—
providers.openai.models.overrides.{model-id}—object—
providers.openai.models.overrides.{model-id}.baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.openai.models.overrides.{model-id}.familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.openai.models.overrides.{model-id}.maxContextLengthTotal context window, in tokens.integer (positive)—
providers.openai.models.overrides.{model-id}.maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.openai.models.overrides.{model-id}.maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.openai.models.overrides.{model-id}.nameDisplay name shown in the model picker.string—
providers.openai.models.overrides.{model-id}.protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.openai.models.overrides.{model-id}.supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.openai.models.overrides.{model-id}.supportsImagesWhether the model accepts images as input.boolean—
providers.openai.models.overrides.{model-id}.supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean—
providers.openai.models.overrides.{model-id}.supportsToolsWhether the model can call tools.boolean—
providers.openai.models.overrides.{model-id}.supportsWebSearchWhether the model supports the provider's own web search.boolean—
providers.openai.models.overrides.{model-id}.thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.openai.protocolAPI wire protocol for this provider. Set this only when the provider does not use its default protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—

openai-compatible

KeyDescriptionTypeDefault
providers.openai-compatibleConfiguration for the built-in openai-compatible provider.object—
providers.openai-compatible.baseUrlBase URL for the provider's API. Some providers need a version segment: `https://api.anthropic.com/v1` for Anthropic, `https://api.openai.com/v1` for OpenAI, and `https://generativelanguage.googleapis.com/v1beta` for Gemini. A bare host will fail for those.string—
providers.openai-compatible.customHeadersExtra HTTP headers sent with each request to this provider, for proxy tenancy or routing markers, on providers whose transport supports custom headers. Do not put credentials or SDK-managed headers such as `Authorization`, `x-api-key`, or `anthropic-version` here. A `User-Agent` entry replaces the default Posit Assistant product identity; the SDK's library tokens are still appended.object—
providers.openai-compatible.customHeaders.{header}Header value.string—
providers.openai-compatible.enabledWhether this provider is available. Set to false to hide it from the model picker.booleantrue
providers.openai-compatible.endpointEndpoint URL for a self-hosted provider such as Ollama or LM Studio, for example `http://localhost:11434`.string—
providers.openai-compatible.endpointsBase URL overrides for one protocol at a time, keyed by protocol. Use this when every model on a protocol shares a path that the provider's other models do not.object—
providers.openai-compatible.endpoints.anthropic-messagesBase URL to use for this protocol.string—
providers.openai-compatible.endpoints.bedrock-converseBase URL to use for this protocol.string—
providers.openai-compatible.endpoints.google-generativeBase URL to use for this protocol.string—
providers.openai-compatible.endpoints.mlflow-responsesBase URL to use for this protocol.string—
providers.openai-compatible.endpoints.openai-chatBase URL to use for this protocol.string—
providers.openai-compatible.endpoints.openai-responsesBase URL to use for this protocol.string—
providers.openai-compatible.modelsWhich models this provider offers, and how their metadata is filled in.object—
providers.openai-compatible.models.allowModel ids to offer. When this list is non-empty it is exclusive: no other model from this provider is offered.string[]—
providers.openai-compatible.models.customModels to declare yourself, for models the provider does not return from discovery.object[]—
providers.openai-compatible.models.custom[].baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.openai-compatible.models.custom[].familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.openai-compatible.models.custom[].idModel id sent to the provider's API.string (required, non-empty)—
providers.openai-compatible.models.custom[].maxContextLengthTotal context window, in tokens.integer (required, positive)—
providers.openai-compatible.models.custom[].maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.openai-compatible.models.custom[].maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.openai-compatible.models.custom[].nameDisplay name shown in the model picker.string (required, non-empty)—
providers.openai-compatible.models.custom[].protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.openai-compatible.models.custom[].supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.openai-compatible.models.custom[].supportsImagesWhether the model accepts images as input.boolean (required)—
providers.openai-compatible.models.custom[].supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean (required)—
providers.openai-compatible.models.custom[].supportsToolsWhether the model can call tools.boolean (required)—
providers.openai-compatible.models.custom[].supportsWebSearchWhether the model supports the provider's own web search.boolean (required)—
providers.openai-compatible.models.custom[].thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.openai-compatible.models.denyModel ids to hide. Applied after `allow`, so a model listed in both is hidden.string[]—
providers.openai-compatible.models.discoveryWhether to ask the provider for its model list. `auto` discovers models from the provider; `off` offers only the models declared under `models.custom`."auto" | "off""auto"
providers.openai-compatible.models.overridesMetadata patches for models the provider already returns, keyed by model id. Only the fields you set are changed.object—
providers.openai-compatible.models.overrides.{model-id}—object—
providers.openai-compatible.models.overrides.{model-id}.baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.openai-compatible.models.overrides.{model-id}.familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.openai-compatible.models.overrides.{model-id}.maxContextLengthTotal context window, in tokens.integer (positive)—
providers.openai-compatible.models.overrides.{model-id}.maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.openai-compatible.models.overrides.{model-id}.maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.openai-compatible.models.overrides.{model-id}.nameDisplay name shown in the model picker.string—
providers.openai-compatible.models.overrides.{model-id}.protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.openai-compatible.models.overrides.{model-id}.supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.openai-compatible.models.overrides.{model-id}.supportsImagesWhether the model accepts images as input.boolean—
providers.openai-compatible.models.overrides.{model-id}.supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean—
providers.openai-compatible.models.overrides.{model-id}.supportsToolsWhether the model can call tools.boolean—
providers.openai-compatible.models.overrides.{model-id}.supportsWebSearchWhether the model supports the provider's own web search.boolean—
providers.openai-compatible.models.overrides.{model-id}.thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.openai-compatible.protocolAPI wire protocol for this provider. Set this only when the provider does not use its default protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—

opencode

KeyDescriptionTypeDefault
providers.opencodeConfiguration for the built-in opencode provider.object—
providers.opencode.baseUrlBase URL for the provider's API. Some providers need a version segment: `https://api.anthropic.com/v1` for Anthropic, `https://api.openai.com/v1` for OpenAI, and `https://generativelanguage.googleapis.com/v1beta` for Gemini. A bare host will fail for those.string"https://opencode.ai/zen/go/v1"
providers.opencode.customHeadersExtra HTTP headers sent with each request to this provider, for proxy tenancy or routing markers, on providers whose transport supports custom headers. Do not put credentials or SDK-managed headers such as `Authorization`, `x-api-key`, or `anthropic-version` here. A `User-Agent` entry replaces the default Posit Assistant product identity; the SDK's library tokens are still appended.object—
providers.opencode.customHeaders.{header}Header value.string—
providers.opencode.enabledWhether this provider is available. Set to false to hide it from the model picker.booleantrue
providers.opencode.endpointEndpoint URL for a self-hosted provider such as Ollama or LM Studio, for example `http://localhost:11434`.string—
providers.opencode.endpointsBase URL overrides for one protocol at a time, keyed by protocol. Use this when every model on a protocol shares a path that the provider's other models do not.object—
providers.opencode.endpoints.anthropic-messagesBase URL to use for this protocol.string—
providers.opencode.endpoints.bedrock-converseBase URL to use for this protocol.string—
providers.opencode.endpoints.google-generativeBase URL to use for this protocol.string—
providers.opencode.endpoints.mlflow-responsesBase URL to use for this protocol.string—
providers.opencode.endpoints.openai-chatBase URL to use for this protocol.string—
providers.opencode.endpoints.openai-responsesBase URL to use for this protocol.string—
providers.opencode.modelsWhich models this provider offers, and how their metadata is filled in.object—
providers.opencode.models.allowModel ids to offer. When this list is non-empty it is exclusive: no other model from this provider is offered.string[]—
providers.opencode.models.customModels to declare yourself, for models the provider does not return from discovery.object[]—
providers.opencode.models.custom[].baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.opencode.models.custom[].familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.opencode.models.custom[].idModel id sent to the provider's API.string (required, non-empty)—
providers.opencode.models.custom[].maxContextLengthTotal context window, in tokens.integer (required, positive)—
providers.opencode.models.custom[].maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.opencode.models.custom[].maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.opencode.models.custom[].nameDisplay name shown in the model picker.string (required, non-empty)—
providers.opencode.models.custom[].protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.opencode.models.custom[].supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.opencode.models.custom[].supportsImagesWhether the model accepts images as input.boolean (required)—
providers.opencode.models.custom[].supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean (required)—
providers.opencode.models.custom[].supportsToolsWhether the model can call tools.boolean (required)—
providers.opencode.models.custom[].supportsWebSearchWhether the model supports the provider's own web search.boolean (required)—
providers.opencode.models.custom[].thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.opencode.models.denyModel ids to hide. Applied after `allow`, so a model listed in both is hidden.string[]—
providers.opencode.models.discoveryWhether to ask the provider for its model list. `auto` discovers models from the provider; `off` offers only the models declared under `models.custom`."auto" | "off""auto"
providers.opencode.models.overridesMetadata patches for models the provider already returns, keyed by model id. Only the fields you set are changed.object—
providers.opencode.models.overrides.{model-id}—object—
providers.opencode.models.overrides.{model-id}.baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.opencode.models.overrides.{model-id}.familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.opencode.models.overrides.{model-id}.maxContextLengthTotal context window, in tokens.integer (positive)—
providers.opencode.models.overrides.{model-id}.maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.opencode.models.overrides.{model-id}.maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.opencode.models.overrides.{model-id}.nameDisplay name shown in the model picker.string—
providers.opencode.models.overrides.{model-id}.protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.opencode.models.overrides.{model-id}.supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.opencode.models.overrides.{model-id}.supportsImagesWhether the model accepts images as input.boolean—
providers.opencode.models.overrides.{model-id}.supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean—
providers.opencode.models.overrides.{model-id}.supportsToolsWhether the model can call tools.boolean—
providers.opencode.models.overrides.{model-id}.supportsWebSearchWhether the model supports the provider's own web search.boolean—
providers.opencode.models.overrides.{model-id}.thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.opencode.productWhich OpenCode hosted product to use: `go` (subscription, the default) or `zen` (pay-per-request). Selects the API endpoint; an explicit `baseUrl` overrides the selection."go" | "zen"—
providers.opencode.protocolAPI wire protocol for this provider. Set this only when the provider does not use its default protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—

openrouter

KeyDescriptionTypeDefault
providers.openrouterConfiguration for the built-in openrouter provider.object—
providers.openrouter.baseUrlBase URL for the provider's API. Some providers need a version segment: `https://api.anthropic.com/v1` for Anthropic, `https://api.openai.com/v1` for OpenAI, and `https://generativelanguage.googleapis.com/v1beta` for Gemini. A bare host will fail for those.string—
providers.openrouter.customHeadersExtra HTTP headers sent with each request to this provider, for proxy tenancy or routing markers, on providers whose transport supports custom headers. Do not put credentials or SDK-managed headers such as `Authorization`, `x-api-key`, or `anthropic-version` here. A `User-Agent` entry replaces the default Posit Assistant product identity; the SDK's library tokens are still appended.object—
providers.openrouter.customHeaders.{header}Header value.string—
providers.openrouter.enabledWhether this provider is available. Set to false to hide it from the model picker.booleantrue
providers.openrouter.endpointEndpoint URL for a self-hosted provider such as Ollama or LM Studio, for example `http://localhost:11434`.string—
providers.openrouter.endpointsBase URL overrides for one protocol at a time, keyed by protocol. Use this when every model on a protocol shares a path that the provider's other models do not.object—
providers.openrouter.endpoints.anthropic-messagesBase URL to use for this protocol.string—
providers.openrouter.endpoints.bedrock-converseBase URL to use for this protocol.string—
providers.openrouter.endpoints.google-generativeBase URL to use for this protocol.string—
providers.openrouter.endpoints.mlflow-responsesBase URL to use for this protocol.string—
providers.openrouter.endpoints.openai-chatBase URL to use for this protocol.string—
providers.openrouter.endpoints.openai-responsesBase URL to use for this protocol.string—
providers.openrouter.modelsWhich models this provider offers, and how their metadata is filled in.object—
providers.openrouter.models.allowModel ids to offer. When this list is non-empty it is exclusive: no other model from this provider is offered.string[]—
providers.openrouter.models.customModels to declare yourself, for models the provider does not return from discovery.object[]—
providers.openrouter.models.custom[].baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.openrouter.models.custom[].familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.openrouter.models.custom[].idModel id sent to the provider's API.string (required, non-empty)—
providers.openrouter.models.custom[].maxContextLengthTotal context window, in tokens.integer (required, positive)—
providers.openrouter.models.custom[].maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.openrouter.models.custom[].maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.openrouter.models.custom[].nameDisplay name shown in the model picker.string (required, non-empty)—
providers.openrouter.models.custom[].protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.openrouter.models.custom[].supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.openrouter.models.custom[].supportsImagesWhether the model accepts images as input.boolean (required)—
providers.openrouter.models.custom[].supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean (required)—
providers.openrouter.models.custom[].supportsToolsWhether the model can call tools.boolean (required)—
providers.openrouter.models.custom[].supportsWebSearchWhether the model supports the provider's own web search.boolean (required)—
providers.openrouter.models.custom[].thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.openrouter.models.denyModel ids to hide. Applied after `allow`, so a model listed in both is hidden.string[]—
providers.openrouter.models.discoveryWhether to ask the provider for its model list. `auto` discovers models from the provider; `off` offers only the models declared under `models.custom`."auto" | "off""auto"
providers.openrouter.models.overridesMetadata patches for models the provider already returns, keyed by model id. Only the fields you set are changed.object—
providers.openrouter.models.overrides.{model-id}—object—
providers.openrouter.models.overrides.{model-id}.baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.openrouter.models.overrides.{model-id}.familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.openrouter.models.overrides.{model-id}.maxContextLengthTotal context window, in tokens.integer (positive)—
providers.openrouter.models.overrides.{model-id}.maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.openrouter.models.overrides.{model-id}.maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.openrouter.models.overrides.{model-id}.nameDisplay name shown in the model picker.string—
providers.openrouter.models.overrides.{model-id}.protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.openrouter.models.overrides.{model-id}.supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.openrouter.models.overrides.{model-id}.supportsImagesWhether the model accepts images as input.boolean—
providers.openrouter.models.overrides.{model-id}.supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean—
providers.openrouter.models.overrides.{model-id}.supportsToolsWhether the model can call tools.boolean—
providers.openrouter.models.overrides.{model-id}.supportsWebSearchWhether the model supports the provider's own web search.boolean—
providers.openrouter.models.overrides.{model-id}.thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.openrouter.protocolAPI wire protocol for this provider. Set this only when the provider does not use its default protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—

portkey

KeyDescriptionTypeDefault
providers.portkeyConfiguration for the built-in portkey provider.object—
providers.portkey.baseUrlBase URL for the provider's API. Some providers need a version segment: `https://api.anthropic.com/v1` for Anthropic, `https://api.openai.com/v1` for OpenAI, and `https://generativelanguage.googleapis.com/v1beta` for Gemini. A bare host will fail for those.string—
providers.portkey.customHeadersExtra HTTP headers sent with each request to this provider, for proxy tenancy or routing markers, on providers whose transport supports custom headers. Do not put credentials or SDK-managed headers such as `Authorization`, `x-api-key`, or `anthropic-version` here. A `User-Agent` entry replaces the default Posit Assistant product identity; the SDK's library tokens are still appended.object—
providers.portkey.customHeaders.{header}Header value.string—
providers.portkey.enabledWhether this provider is available. Set to false to hide it from the model picker.booleantrue
providers.portkey.endpointEndpoint URL for a self-hosted provider such as Ollama or LM Studio, for example `http://localhost:11434`.string—
providers.portkey.endpointsBase URL overrides for one protocol at a time, keyed by protocol. Use this when every model on a protocol shares a path that the provider's other models do not.object—
providers.portkey.endpoints.anthropic-messagesBase URL to use for this protocol.string—
providers.portkey.endpoints.bedrock-converseBase URL to use for this protocol.string—
providers.portkey.endpoints.google-generativeBase URL to use for this protocol.string—
providers.portkey.endpoints.mlflow-responsesBase URL to use for this protocol.string—
providers.portkey.endpoints.openai-chatBase URL to use for this protocol.string—
providers.portkey.endpoints.openai-responsesBase URL to use for this protocol.string—
providers.portkey.modelsWhich models this provider offers, and how their metadata is filled in.object—
providers.portkey.models.allowModel ids to offer. When this list is non-empty it is exclusive: no other model from this provider is offered.string[]—
providers.portkey.models.customModels to declare yourself, for models the provider does not return from discovery.object[]—
providers.portkey.models.custom[].baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.portkey.models.custom[].familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.portkey.models.custom[].idModel id sent to the provider's API.string (required, non-empty)—
providers.portkey.models.custom[].maxContextLengthTotal context window, in tokens.integer (required, positive)—
providers.portkey.models.custom[].maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.portkey.models.custom[].maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.portkey.models.custom[].nameDisplay name shown in the model picker.string (required, non-empty)—
providers.portkey.models.custom[].protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.portkey.models.custom[].supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.portkey.models.custom[].supportsImagesWhether the model accepts images as input.boolean (required)—
providers.portkey.models.custom[].supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean (required)—
providers.portkey.models.custom[].supportsToolsWhether the model can call tools.boolean (required)—
providers.portkey.models.custom[].supportsWebSearchWhether the model supports the provider's own web search.boolean (required)—
providers.portkey.models.custom[].thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.portkey.models.denyModel ids to hide. Applied after `allow`, so a model listed in both is hidden.string[]—
providers.portkey.models.discoveryWhether to ask the provider for its model list. `auto` discovers models from the provider; `off` offers only the models declared under `models.custom`."auto" | "off""auto"
providers.portkey.models.overridesMetadata patches for models the provider already returns, keyed by model id. Only the fields you set are changed.object—
providers.portkey.models.overrides.{model-id}—object—
providers.portkey.models.overrides.{model-id}.baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.portkey.models.overrides.{model-id}.familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.portkey.models.overrides.{model-id}.maxContextLengthTotal context window, in tokens.integer (positive)—
providers.portkey.models.overrides.{model-id}.maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.portkey.models.overrides.{model-id}.maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.portkey.models.overrides.{model-id}.nameDisplay name shown in the model picker.string—
providers.portkey.models.overrides.{model-id}.protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.portkey.models.overrides.{model-id}.supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.portkey.models.overrides.{model-id}.supportsImagesWhether the model accepts images as input.boolean—
providers.portkey.models.overrides.{model-id}.supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean—
providers.portkey.models.overrides.{model-id}.supportsToolsWhether the model can call tools.boolean—
providers.portkey.models.overrides.{model-id}.supportsWebSearchWhether the model supports the provider's own web search.boolean—
providers.portkey.models.overrides.{model-id}.thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.portkey.protocolAPI wire protocol for this provider. Set this only when the provider does not use its default protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—

posit-connect

KeyDescriptionTypeDefault
providers.posit-connectConfiguration for the built-in posit-connect provider.object—
providers.posit-connect.baseUrlBase URL for the provider's API. Some providers need a version segment: `https://api.anthropic.com/v1` for Anthropic, `https://api.openai.com/v1` for OpenAI, and `https://generativelanguage.googleapis.com/v1beta` for Gemini. A bare host will fail for those.string—
providers.posit-connect.customHeadersExtra HTTP headers sent with each request to this provider, for proxy tenancy or routing markers, on providers whose transport supports custom headers. Do not put credentials or SDK-managed headers such as `Authorization`, `x-api-key`, or `anthropic-version` here. A `User-Agent` entry replaces the default Posit Assistant product identity; the SDK's library tokens are still appended.object—
providers.posit-connect.customHeaders.{header}Header value.string—
providers.posit-connect.enabledWhether this provider is available. Set to false to hide it from the model picker.booleantrue
providers.posit-connect.endpointEndpoint URL for a self-hosted provider such as Ollama or LM Studio, for example `http://localhost:11434`.string—
providers.posit-connect.endpointsBase URL overrides for one protocol at a time, keyed by protocol. Use this when every model on a protocol shares a path that the provider's other models do not.object—
providers.posit-connect.endpoints.anthropic-messagesBase URL to use for this protocol.string—
providers.posit-connect.endpoints.bedrock-converseBase URL to use for this protocol.string—
providers.posit-connect.endpoints.google-generativeBase URL to use for this protocol.string—
providers.posit-connect.endpoints.mlflow-responsesBase URL to use for this protocol.string—
providers.posit-connect.endpoints.openai-chatBase URL to use for this protocol.string—
providers.posit-connect.endpoints.openai-responsesBase URL to use for this protocol.string—
providers.posit-connect.modelsWhich models this provider offers, and how their metadata is filled in.object—
providers.posit-connect.models.allowModel ids to offer. When this list is non-empty it is exclusive: no other model from this provider is offered.string[]—
providers.posit-connect.models.customModels to declare yourself, for models the provider does not return from discovery.object[]—
providers.posit-connect.models.custom[].baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.posit-connect.models.custom[].familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.posit-connect.models.custom[].idModel id sent to the provider's API.string (required, non-empty)—
providers.posit-connect.models.custom[].maxContextLengthTotal context window, in tokens.integer (required, positive)—
providers.posit-connect.models.custom[].maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.posit-connect.models.custom[].maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.posit-connect.models.custom[].nameDisplay name shown in the model picker.string (required, non-empty)—
providers.posit-connect.models.custom[].protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.posit-connect.models.custom[].supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.posit-connect.models.custom[].supportsImagesWhether the model accepts images as input.boolean (required)—
providers.posit-connect.models.custom[].supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean (required)—
providers.posit-connect.models.custom[].supportsToolsWhether the model can call tools.boolean (required)—
providers.posit-connect.models.custom[].supportsWebSearchWhether the model supports the provider's own web search.boolean (required)—
providers.posit-connect.models.custom[].thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.posit-connect.models.denyModel ids to hide. Applied after `allow`, so a model listed in both is hidden.string[]—
providers.posit-connect.models.discoveryWhether to ask the provider for its model list. `auto` discovers models from the provider; `off` offers only the models declared under `models.custom`."auto" | "off""auto"
providers.posit-connect.models.overridesMetadata patches for models the provider already returns, keyed by model id. Only the fields you set are changed.object—
providers.posit-connect.models.overrides.{model-id}—object—
providers.posit-connect.models.overrides.{model-id}.baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.posit-connect.models.overrides.{model-id}.familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.posit-connect.models.overrides.{model-id}.maxContextLengthTotal context window, in tokens.integer (positive)—
providers.posit-connect.models.overrides.{model-id}.maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.posit-connect.models.overrides.{model-id}.maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.posit-connect.models.overrides.{model-id}.nameDisplay name shown in the model picker.string—
providers.posit-connect.models.overrides.{model-id}.protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.posit-connect.models.overrides.{model-id}.supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.posit-connect.models.overrides.{model-id}.supportsImagesWhether the model accepts images as input.boolean—
providers.posit-connect.models.overrides.{model-id}.supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean—
providers.posit-connect.models.overrides.{model-id}.supportsToolsWhether the model can call tools.boolean—
providers.posit-connect.models.overrides.{model-id}.supportsWebSearchWhether the model supports the provider's own web search.boolean—
providers.posit-connect.models.overrides.{model-id}.thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.posit-connect.protocolAPI wire protocol for this provider. Set this only when the provider does not use its default protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—

positai

KeyDescriptionTypeDefault
providers.positaiConfiguration for the built-in positai provider.object—
providers.positai.baseUrlBase URL for the provider's API. Some providers need a version segment: `https://api.anthropic.com/v1` for Anthropic, `https://api.openai.com/v1` for OpenAI, and `https://generativelanguage.googleapis.com/v1beta` for Gemini. A bare host will fail for those.string"https://gateway.posit.ai"
providers.positai.customHeadersExtra HTTP headers sent with each request to this provider, for proxy tenancy or routing markers, on providers whose transport supports custom headers. Do not put credentials or SDK-managed headers such as `Authorization`, `x-api-key`, or `anthropic-version` here. A `User-Agent` entry replaces the default Posit Assistant product identity; the SDK's library tokens are still appended.object—
providers.positai.customHeaders.{header}Header value.string—
providers.positai.enabledWhether this provider is available. Set to false to hide it from the model picker.booleantrue
providers.positai.endpointEndpoint URL for a self-hosted provider such as Ollama or LM Studio, for example `http://localhost:11434`.string—
providers.positai.endpointsBase URL overrides for one protocol at a time, keyed by protocol. Use this when every model on a protocol shares a path that the provider's other models do not.object—
providers.positai.endpoints.anthropic-messagesBase URL to use for this protocol.string—
providers.positai.endpoints.bedrock-converseBase URL to use for this protocol.string—
providers.positai.endpoints.google-generativeBase URL to use for this protocol.string—
providers.positai.endpoints.mlflow-responsesBase URL to use for this protocol.string—
providers.positai.endpoints.openai-chatBase URL to use for this protocol.string—
providers.positai.endpoints.openai-responsesBase URL to use for this protocol.string—
providers.positai.modelsWhich models this provider offers, and how their metadata is filled in.object—
providers.positai.models.allowModel ids to offer. When this list is non-empty it is exclusive: no other model from this provider is offered.string[]—
providers.positai.models.customModels to declare yourself, for models the provider does not return from discovery.object[]—
providers.positai.models.custom[].baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.positai.models.custom[].familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.positai.models.custom[].idModel id sent to the provider's API.string (required, non-empty)—
providers.positai.models.custom[].maxContextLengthTotal context window, in tokens.integer (required, positive)—
providers.positai.models.custom[].maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.positai.models.custom[].maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.positai.models.custom[].nameDisplay name shown in the model picker.string (required, non-empty)—
providers.positai.models.custom[].protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.positai.models.custom[].supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.positai.models.custom[].supportsImagesWhether the model accepts images as input.boolean (required)—
providers.positai.models.custom[].supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean (required)—
providers.positai.models.custom[].supportsToolsWhether the model can call tools.boolean (required)—
providers.positai.models.custom[].supportsWebSearchWhether the model supports the provider's own web search.boolean (required)—
providers.positai.models.custom[].thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.positai.models.denyModel ids to hide. Applied after `allow`, so a model listed in both is hidden.string[]—
providers.positai.models.discoveryWhether to ask the provider for its model list. `auto` discovers models from the provider; `off` offers only the models declared under `models.custom`."auto" | "off""auto"
providers.positai.models.overridesMetadata patches for models the provider already returns, keyed by model id. Only the fields you set are changed.object—
providers.positai.models.overrides.{model-id}—object—
providers.positai.models.overrides.{model-id}.baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.positai.models.overrides.{model-id}.familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.positai.models.overrides.{model-id}.maxContextLengthTotal context window, in tokens.integer (positive)—
providers.positai.models.overrides.{model-id}.maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.positai.models.overrides.{model-id}.maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.positai.models.overrides.{model-id}.nameDisplay name shown in the model picker.string—
providers.positai.models.overrides.{model-id}.protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.positai.models.overrides.{model-id}.supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.positai.models.overrides.{model-id}.supportsImagesWhether the model accepts images as input.boolean—
providers.positai.models.overrides.{model-id}.supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean—
providers.positai.models.overrides.{model-id}.supportsToolsWhether the model can call tools.boolean—
providers.positai.models.overrides.{model-id}.supportsWebSearchWhether the model supports the provider's own web search.boolean—
providers.positai.models.overrides.{model-id}.thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.positai.positaiLoginPosit sign-in settings for the built-in positai provider.object—
providers.positai.positaiLogin.clientIdOAuth client id used for the device-authorization sign-in flow.string"rstudio-ide"
providers.positai.positaiLogin.hostPosit host to sign in against. The device-authorization and token URLs are derived from it.string"login.posit.cloud"
providers.positai.positaiLogin.scopeSpace-separated OAuth scopes requested at sign-in.string"prism"
providers.positai.protocolAPI wire protocol for this provider. Set this only when the provider does not use its default protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—

snowflake-cortex

KeyDescriptionTypeDefault
providers.snowflake-cortexConfiguration for the built-in snowflake-cortex provider.object—
providers.snowflake-cortex.baseUrlBase URL for the provider's API. Some providers need a version segment: `https://api.anthropic.com/v1` for Anthropic, `https://api.openai.com/v1` for OpenAI, and `https://generativelanguage.googleapis.com/v1beta` for Gemini. A bare host will fail for those.string—
providers.snowflake-cortex.customHeadersExtra HTTP headers sent with each request to this provider, for proxy tenancy or routing markers, on providers whose transport supports custom headers. Do not put credentials or SDK-managed headers such as `Authorization`, `x-api-key`, or `anthropic-version` here. A `User-Agent` entry replaces the default Posit Assistant product identity; the SDK's library tokens are still appended.object—
providers.snowflake-cortex.customHeaders.{header}Header value.string—
providers.snowflake-cortex.enabledWhether this provider is available. Set to false to hide it from the model picker.booleantrue
providers.snowflake-cortex.endpointEndpoint URL for a self-hosted provider such as Ollama or LM Studio, for example `http://localhost:11434`.string—
providers.snowflake-cortex.endpointsBase URL overrides for one protocol at a time, keyed by protocol. Use this when every model on a protocol shares a path that the provider's other models do not.object—
providers.snowflake-cortex.endpoints.anthropic-messagesBase URL to use for this protocol.string—
providers.snowflake-cortex.endpoints.bedrock-converseBase URL to use for this protocol.string—
providers.snowflake-cortex.endpoints.google-generativeBase URL to use for this protocol.string—
providers.snowflake-cortex.endpoints.mlflow-responsesBase URL to use for this protocol.string—
providers.snowflake-cortex.endpoints.openai-chatBase URL to use for this protocol.string—
providers.snowflake-cortex.endpoints.openai-responsesBase URL to use for this protocol.string—
providers.snowflake-cortex.modelsWhich models this provider offers, and how their metadata is filled in.object—
providers.snowflake-cortex.models.allowModel ids to offer. When this list is non-empty it is exclusive: no other model from this provider is offered.string[]—
providers.snowflake-cortex.models.customModels to declare yourself, for models the provider does not return from discovery.object[]—
providers.snowflake-cortex.models.custom[].baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.snowflake-cortex.models.custom[].familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.snowflake-cortex.models.custom[].idModel id sent to the provider's API.string (required, non-empty)—
providers.snowflake-cortex.models.custom[].maxContextLengthTotal context window, in tokens.integer (required, positive)—
providers.snowflake-cortex.models.custom[].maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.snowflake-cortex.models.custom[].maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.snowflake-cortex.models.custom[].nameDisplay name shown in the model picker.string (required, non-empty)—
providers.snowflake-cortex.models.custom[].protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.snowflake-cortex.models.custom[].supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.snowflake-cortex.models.custom[].supportsImagesWhether the model accepts images as input.boolean (required)—
providers.snowflake-cortex.models.custom[].supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean (required)—
providers.snowflake-cortex.models.custom[].supportsToolsWhether the model can call tools.boolean (required)—
providers.snowflake-cortex.models.custom[].supportsWebSearchWhether the model supports the provider's own web search.boolean (required)—
providers.snowflake-cortex.models.custom[].thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.snowflake-cortex.models.denyModel ids to hide. Applied after `allow`, so a model listed in both is hidden.string[]—
providers.snowflake-cortex.models.discoveryWhether to ask the provider for its model list. `auto` discovers models from the provider; `off` offers only the models declared under `models.custom`."auto" | "off""auto"
providers.snowflake-cortex.models.overridesMetadata patches for models the provider already returns, keyed by model id. Only the fields you set are changed.object—
providers.snowflake-cortex.models.overrides.{model-id}—object—
providers.snowflake-cortex.models.overrides.{model-id}.baseUrlBase URL for this model only, overriding the provider's base URL.string—
providers.snowflake-cortex.models.overrides.{model-id}.familyModel family, used for grouping models and for selecting family-specific system prompt content.string—
providers.snowflake-cortex.models.overrides.{model-id}.maxContextLengthTotal context window, in tokens.integer (positive)—
providers.snowflake-cortex.models.overrides.{model-id}.maxInputTokensMaximum number of input tokens accepted in one request.integer (positive)—
providers.snowflake-cortex.models.overrides.{model-id}.maxOutputTokensMaximum number of tokens the model may generate in one response.integer (positive)—
providers.snowflake-cortex.models.overrides.{model-id}.nameDisplay name shown in the model picker.string—
providers.snowflake-cortex.models.overrides.{model-id}.protocolAPI wire protocol for this model, overriding the provider's protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.snowflake-cortex.models.overrides.{model-id}.supportedInputMediaTypesMedia types the model accepts as input, such as `image/png`.string[]—
providers.snowflake-cortex.models.overrides.{model-id}.supportsImagesWhether the model accepts images as input.boolean—
providers.snowflake-cortex.models.overrides.{model-id}.supportsToolResultImagesWhether the model accepts images returned by a tool result.boolean—
providers.snowflake-cortex.models.overrides.{model-id}.supportsToolsWhether the model can call tools.boolean—
providers.snowflake-cortex.models.overrides.{model-id}.supportsWebSearchWhether the model supports the provider's own web search.boolean—
providers.snowflake-cortex.models.overrides.{model-id}.thinkingEffortLevelsThinking effort levels this model accepts. The set varies by model, for example `off`, `low`, `medium`, `high`, `xhigh`.string[]—
providers.snowflake-cortex.protocolAPI wire protocol for this provider. Set this only when the provider does not use its default protocol."anthropic-messages" | "openai-chat" | "openai-responses" | "mlflow-responses" | "bedrock-converse" | "google-generative"—
providers.snowflake-cortex.snowflakeSnowflake connection settings. Credentials are not stored here.object—
providers.snowflake-cortex.snowflake.accountSnowflake account identifier.string—
providers.snowflake-cortex.snowflake.connectionNameWhich connection from `connections.toml` to use. Ignored in Positron, which uses its own Snowflake sign-in.string—
providers.snowflake-cortex.snowflake.homeDirectory holding `connections.toml`, the same thing `SNOWFLAKE_HOME` sets. Point this at a managed directory when your credentials are not in the default location.string—
providers.snowflake-cortex.snowflake.hostSnowflake host name. Set this when the account identifier alone does not resolve to the right host.string—