mirror of
https://github.com/aljazceru/opencode.git
synced 2025-12-24 11:14:23 +01:00
1067 lines
23 KiB
Plaintext
1067 lines
23 KiB
Plaintext
---
|
|
title: Providers
|
|
description: Using any LLM provider in OpenCode.
|
|
---
|
|
|
|
import config from "../../../config.mjs"
|
|
export const console = config.console
|
|
|
|
OpenCode uses the [AI SDK](https://ai-sdk.dev/) and [Models.dev](https://models.dev) to support for **75+ LLM providers** and it supports running local models.
|
|
|
|
To add a provider you need to:
|
|
|
|
1. Add the API keys for the provider using `opencode auth login`.
|
|
2. 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.
|
|
|
|
```json title="opencode.json" {6}
|
|
{
|
|
"$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](/docs/zen).
|
|
|
|
:::tip
|
|
If you are new, we recommend starting with OpenCode Zen.
|
|
:::
|
|
|
|
1. Run `opencode auth login`, select opencode, and head to [opencode.ai/auth](https://opencode.ai/auth).
|
|
2. Sign in, add your billing details, and copy your API key.
|
|
3. Paste your API key.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◇ Select provider
|
|
│ opencode
|
|
│
|
|
● Create an api key at https://opencode.ai/auth
|
|
│
|
|
◆ Enter your API key
|
|
│ _
|
|
└
|
|
```
|
|
|
|
4. Run `/models` in 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.
|
|
|
|
:::note
|
|
Don't see a provider here? Submit a PR.
|
|
:::
|
|
|
|
---
|
|
|
|
### Amazon Bedrock
|
|
|
|
To use Amazon Bedrock with OpenCode:
|
|
|
|
1. Head over to the **Model catalog** in the Amazon Bedrock console and request
|
|
access to the models you want.
|
|
|
|
:::tip
|
|
You need to have access to the model you want in Amazon Bedrock.
|
|
:::
|
|
|
|
1. 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) using
|
|
`aws 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.
|
|
|
|
```bash
|
|
AWS_ACCESS_KEY_ID=XXX opencode
|
|
```
|
|
|
|
Or add it to your bash profile.
|
|
|
|
```bash title="~/.bash_profile"
|
|
export AWS_ACCESS_KEY_ID=XXX
|
|
```
|
|
|
|
1. Run the `/models` command to select the model you want.
|
|
|
|
---
|
|
|
|
### Anthropic
|
|
|
|
We recommend signing up for [Claude Pro](https://www.anthropic.com/news/claude-pro) or [Max](https://www.anthropic.com/max), it's the most cost-effective way to use opencode.
|
|
|
|
Once you've signed up, run `opencode auth login` and select Anthropic.
|
|
|
|
```bash
|
|
$ 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.
|
|
|
|
```bash
|
|
$ 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
|
|
|
|
1. Head over to the [Azure portal](https://portal.azure.com/) 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 1` or `KEY 2` from your resource
|
|
|
|
2. Go to [Azure AI Foundry](https://ai.azure.com/) and deploy a model.
|
|
|
|
:::note
|
|
The deployment name must match the model name for opencode to work properly.
|
|
:::
|
|
|
|
3. Run `opencode auth login` and select **Azure**.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◆ Select provider
|
|
│ ● Azure
|
|
│ ...
|
|
└
|
|
```
|
|
|
|
4. Enter your API key.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◇ Select provider
|
|
│ Azure
|
|
│
|
|
◇ Enter your API key
|
|
│ _
|
|
└
|
|
```
|
|
|
|
5. Set your resource name as an environment variable:
|
|
|
|
```bash
|
|
AZURE_RESOURCE_NAME=XXX opencode
|
|
```
|
|
|
|
Or add it to your bash profile:
|
|
|
|
```bash title="~/.bash_profile"
|
|
export AZURE_RESOURCE_NAME=XXX
|
|
```
|
|
|
|
6. Run the `/models` command to select your deployed model.
|
|
|
|
---
|
|
|
|
### Cerebras
|
|
|
|
1. Head over to the [Cerebras console](https://inference.cerebras.ai/), create an account, and generate an API key.
|
|
|
|
2. Run `opencode auth login` and select **Cerebras**.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◆ Select provider
|
|
│ ● Cerebras
|
|
│ ...
|
|
└
|
|
```
|
|
|
|
3. Enter your Cerebras API key.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◇ Select provider
|
|
│ Cerebras
|
|
│
|
|
◇ Enter your API key
|
|
│ _
|
|
└
|
|
```
|
|
|
|
4. Run the `/models` command to select a model like _Qwen 3 Coder 480B_.
|
|
|
|
---
|
|
|
|
### DeepSeek
|
|
|
|
1. Head over to the [DeepSeek console](https://platform.deepseek.com/), create an account, and click **Create new API key**.
|
|
|
|
2. Run `opencode auth login` and select **DeepSeek**.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◆ Select provider
|
|
│ ● DeepSeek
|
|
│ ...
|
|
└
|
|
```
|
|
|
|
3. Enter your DeepSeek API key.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◇ Select provider
|
|
│ DeepSeek
|
|
│
|
|
◇ Enter your API key
|
|
│ _
|
|
└
|
|
```
|
|
|
|
4. Run the `/models` command to select a DeepSeek model like _DeepSeek Reasoner_.
|
|
|
|
---
|
|
|
|
### Deep Infra
|
|
|
|
1. Head over to the [Deep Infra dashboard](https://deepinfra.com/dash), create an account, and generate an API key.
|
|
|
|
2. Run `opencode auth login` and select **Deep Infra**.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◆ Select provider
|
|
│ ● Deep Infra
|
|
│ ...
|
|
└
|
|
```
|
|
|
|
3. Enter your Deep Infra API key.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◇ Select provider
|
|
│ Deep Infra
|
|
│
|
|
◇ Enter your API key
|
|
│ _
|
|
└
|
|
```
|
|
|
|
4. Run the `/models` command to select a model.
|
|
|
|
---
|
|
|
|
### Fireworks AI
|
|
|
|
1. Head over to the [Fireworks AI console](https://app.fireworks.ai/), create an account, and click **Create API Key**.
|
|
|
|
2. Run `opencode auth login` and select **Fireworks AI**.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◆ Select provider
|
|
│ ● Fireworks AI
|
|
│ ...
|
|
└
|
|
```
|
|
|
|
3. Enter your Fireworks AI API key.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◇ Select provider
|
|
│ Fireworks AI
|
|
│
|
|
◇ Enter your API key
|
|
│ _
|
|
└
|
|
```
|
|
|
|
4. Run the `/models` command to select a model like _Kimi K2 Instruct_.
|
|
|
|
---
|
|
|
|
### GitHub Copilot
|
|
|
|
To use your GitHub Copilot subscription with opencode:
|
|
|
|
:::note
|
|
Some models might need a [Pro+
|
|
subscription](https://github.com/features/copilot/plans) to use.
|
|
|
|
Some models need to be manually enabled in your [GitHub Copilot settings](https://docs.github.com/en/copilot/how-tos/use-ai-models/configure-access-to-ai-models#setup-for-individual-use).
|
|
:::
|
|
|
|
1. Run `opencode auth login` and select GitHub Copilot.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
┌ Add credential
|
|
|
|
│
|
|
◇ Select provider
|
|
│ GitHub Copilot
|
|
│
|
|
◇ ──────────────────────────────────────────────╮
|
|
│ │
|
|
│ Please visit: https://github.com/login/device │
|
|
│ Enter code: 8F43-6FCF │
|
|
│ │
|
|
├─────────────────────────────────────────────────╯
|
|
│
|
|
◓ Waiting for authorization...
|
|
```
|
|
|
|
2. Navigate to [github.com/login/device](https://github.com/login/device) and enter the code.
|
|
|
|
3. Now run the `/models` command to select the model you want.
|
|
|
|
---
|
|
|
|
### Google Vertex AI
|
|
|
|
To use Google Vertex AI with OpenCode:
|
|
|
|
1. Head over to the **Model Garden** in the Google Cloud Console and check the
|
|
models available in your region.
|
|
|
|
:::note
|
|
You need to have a Google Cloud project with Vertex AI API enabled.
|
|
:::
|
|
|
|
2. Set the required environment variables:
|
|
- `GOOGLE_CLOUD_PROJECT`: Your Google Cloud project ID
|
|
- `VERTEX_LOCATION` (optional): The region for Vertex AI (defaults to `global`)
|
|
- 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.
|
|
|
|
```bash
|
|
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json GOOGLE_CLOUD_PROJECT=your-project-id opencode
|
|
```
|
|
|
|
Or add them to your bash profile.
|
|
|
|
```bash title="~/.bash_profile"
|
|
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
|
|
export GOOGLE_CLOUD_PROJECT=your-project-id
|
|
export VERTEX_LOCATION=global
|
|
```
|
|
|
|
:::tip
|
|
The `global` region improves availability and reduces errors at no extra cost. Use regional endpoints (e.g., `us-central1`) for data residency requirements. [Learn more](https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models#regional_and_global_endpoints)
|
|
:::
|
|
|
|
3. Run the `/models` command to select the model you want.
|
|
|
|
---
|
|
|
|
### Groq
|
|
|
|
1. Head over to the [Groq console](https://console.groq.com/), click **Create API Key**, and copy the key.
|
|
|
|
2. Run `opencode auth login` and select Groq.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◆ Select provider
|
|
│ ● Groq
|
|
│ ...
|
|
└
|
|
```
|
|
|
|
3. Enter the API key for the provider.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◇ Select provider
|
|
│ Groq
|
|
│
|
|
◇ Enter your API key
|
|
│ _
|
|
└
|
|
```
|
|
|
|
4. Run the `/models` command to select the one you want.
|
|
|
|
---
|
|
|
|
### Hugging Face
|
|
|
|
[Hugging Face Inference Providers](https://huggingface.co/docs/inference-providers) provides access to open models supported by 17+ providers.
|
|
|
|
1. Head over to [Hugging Face settings](https://huggingface.co/settings/tokens/new?ownUserPermissions=inference.serverless.write&tokenType=fineGrained) to create a token with permission to make calls to Inference Providers.
|
|
|
|
2. Run `opencode auth login` and select **Hugging Face**.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◆ Select provider
|
|
│ ● Hugging Face
|
|
│ ...
|
|
└
|
|
```
|
|
|
|
3. Enter your Hugging Face token.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◇ Select provider
|
|
│ Hugging Face
|
|
│
|
|
◇ Enter your API key
|
|
│ _
|
|
└
|
|
```
|
|
|
|
4. Run the `/models` command to select a model like _Kimi-K2-Instruct_ or _GLM-4.6_.
|
|
|
|
---
|
|
|
|
### LM Studio
|
|
|
|
You can configure opencode to use local models through LM Studio.
|
|
|
|
```json title="opencode.json" "lmstudio" {5, 6, 8, 10-14}
|
|
{
|
|
"$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:
|
|
|
|
- `lmstudio` is the custom provider ID. This can be any string you want.
|
|
- `npm` specifies the package to use for this provider. Here, `@ai-sdk/openai-compatible` is used for any OpenAI-compatible API.
|
|
- `name` is the display name for the provider in the UI.
|
|
- `options.baseURL` is the endpoint for the local server.
|
|
- `models` is 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:
|
|
|
|
1. Head over to the [Moonshot AI console](https://platform.moonshot.ai/console), create an account, and click **Create API key**.
|
|
|
|
2. Run `opencode auth login` and select **Moonshot AI**.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◆ Select provider
|
|
│ ...
|
|
│ ● Moonshot AI
|
|
└
|
|
```
|
|
|
|
3. Enter your Moonshot API key.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◇ Select provider
|
|
│ Moonshot AI
|
|
│
|
|
◇ Enter your API key
|
|
│ _
|
|
└
|
|
```
|
|
|
|
4. Run the `/models` command to select _Kimi K2_.
|
|
|
|
---
|
|
|
|
### Ollama
|
|
|
|
You can configure opencode to use local models through Ollama.
|
|
|
|
```json title="opencode.json" "ollama" {5, 6, 8, 10-14}
|
|
{
|
|
"$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:
|
|
|
|
- `ollama` is the custom provider ID. This can be any string you want.
|
|
- `npm` specifies the package to use for this provider. Here, `@ai-sdk/openai-compatible` is used for any OpenAI-compatible API.
|
|
- `name` is the display name for the provider in the UI.
|
|
- `options.baseURL` is the endpoint for the local server.
|
|
- `models` is a map of model IDs to their configurations. The model name will be displayed in the model selection list.
|
|
|
|
:::tip
|
|
If tool calls aren't working, try increasing `num_ctx` in Ollama. Start around 16k - 32k.
|
|
:::
|
|
|
|
---
|
|
|
|
### OpenAI
|
|
|
|
1. Head over to the [OpenAI Platform console](https://platform.openai.com/api-keys), click **Create new secret key**, and copy the key.
|
|
|
|
2. Run `opencode auth login` and select OpenAI.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◆ Select provider
|
|
│ ● OpenAI
|
|
│ ...
|
|
└
|
|
```
|
|
|
|
3. Enter the API key for the provider.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◇ Select provider
|
|
│ OpenAI
|
|
│
|
|
◇ Enter your API key
|
|
│ _
|
|
└
|
|
```
|
|
|
|
4. Run the `/models` command 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](/docs/zen).
|
|
|
|
1. Sign in to **<a href={console}>OpenCode Zen</a>** and click **Create API Key**.
|
|
|
|
2. Run `opencode auth login` and select **OpenCode Zen**.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◆ Select provider
|
|
│ ● OpenCode Zen
|
|
│ ...
|
|
└
|
|
```
|
|
|
|
3. Enter your OpenCode API key.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◇ Select provider
|
|
│ OpenCode Zen
|
|
│
|
|
◇ Enter your API key
|
|
│ _
|
|
└
|
|
```
|
|
|
|
4. Run the `/models` command to select a model like _Qwen 3 Coder 480B_.
|
|
|
|
---
|
|
|
|
### OpenRouter
|
|
|
|
1. Head over to the [OpenRouter dashboard](https://openrouter.ai/settings/keys), click **Create API Key**, and copy the key.
|
|
|
|
2. Run `opencode auth login` and select OpenRouter.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◆ Select provider
|
|
│ ● OpenRouter
|
|
│ ○ Anthropic
|
|
│ ○ Google
|
|
│ ...
|
|
└
|
|
```
|
|
|
|
3. Enter the API key for the provider.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◇ Select provider
|
|
│ OpenRouter
|
|
│
|
|
◇ Enter your API key
|
|
│ _
|
|
└
|
|
```
|
|
|
|
4. Many OpenRouter models are preloaded by default, run the `/models` command to select the one you want.
|
|
|
|
You can also add additional models through your opencode config.
|
|
|
|
```json title="opencode.json" {6}
|
|
{
|
|
"$schema": "https://opencode.ai/config.json",
|
|
"provider": {
|
|
"openrouter": {
|
|
"models": {
|
|
"somecoolnewmodel": {}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
5. You can also customize them through your opencode config. Here's an example of specifying a provider
|
|
|
|
```json title="opencode.json"
|
|
{
|
|
"$schema": "https://opencode.ai/config.json",
|
|
"provider": {
|
|
"openrouter": {
|
|
"models": {
|
|
"moonshotai/kimi-k2": {
|
|
"options": {
|
|
"provider": {
|
|
"order": ["baseten"],
|
|
"allow_fallbacks": false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
### OVHcloud AI Endpoints
|
|
|
|
1. Head over to the [OVHcloud panel](https://ovh.com/manager). Navigate to the `Public Cloud` section, `AI & Machine Learning` > `AI Endpoints` and in `API Keys` tab, click **Create a new API key**.
|
|
|
|
2. Run `opencode auth login` and select **OVHcloud AI Endpoints**.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◆ Select provider
|
|
│ ● OVHcloud AI Endpoints
|
|
│ ...
|
|
└
|
|
```
|
|
|
|
3. Enter your OVHcloud AI Endpoints API key.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◇ Select provider
|
|
│ OVHcloud AI Endpoints
|
|
│
|
|
◇ Enter your API key
|
|
│ _
|
|
└
|
|
```
|
|
|
|
4. Run the `/models` command to select a model like _gpt-oss-120b_.
|
|
|
|
---
|
|
|
|
### Together AI
|
|
|
|
1. Head over to the [Together AI console](https://api.together.ai), create an account, and click **Add Key**.
|
|
|
|
2. Run `opencode auth login` and select **Together AI**.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◆ Select provider
|
|
│ ● Together AI
|
|
│ ...
|
|
└
|
|
```
|
|
|
|
3. Enter your Together AI API key.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◇ Select provider
|
|
│ Together AI
|
|
│
|
|
◇ Enter your API key
|
|
│ _
|
|
└
|
|
```
|
|
|
|
4. Run the `/models` command to select a model like _Kimi K2 Instruct_.
|
|
|
|
---
|
|
|
|
### xAI
|
|
|
|
For a limited time, you can use xAI's Grok Code for free with opencode.
|
|
|
|
:::tip
|
|
Grok Code is available for free for a limited time on opencode.
|
|
:::
|
|
|
|
1. Make sure you are on the latest version of opencode.
|
|
|
|
2. Run the `/models` command 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
|
|
|
|
1. Head over to the [Z.AI API console](https://z.ai/manage-apikey/apikey-list), create an account, and click **Create a new API key**.
|
|
|
|
2. Run `opencode auth login` and select **Z.AI**.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◆ Select provider
|
|
│ ● Z.AI
|
|
│ ...
|
|
└
|
|
```
|
|
|
|
If you are subscribed to the **GLM Coding Plan**, select **Z.AI Coding Plan**.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◆ Select provider
|
|
│ ● Z.AI Coding Plan
|
|
│ ...
|
|
└
|
|
```
|
|
|
|
3. Enter your Z.AI API key.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◇ Select provider
|
|
│ Z.AI
|
|
│
|
|
◇ Enter your API key
|
|
│ _
|
|
└
|
|
```
|
|
|
|
4. Run the `/models` command to select a model like _GLM-4.5_.
|
|
|
|
---
|
|
|
|
## Custom provider
|
|
|
|
To add any **OpenAI-compatible** provider that's not listed in `opencode auth login`:
|
|
|
|
:::tip
|
|
You can use any OpenAI-compatible provider with opencode. Most modern AI providers offer OpenAI-compatible APIs.
|
|
:::
|
|
|
|
1. Run `opencode auth login` and scroll down to **Other**.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◆ Select provider
|
|
│ ...
|
|
│ ● Other
|
|
└
|
|
```
|
|
|
|
2. Enter a unique ID for the provider.
|
|
|
|
```bash
|
|
$ opencode auth login
|
|
|
|
┌ Add credential
|
|
│
|
|
◇ Enter provider id
|
|
│ myprovider
|
|
└
|
|
```
|
|
|
|
:::note
|
|
Choose a memorable ID, you'll use this in your config file.
|
|
:::
|
|
|
|
3. Enter your API key for the provider.
|
|
|
|
```bash
|
|
$ 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-...
|
|
└
|
|
```
|
|
|
|
4. Create or update your `opencode.json` file in your project directory:
|
|
|
|
```json title="opencode.json" ""myprovider"" {5-15}
|
|
{
|
|
"$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-compatible` for 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.
|
|
|
|
5. Run the `/models` command and your custom provider and models will appear in the selection list.
|
|
|
|
---
|
|
|
|
##### Example
|
|
|
|
Here's an example setting the `apiKey`, `headers`, and model `limit` options.
|
|
|
|
```json title="opencode.json" {9,11,17-20}
|
|
{
|
|
"$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",
|
|
"limit": {
|
|
"context": 200000,
|
|
"output": 65536
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
Configuration details:
|
|
|
|
- **apiKey**: Set using `env` variable syntax, [learn more](/docs/config#env-vars).
|
|
- **headers**: Custom headers sent with each request.
|
|
- **limit.context**: Maximum input tokens the model accepts.
|
|
- **limit.output**: Maximum tokens the model can generate.
|
|
|
|
The `limit` fields allow OpenCode to understand how much context you have left. Standard providers pull these from models.dev automatically.
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
If you are having trouble with configuring a provider, check the following:
|
|
|
|
1. **Check the auth setup**: Run `opencode auth list` to 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.
|
|
|
|
2. For custom providers, check the opencode config and:
|
|
- Make sure the provider ID used in `opencode auth login` matches the ID in your opencode config.
|
|
- The right npm package is used for the provider. For example, use `@ai-sdk/cerebras` for Cerebras. And for all other OpenAI-compatible providers, use `@ai-sdk/openai-compatible`.
|
|
- Check correct API endpoint is used in the `options.baseURL` field.
|