# OpenCode

Give OpenCode's vultr provider the live model list: context windows, output limits, prices and reasoning variants, from one plugin entry.

OpenCode already knows a `vultr` provider from models.dev, but that list is written by hand and its ids no longer match what the API serves. `@vultr/model-provider-opencode` replaces it with the live list and points the provider at `VULTR_INFERENCE_API_KEY`.

## Set it up

Add the plugin to `opencode.json`, in your project or in `~/.config/opencode/`. OpenCode installs it from npm when it starts.

```json
{
  "$schema": "https://opencode.ai/config.json",
  "plugin": ["@vultr/model-provider-opencode"]
}
```

```bash
export VULTR_INFERENCE_API_KEY=...
opencode models vultr
opencode run -m vultr/glm-5.3 --variant high "hello"
```

The key is what turns the provider on: without it OpenCode does not offer `vultr` models.

## Pick a model

`opencode models vultr` lists them. Each model's variants are its reasoning levels, plus `none` where the model can answer without thinking; pick one with `--variant` or in the model picker.

## What it maps

| OpenCode | From the catalog |
| --- | --- |
| Context and output limit | The model's context window and output limit. OpenCode caps a request's output at 32000 tokens itself |
| Cost | Prices per million tokens, including cached input |
| Attachments | Images, video and audio as the model accepts them, and PDFs on models that read documents |
| Variants | Reasoning levels |
| Status | `deprecated` once the model has a deprecation date |

The last good list is kept in `$XDG_CACHE_HOME/opencode/vultr-model-catalog.json`. With neither the network nor that file, OpenCode keeps its models.dev list.
