Providers
Using any LLM provider in OpenCode.
OpenCode uses the AI SDK and Models.dev to support for 75+ LLM providers and it supports running local models.
To add a provider you need to:
- Add the API keys for the provider using
opencode auth login. - Configure the provider in your OpenCode config.
Credentials
When you add a provider’s API keys with opencode auth login, they are stored
in ~/.local/share/opencode/auth.json.
Config
You can customize the providers through the provider section in your OpenCode
config.
Base URL
You can customize the base URL for any provider by setting the baseURL option. This is useful when using proxy services or custom endpoints.
{ "$schema": "https://opencode.ai/config.json", "provider": { "anthropic": { "options": { "baseURL": "https://api.anthropic.com/v1" } } }}OpenCode Zen
OpenCode Zen is a list of models provided by the OpenCode team that have been tested and verified to work well with OpenCode. Learn more.
-
Run
opencode auth login, select opencode, and head to opencode.ai/auth. -
Sign in, add your billing details, and copy your API key.
-
Paste your API key.
Terminal window $ opencode auth login┌ Add credential│◇ Select provider│ opencode│● Create an api key at https://opencode.ai/auth│◆ Enter your API key│ _└ -
Run
/modelsin the TUI to see the list of models we recommend.
It works like any other provider in OpenCode. And is completely optional to use it.
Directory
Let’s look at some of the providers in detail. If you’d like to add a provider to the list, feel free to open a PR.
Amazon Bedrock
To use Amazon Bedrock with OpenCode:
-
Head over to the Model catalog in the Amazon Bedrock console and request access to the models you want.
-
You’ll need either to set one of the following environment variables:
AWS_ACCESS_KEY_ID: You can get this by creating an IAM user and generating an access key for it.AWS_PROFILE: First login through AWS IAM Identity Center (or AWS SSO) usingaws sso login. Then get the name of the profile you want to use.AWS_BEARER_TOKEN_BEDROCK: You can generate a long-term API key from the Amazon Bedrock console.
Once you have one of the above, set it while running opencode.
Terminal window AWS_ACCESS_KEY_ID=XXX opencodeOr add it to your bash profile.
~/.bash_profile export AWS_ACCESS_KEY_ID=XXX -
Run the
/modelscommand to select the model you want.
Anthropic
We recommend signing up for Claude Pro or Max, it’s the most cost-effective way to use opencode.
Once you’ve signed up, run opencode auth login and select Anthropic.
$ opencode auth login
┌ Add credential│◆ Select provider│ ● Anthropic│ ...└Here you can select the Claude Pro/Max option and it’ll open your browser and ask you to authenticate.
$ opencode auth login┌ Add credential│◇ Select provider│ Anthropic│◆ Login method│ ● Claude Pro/Max│ ○ Create API Key│ ○ Manually enter API Key└Now all the the Anthropic models should be available when you use the /models command.
Using API keys
You can also select Create API Key if you don’t have a Pro/Max subscription. It’ll also open your browser and ask you to login to Anthropic and give you a code you can paste in your terminal.
Or if you already have an API key, you can select Manually enter API Key and paste it in your terminal.
Azure OpenAI
-
Head over to the Azure portal and create an Azure OpenAI resource. You’ll need:
- Resource name: This becomes part of your API endpoint (
https://RESOURCE_NAME.openai.azure.com/) - API key: Either
KEY 1orKEY 2from your resource
- Resource name: This becomes part of your API endpoint (
-
Go to Azure AI Foundry and deploy a model.
-
Run
opencode auth loginand select Azure.Terminal window $ opencode auth login┌ Add credential│◆ Select provider│ ● Azure│ ...└ -
Enter your API key.
Terminal window $ opencode auth login┌ Add credential│◇ Select provider│ Azure│◇ Enter your API key│ _└ -
Set your resource name as an environment variable:
Terminal window AZURE_RESOURCE_NAME=XXX opencodeOr add it to your bash profile:
~/.bash_profile export AZURE_RESOURCE_NAME=XXX -
Run the
/modelscommand to select your deployed model.
Cerebras
-
Head over to the Cerebras console, create an account, and generate an API key.
-
Run
opencode auth loginand select Cerebras.Terminal window $ opencode auth login┌ Add credential│◆ Select provider│ ● Cerebras│ ...└ -
Enter your Cerebras API key.
Terminal window $ opencode auth login┌ Add credential│◇ Select provider│ Cerebras│◇ Enter your API key│ _└ -
Run the
/modelscommand to select a model like Qwen 3 Coder 480B.
DeepSeek
-
Head over to the DeepSeek console, create an account, and click Create new API key.
-
Run
opencode auth loginand select DeepSeek.Terminal window $ opencode auth login┌ Add credential│◆ Select provider│ ● DeepSeek│ ...└ -
Enter your DeepSeek API key.
Terminal window $ opencode auth login┌ Add credential│◇ Select provider│ DeepSeek│◇ Enter your API key│ _└ -
Run the
/modelscommand to select a DeepSeek model like DeepSeek Reasoner.
Fireworks AI
-
Head over to the Fireworks AI console, create an account, and click Create API Key.
-
Run
opencode auth loginand select Fireworks AI.Terminal window $ opencode auth login┌ Add credential│◆ Select provider│ ● Fireworks AI│ ...└ -
Enter your Fireworks AI API key.
Terminal window $ opencode auth login┌ Add credential│◇ Select provider│ Fireworks AI│◇ Enter your API key│ _└ -
Run the
/modelscommand to select a model like Kimi K2 Instruct.
GitHub Copilot
To use your GitHub Copilot subscription with opencode:
-
Run
opencode auth loginand select GitHub Copilot.Terminal window $ opencode auth login┌ Add credential│◇ Select provider│ GitHub Copilot│◇ ──────────────────────────────────────────────╮│ ││ Please visit: https://github.com/login/device ││ Enter code: 8F43-6FCF ││ │├─────────────────────────────────────────────────╯│◓ Waiting for authorization... -
Navigate to github.com/login/device and enter the code.
-
Now run the
/modelscommand to select the model you want.
Google Vertex AI
To use Google Vertex AI with OpenCode:
-
Head over to the Model Garden in the Google Cloud Console and check the models available in your region.
-
Set the required environment variables:
GOOGLE_VERTEX_PROJECT: Your Google Cloud project IDGOOGLE_VERTEX_REGION(optional): The region for Vertex AI (defaults tous-east5)- Authentication (choose one):
GOOGLE_APPLICATION_CREDENTIALS: Path to your service account JSON key file- Authenticate using gcloud CLI:
gcloud auth application-default login
Set them while running opencode.
Terminal window GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json GOOGLE_VERTEX_PROJECT=your-project-id opencodeOr add them to your bash profile.
~/.bash_profile export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.jsonexport GOOGLE_VERTEX_PROJECT=your-project-idexport GOOGLE_VERTEX_REGION=us-central1 -
Run the
/modelscommand to select the model you want.
Groq
-
Head over to the Groq console, click Create API Key, and copy the key.
-
Run
opencode auth loginand select Groq.Terminal window $ opencode auth login┌ Add credential│◆ Select provider│ ● Groq│ ...└ -
Enter the API key for the provider.
Terminal window $ opencode auth login┌ Add credential│◇ Select provider│ Groq│◇ Enter your API key│ _└ -
Run the
/modelscommand to select the one you want.
LM Studio
You can configure opencode to use local models through LM Studio.
{ "$schema": "https://opencode.ai/config.json", "provider": { "lmstudio": { "npm": "@ai-sdk/openai-compatible", "name": "LM Studio (local)", "options": { "baseURL": "http://127.0.0.1:1234/v1" }, "models": { "google/gemma-3n-e4b": { "name": "Gemma 3n-e4b (local)" } } } }}In this example:
lmstudiois the custom provider ID. This can be any string you want.npmspecifies the package to use for this provider. Here,@ai-sdk/openai-compatibleis used for any OpenAI-compatible API.nameis the display name for the provider in the UI.options.baseURLis the endpoint for the local server.modelsis a map of model IDs to their configurations. The model name will be displayed in the model selection list.
Moonshot AI
To use Kimi K2 from Moonshot AI:
-
Head over to the Moonshot AI console, create an account, and click Create API key.
-
Run
opencode auth loginand select Moonshot AI.Terminal window $ opencode auth login┌ Add credential│◆ Select provider│ ...│ ● Moonshot AI└ -
Enter your Moonshot API key.
Terminal window $ opencode auth login┌ Add credential│◇ Select provider│ Moonshot AI│◇ Enter your API key│ _└ -
Run the
/modelscommand to select Kimi K2.
Ollama
You can configure opencode to use local models through Ollama.
{ "$schema": "https://opencode.ai/config.json", "provider": { "ollama": { "npm": "@ai-sdk/openai-compatible", "name": "Ollama (local)", "options": { "baseURL": "http://localhost:11434/v1" }, "models": { "llama2": { "name": "Llama 2" } } } }}In this example:
ollamais the custom provider ID. This can be any string you want.npmspecifies the package to use for this provider. Here,@ai-sdk/openai-compatibleis used for any OpenAI-compatible API.nameis the display name for the provider in the UI.options.baseURLis the endpoint for the local server.modelsis a map of model IDs to their configurations. The model name will be displayed in the model selection list.
OpenAI
-
Head over to the OpenAI Platform console, click Create new secret key, and copy the key.
-
Run
opencode auth loginand select OpenAI.Terminal window $ opencode auth login┌ Add credential│◆ Select provider│ ● OpenAI│ ...└ -
Enter the API key for the provider.
Terminal window $ opencode auth login┌ Add credential│◇ Select provider│ OpenAI│◇ Enter your API key│ _└ -
Run the
/modelscommand to select the one you want.
OpenCode Zen
OpenCode Zen is a list of tested and verified models provided by the OpenCode team. Learn more.
-
Sign in to OpenCode Zen and click Create API Key.
-
Run
opencode auth loginand select OpenCode Zen.Terminal window $ opencode auth login┌ Add credential│◆ Select provider│ ● OpenCode Zen│ ...└ -
Enter your OpenCode API key.
Terminal window $ opencode auth login┌ Add credential│◇ Select provider│ OpenCode Zen│◇ Enter your API key│ _└ -
Run the
/modelscommand to select a model like Qwen 3 Coder 480B.
OpenRouter
-
Head over to the OpenRouter dashboard, click Create API Key, and copy the key.
-
Run
opencode auth loginand select OpenRouter.Terminal window $ opencode auth login┌ Add credential│◆ Select provider│ ● OpenRouter│ ○ Anthropic│ ○ Google│ ...└ -
Enter the API key for the provider.
Terminal window $ opencode auth login┌ Add credential│◇ Select provider│ OpenRouter│◇ Enter your API key│ _└ -
Many OpenRouter models are preloaded by default, run the
/modelscommand to select the one you want.You can also add additional models through your opencode config.
opencode.json {"$schema": "https://opencode.ai/config.json","provider": {"openrouter": {"models": {"somecoolnewmodel": {}}}}} -
You can also customize them through your opencode config. Here’s an example of specifying a provider
opencode.json {"$schema": "https://opencode.ai/config.json","provider": {"openrouter": {"models": {"moonshotai/kimi-k2": {"options": {"provider": {"order": ["baseten"],"allow_fallbacks": false}}}}}}}
Together AI
-
Head over to the Together AI console, create an account, and click Add Key.
-
Run
opencode auth loginand select Together AI.Terminal window $ opencode auth login┌ Add credential│◆ Select provider│ ● Together AI│ ...└ -
Enter your Together AI API key.
Terminal window $ opencode auth login┌ Add credential│◇ Select provider│ Together AI│◇ Enter your API key│ _└ -
Run the
/modelscommand to select a model like Kimi K2 Instruct.
xAI
For a limited time, you can use xAI’s Grok Code for free with opencode.
-
Make sure you are on the latest version of opencode.
-
Run the
/modelscommand and select Grok Code Free.
As a part of the trial period, the xAI team will be using the request logs to monitor and improve Grok Code.
Z.AI
-
Head over to the Z.AI API console, create an account, and click Create a new API key.
-
Run
opencode auth loginand select Z.AI.Terminal window $ opencode auth login┌ Add credential│◆ Select provider│ ● Z.AI│ ...└If you are subscribed to the GLM Coding Plan, select Z.AI Coding Plan.
Terminal window $ opencode auth login┌ Add credential│◆ Select provider│ ● Z.AI Coding Plan│ ...└ -
Enter your Z.AI API key.
Terminal window $ opencode auth login┌ Add credential│◇ Select provider│ Z.AI│◇ Enter your API key│ _└ -
Run the
/modelscommand to select a model like GLM-4.5.
Custom provider
To add any OpenAI-compatible provider that’s not listed in opencode auth login:
-
Run
opencode auth loginand scroll down to Other.Terminal window $ opencode auth login┌ Add credential│◆ Select provider│ ...│ ● Other└ -
Enter a unique ID for the provider.
Terminal window $ opencode auth login┌ Add credential│◇ Enter provider id│ myprovider└ -
Enter your API key for the provider.
Terminal window $ opencode auth login┌ Add credential│▲ This only stores a credential for myprovider - you will need configure it in opencode.json, check the docs for examples.│◇ Enter your API key│ sk-...└ -
Create or update your
opencode.jsonfile in your project directory:opencode.json {"$schema": "https://opencode.ai/config.json","provider": {"myprovider": {"npm": "@ai-sdk/openai-compatible","name": "My AI ProviderDisplay Name","options": {"baseURL": "https://api.myprovider.com/v1"},"models": {"my-model-name": {"name": "My Model Display Name"}}}}}Here are the configuration options:
- npm: AI SDK package to use,
@ai-sdk/openai-compatiblefor OpenAI-compatible providers - name: Display name in UI.
- models: Available models.
- options.baseURL: API endpoint URL.
- options.apiKey: Optionally set the API key, if not using auth.
- options.headers: Optionally set custom headers.
More on the advanced options in the example below.
- npm: AI SDK package to use,
-
Run the
/modelscommand and your custom provider and models will appear in the selection list.
Example
Here’s an example setting the apiKey and headers options.
{ "$schema": "https://opencode.ai/config.json", "provider": { "myprovider": { "npm": "@ai-sdk/openai-compatible", "name": "My AI ProviderDisplay Name", "options": { "baseURL": "https://api.myprovider.com/v1", "apiKey": "{env:ANTHROPIC_API_KEY}", "headers": { "Authorization": "Bearer custom-token" } }, "models": { "my-model-name": { "name": "My Model Display Name" } } } }}We are setting the apiKey using the env variable syntax, learn more.
Troubleshooting
If you are having trouble with configuring a provider, check the following:
-
Check the auth setup: Run
opencode auth listto see if the credentials for the provider are added to your config.This doesn’t apply to providers like Amazon Bedrock, that rely on environment variables for their auth.
-
For custom providers, check the opencode config and:
- Make sure the provider ID used in
opencode auth loginmatches the ID in your opencode config. - The right npm package is used for the provider. For example, use
@ai-sdk/cerebrasfor Cerebras. And for all other OpenAI-compatible providers, use@ai-sdk/openai-compatible. - Check correct API endpoint is used in the
options.baseURLfield.
- Make sure the provider ID used in