diff options
| author | Jay V <[email protected]> | 2025-07-31 17:47:20 -0400 |
|---|---|---|
| committer | Jay V <[email protected]> | 2025-07-31 17:47:24 -0400 |
| commit | 69966c73f839a655c5db405625bb61a8e4064b9e (patch) | |
| tree | 222f6dc455474403eb95fdd3b950333a58033e3c | |
| parent | a00de2df08c462cf227884c947ce51732477fcf3 (diff) | |
| download | opencode-69966c73f839a655c5db405625bb61a8e4064b9e.tar.gz opencode-69966c73f839a655c5db405625bb61a8e4064b9e.zip | |
docs: add more providers
| -rw-r--r-- | packages/web/src/content/docs/docs/providers.mdx | 584 |
1 files changed, 301 insertions, 283 deletions
diff --git a/packages/web/src/content/docs/docs/providers.mdx b/packages/web/src/content/docs/docs/providers.mdx index f51cfabbe..afc39d746 100644 --- a/packages/web/src/content/docs/docs/providers.mdx +++ b/packages/web/src/content/docs/docs/providers.mdx @@ -45,6 +45,126 @@ You can customize the base URL for any provider by setting the `baseURL` option. --- +## 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` and `headers` options. + +```json title="opencode.json" {9,11} +{ + "$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](/docs/config#env-vars). + +--- + ## Directory Let's look at some of the providers in detail. If you'd like to add a provider to the @@ -117,8 +237,30 @@ $ opencode auth login └ ``` -This will ask you login with your Anthropic account in your browser. Now all the -the Anthropic models should be available when you use the `/models` command. +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. --- @@ -185,6 +327,78 @@ the Anthropic models should be available when you use the `/models` command. --- +### 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_. + +--- + +### 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: @@ -290,6 +504,78 @@ In this example: --- +### 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 **Other**. + + ```bash + $ opencode auth login + + ┌ Add credential + │ + ◆ Select provider + │ ... + │ ● Other + └ + ``` + +3. Enter `moonshot` as the provider ID. + + ```bash + $ opencode auth login + + ┌ Add credential + │ + ◇ Select provider + │ Other + │ + ◇ Enter provider id + │ moonshot + └ + ``` + +4. Enter your Moonshot API key. + + ```bash + $ opencode auth login + + ┌ Add credential + │ + ◇ Enter your API key + │ sk-... + └ + ``` + +5. Configure Moonshot in your opencode config. + + ```json title="opencode.json" "\"moonshot\"" {5-15} + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "moonshot": { + "npm": "@ai-sdk/openai-compatible", + "name": "Moonshot AI", + "options": { + "baseURL": "https://api.moonshot.ai/v1" + }, + "models": { + "kimi-k2-0711-preview": { + "name": "Kimi K2" + } + } + } + } + } + ``` + +6. Run the `/models` command to select _Kimi K2_. + +--- + ### Ollama You can configure opencode to use local models through Ollama. @@ -435,8 +721,12 @@ https://platform.openai.com/api-keys } ``` +{ /* --- +TODO: Test a model that actually works, currently getting errors form the API +for Qwen non-thinking models. + ### Cerebras Cerebras offers fast inference with generous free tiers and competitive pricing. @@ -510,87 +800,15 @@ Cerebras offers fast inference with generous free tiers and competitive pricing. 6. Run the `/models` command to select a Cerebras model. ---- - -### DeepSeek - -DeepSeek offers powerful reasoning models at competitive prices. - -1. Head over to the [DeepSeek console](https://platform.deepseek.com/), create an account, and generate an API key. - -2. Run `opencode auth login` and select **Other**. - - ```bash - $ opencode auth login - - ┌ Add credential - │ - ◆ Select provider - │ ... - │ ● Other - └ - ``` - -3. Enter `deepseek` as the provider ID. - - ```bash - $ opencode auth login - - ┌ Add credential - │ - ◇ Select provider - │ Other - │ - ◇ Enter provider id - │ deepseek - └ - ``` - -4. Enter your DeepSeek API key. - - ```bash - $ opencode auth login - - ┌ Add credential - │ - ◇ Enter your API key - │ sk-... - └ - ``` - -5. Configure DeepSeek in your opencode config. - - ```json title="opencode.json" "deepseek" {5-17} - { - "$schema": "https://opencode.ai/config.json", - "provider": { - "deepseek": { - "npm": "@ai-sdk/openai-compatible", - "name": "DeepSeek", - "options": { - "baseURL": "https://api.deepseek.com/v1" - }, - "models": { - "deepseek-reasoner": { - "name": "DeepSeek Reasoner" - } - } - } - } - } - ``` - -6. Run the `/models` command to select a DeepSeek model. +*/ } --- -### Moonshot AI (Kimi) +### Together AI -Moonshot AI offers the Kimi models with long context capabilities. +1. Head over to the [Together AI console](https://api.together.ai), create an account, and click **Add Key**. -1. Head over to the [Moonshot AI console](https://platform.moonshot.cn/), create an account, and generate an API key. - -2. Run `opencode auth login` and select **Other**. +2. Run `opencode auth login` and select **Together AI**. ```bash $ opencode auth login @@ -598,12 +816,12 @@ Moonshot AI offers the Kimi models with long context capabilities. ┌ Add credential │ ◆ Select provider + │ ● Together AI │ ... - │ ● Other └ ``` -3. Enter `moonshot` as the provider ID. +3. Enter your Together AI API key. ```bash $ opencode auth login @@ -611,214 +829,14 @@ Moonshot AI offers the Kimi models with long context capabilities. ┌ Add credential │ ◇ Select provider - │ Other - │ - ◇ Enter provider id - │ moonshot - └ - ``` - -4. Enter your Moonshot API key. - - ```bash - $ opencode auth login - - ┌ Add credential - │ - ◇ Enter your API key - │ sk-... - └ - ``` - -5. Configure Moonshot in your opencode config. - - ```json title="opencode.json" "moonshot" {5-17} - { - "$schema": "https://opencode.ai/config.json", - "provider": { - "moonshot": { - "npm": "@ai-sdk/openai-compatible", - "name": "Moonshot AI", - "options": { - "baseURL": "https://api.moonshot.cn/v1" - }, - "models": { - "kimi-k2-0711-preview": { - "name": "Kimi K2" - } - } - } - } - } - ``` - -6. Run the `/models` command to select a Kimi model. - ---- - -### Custom - -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. + │ Together AI │ ◇ 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` and `headers` options. - -```json title="opencode.json" {9,11} -{ - "$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](/docs/config#env-vars). - -#### Common Examples - -**Together AI:** - -```json title="opencode.json" -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "together": { - "npm": "@ai-sdk/openai-compatible", - "name": "Together AI", - "options": { - "baseURL": "https://api.together.xyz/v1" - }, - "models": { - "meta-llama/Llama-3.2-11B-Vision-Instruct-Turbo": { - "name": "Llama 3.2 11B Vision" - } - } - } - } -} -``` - -**Fireworks AI:** - -```json title="opencode.json" -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "fireworks": { - "npm": "@ai-sdk/openai-compatible", - "name": "Fireworks AI", - "options": { - "baseURL": "https://api.fireworks.ai/inference/v1" - }, - "models": { - "accounts/fireworks/models/llama-v3p1-70b-instruct": { - "name": "Llama 3.1 70B" - } - } - } - } -} -``` +4. Run the `/models` command to select a model like _Kimi K2 Instruct_. --- |
