Providers
Positron connects to a range of language model providers. To connect one, run the command Authentication: Configure Language Model Providers, select the provider, and authenticate.
This page covers what each provider needs: the account to have ready, how you authenticate, and anything to configure first.
Please ensure you consult your provider’s privacy policy and terms of service for information on the data they collect and how it is used. For reference links, see the Privacy & Terms guide.
providers.json
Provider configuration lives in a single file: ~/.posit/ai/providers.json. Positron writes it for you as you connect and edit providers. Your API keys and tokens are not in this file. Positron stores them separately.
Open the file with the Open AI Provider Settings (JSON) command when you need something the provider dialog does not cover. That includes turning a provider off, sending custom HTTP headers, and filtering the model list. For every key the file accepts, see the providers.json reference in the Posit Assistant documentation.
Positron deprecated the authentication.* and positron.assistant.provider.* settings in favor of providers.json. Positron migrates them for you when you upgrade, and you can run the migration again at any time with the Migrate AI Provider Settings to providers.json command.
Posit AI Pass
Posit AI Pass (formerly Posit AI) is a hosted language model service from Posit, offering both chat models and code completions through Next Edit Suggestions (NES).
- Account: a Posit AI Pass account, which you can create at posit.ai
- Authentication: sign in through your browser with OAuth
Amazon Bedrock
- Account: an AWS account with Amazon Bedrock access, plus access to the foundation models you want to use
- Authentication: sign in to your AWS account with the AWS CLI. Positron checks that you are signed in
- Configuration: the AWS region and profile, if your environment does not already set them (see Configure AWS region and profile)
Sign in with the AWS CLI
Configure AWS region and profile (optional)
Positron reads AWS_REGION from your environment and uses your default AWS CLI profile automatically, so most people can skip this.
Region
Set a region if your shell does not already have one configured and your Bedrock-enabled account is not in us-east-1 (the default). Use the standard AWS region identifier (for example, us-east-1, eu-west-1, ap-southeast-1). The Amazon Bedrock endpoints and quotas reference lists the identifier for each location. Make sure the models you want are available in that region.
Set it with the AWS_REGION environment variable before you launch Positron, or, to set it for Posit Assistant only, with the aws.region key under providers.bedrock in providers.json. See the providers.json reference for the full list of aws keys.
Profile
Set a profile if the one you use for Bedrock is not named default. This applies when you have a dedicated Bedrock role separate from your development credentials, or your Bedrock access lives in a different AWS account. Run aws configure list-profiles in a terminal to see your profiles.
Set it with the AWS_PROFILE environment variable before you launch Positron, or, to set it for Posit Assistant only, with the aws.profile key under providers.bedrock in providers.json. See the providers.json reference for the full list of aws keys.
Do not set a profile if you use Posit Workbench managed credentials or environment variable credentials (AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY). Both of those paths bypass named profile resolution, so setting a profile name causes credential resolution to fail.
Cross-region inference profiles
Positron uses cross-region inference profiles to route requests across multiple AWS regions for higher availability and throughput. It derives the inference profile region from your AWS region by taking the geographic prefix, and there is nothing to configure:
| AWS region | Derived inference profile region |
|---|---|
us-east-1, us-west-2 |
us |
eu-west-1, eu-central-1 |
eu |
ap-southeast-1, ap-northeast-1 |
apac |
If no inference profile exists for the derived region, Positron falls back to the first available inference profile for that model. If a model has no inference profile at all, it does not appear in the model list.
Anthropic
- Account: a Claude Console account with API access (Claude Pro, Max, and other subscription plans do not work)
- Authentication: an Anthropic API key, or the
ANTHROPIC_API_KEYenvironment variable
Get an Anthropic API key
To use the Claude models from Anthropic in Positron, you bring your own API key (BYOK). To obtain an API key from Anthropic:
- Log in to or create an account for Anthropic’s Claude Console.
- Navigate to the API keys management page.
- Select the Create Key button.
- Fill out any required information and select Add to generate your API key.
- Copy and save the API key to a password manager or another secure location.
Why a Claude Pro or Max subscription does not work
Anthropic does not include Claude API usage in its Pro and Max subscription plans, so signing in to Claude with OAuth does not grant access to the API that Posit Assistant needs. To use Claude with Posit Assistant, you need Claude Console access and an API key, billed separately from any subscription.
Support for OAuth sign-in depends on Anthropic offering API access to Posit Assistant through these plans. You can follow this feature request for updates.
Microsoft Foundry
- Account: a Microsoft Foundry resource with one or more models deployed
- Authentication: the endpoint URL and API key for your Foundry resource
- Configuration: Foundry has no automatic model discovery and defaults to
model-router, so declare your models to use specific ones (see below)
Positron accepts deployment-based Azure OpenAI URLs (for example, https://<resource>.openai.azure.com/openai/deployments/<name>/chat/completions?api-version=...) and automatically normalizes them to the supported v1 format. A message displays when this conversion occurs.
Configure a custom model listing
To use specific models instead of model-router, declare them under providers.ms-foundry.models in providers.json. Run Open AI Provider Settings (JSON) to open the file, and use the deployment identifier from your Foundry resource as each model’s id:
providers.json
{
"providers": {
"ms-foundry": {
"models": {
"discovery": "off",
"custom": [
{
"id": "gpt-4.1",
"name": "GPT-4.1",
"maxContextLength": 128000,
"supportsTools": true,
"supportsImages": true,
"supportsToolResultImages": false,
"supportsWebSearch": false
}
]
}
}
}
}Set the capability fields to match your deployment. For what each field means and the optional ones this example leaves out, see the providers.json reference.
OpenAI
- Account: an OpenAI account, or any service that implements the OpenAI Responses API
- Authentication: an OpenAI API key, or the
OPENAI_API_KEYenvironment variable. For a compatible service, also provide its base URL (or theOPENAI_BASE_URLenvironment variable)
Snowflake Cortex
- Account: a Snowflake account with Cortex access
- Authentication: your Snowflake account identifier and a programmatic access token (PAT)
Enter the account identifier in the Account Identifier field when you connect the provider. Positron derives the Cortex URL from it and saves it to providers.json for you.
GitHub Copilot Preview
- Account: a GitHub account with Copilot enabled
- Authentication: sign in through your browser with OAuth
To sign in, use the Authentication: Configure Language Model Providers command, select GitHub Copilot, and sign in. If you already have a GitHub session from another extension, this asks you to confirm reusing it for Assistant. Otherwise, it starts a new browser sign-in flow.
To sign out, use the Accounts icon or run the Accounts: Manage Accounts command. Unlike signing in, this signs you out for all features in Positron that use your GitHub account, such as the Git or GitHub Pull Requests extensions.
Signing in to GitHub through the Accounts menu in the Activity Bar does not sign you in to GitHub Copilot for AI features. This applies even when you use the Accounts menu for other extensions, such as Git or GitHub Pull Requests.
Get GitHub Copilot access
GitHub Copilot is a proprietary tool from GitHub. To use GitHub Copilot for AI chat and code completions, you need a subscription for GitHub Copilot in your personal GitHub account. You can also be assigned a seat by an organization with a GitHub Copilot for Business subscription.
Students and faculty can use GitHub Copilot for free as part of the GitHub Education program. For more information, see the GitHub Education page.
Sign in with GitHub Copilot Enterprise
GitHub Copilot Enterprise runs on GHE.com (GitHub Enterprise Cloud), not github.com. Signing in requires two extra settings compared to a personal subscription.
Before you start, make sure your organization administrator has enabled GitHub Copilot for your enterprise and assigned you a Copilot seat.
Open the
github-enterprise.urisetting and enter your enterprise URL, for examplehttps://octocorp.ghe.com.Run the command Preferences: Open User Settings (JSON) to open your
settings.jsondirectly. Add theauthProviderkey insidegithub.copilot.advanced:"github.copilot.advanced": { "authProvider": "github-enterprise" }This setting will be indicated as an Unknown Configuration Setting. This is expected and you can ignore the warning.
Save the file. A prompt will appear asking you to sign in to GitHub. Click it and complete the browser authorization flow. If no prompt appears, restart Positron.
For more detail, see GitHub’s guide on authenticating to GitHub Copilot on GHE.com.
Databricks Experimental
Connect to Databricks with OAuth, a personal access token, or automatically discovered credentials.
- Account: a Databricks workspace with access to supported AI models
- Authentication: sign in through your browser with OAuth in Positron Desktop, enter a personal access token, or let Positron use automatic credentials from
DATABRICKS_TOKEN, a.databrickscfgprofile, or Posit Workbench managed credentials - Configuration: the workspace URL, entered in the Workspace URL field in the provider dialog, in a format like
https://adb-1234567890123456.7.azuredatabricks.net
Sign in with OAuth
In Positron Desktop, select OAuth in the Databricks provider dialog and complete the browser sign-in flow. OAuth is not available when Positron runs on a remote server or in a browser. Use a personal access token or automatic credentials in those environments.
Personal access token
Create a personal access token in your Databricks workspace. In the Databricks provider dialog, enter the Workspace URL and API Key. Positron checks the token with the Databricks workspace before saving it.
You can also provide the same credential through environment variables before you launch Positron:
DATABRICKS_HOST: the workspace URLDATABRICKS_TOKEN: the personal access token
Automatic credentials from .databrickscfg
Positron can read Databricks credentials from a Databricks CLI configuration file when the file is available to Positron’s extension host. In Positron Desktop, this is your local machine. In Positron on a remote server or in Posit Workbench, this is the remote server environment.
By default, Positron reads the workbench profile from ~/.databrickscfg. To use a different profile name, set DATABRICKS_CONFIG_PROFILE before you launch Positron. To use a configuration file in a different location, set DATABRICKS_CONFIG_FILE.
Posit Workbench managed Databricks credentials use this path automatically, so you usually do not need to set these environment variables yourself in Workbench.
When several Databricks credential sources are available, Positron uses them in a fixed priority order. It checks Posit Workbench managed credentials first, then the DATABRICKS_TOKEN environment variable, then a .databrickscfg profile, and finally falls back to an interactive prompt.
DeepSeek Experimental
- Account: a DeepSeek account with API access
- Authentication: a DeepSeek API key, or the
DEEPSEEK_API_KEYenvironment variable
Google Gemini Experimental
- Account: a Google account with access to the Gemini API, with an API key created in Google AI Studio
- Authentication: a Gemini API key, or the
GEMINI_API_KEYorGOOGLE_API_KEYenvironment variable
Gemini Enterprise Agent Platform Experimental
Formerly Google Vertex AI.
- Account: a Google Cloud project with the Agent Platform APIs enabled and access to the models you want to use
- Authentication: authenticate with Google Cloud using Application Default Credentials (
gcloud) or a service account (see below) - Configuration: your project ID and location, set with the
GOOGLE_VERTEX_PROJECTandGOOGLE_VERTEX_LOCATIONenvironment variables, or with thegoogleCloud.projectandgoogleCloud.locationkeys underproviders.google-vertexinproviders.json(which take precedence)
For the project and location keys, see the providers.json reference.
Sign in with Application Default Credentials (ADC)
- Install the Google Cloud CLI (
gcloud) - Run
gcloud auth application-default loginand complete the browser sign-in flow
Sign in with a service account
Set the following environment variables before launching Positron:
GOOGLE_CLIENT_EMAIL: the service account’s client emailGOOGLE_PRIVATE_KEY: the service account’s private key
Custom providers Experimental
Beyond the providers above, you can add your own named entries: as many as you like, each with its own name, type, endpoint, credential, and model list. Use this to connect several accounts on the same provider, or a company gateway, under a name you choose.
Add a custom provider
- Run Authentication: Configure Language Model Providers and select Add Custom Provider.
- Enter a Provider Name. It appears in the model picker, and you cannot change it from the dialog later.
- Select a Provider Type: OpenAI Compatible, Anthropic, or OpenAI (tracking issue for more types). The type decides the fields you fill in next. A custom entry reuses that provider’s own connection fields, so an Anthropic-type entry asks for the same API key as the built-in Anthropic provider.
- Enter the credential and base URL, if the type asks for them, and connect.
Some endpoints do not implement a /models listing. If yours does not, list its model identifiers in the Models field before connecting.
Edit or remove a custom provider
You cannot rename a custom entry, change its type, or edit its model list from the provider dialog after creating it. To change any of these, open providers.json with the Open AI Provider Settings (JSON) command and edit its providers.custom.<name> block directly.
To remove an entry, delete that block. Disconnect only clears the stored credential. The entry remains, ready to reconnect.
providers.custom in providers.json
Each entry is a block under providers.custom, using the name you chose as the key:
providers.json
{
"providers": {
"custom": {
"my anthropic": {
"type": "anthropic",
"enabled": true,
"baseUrl": "https://api.anthropic.com/v1"
}
}
}
}For the full set of fields, see the providers.json reference.