Add everyais to opencode as an OpenAI-compatible provider. One command puts every everyais model in /models.
Automatic setup (recommended)
-
Run this in a terminal.
bashopencode auth login https://platform.everyais.com -
When
everyais API key:appears, paste the key from your dashboard and press Enter. The key is not shown as you type. -
Start opencode and pick an everyais model in
/models.
Every everyais model that supports tool calling is registered with its context, output limit, and prices. opencode fetches this setup each time it starts, so new models and price changes show up on their own. For models that support reasoning, change the effort with Ctrl+T or opencode run --variant high.
- Works on macOS, Linux, and WSL (needs
sh). On Windows, use the file setup below. - To disconnect, run
opencode auth logoutand choosehttps://platform.everyais.com.
Set it up in a file
To pick models yourself or set a default model, write them into opencode.json.
-
Put the key in an environment variable. Add it to your shell profile (
~/.zshrcand so on) so you don't have to type it each time.bashexport EVERYAIS_API_KEY="everyais_your_api_key" -
In "Generate your config" above, pick your models and press Confirm. Only models that support tool calling are listed. The 1st model becomes the default (
model) and the 2nd handles light work such as title generation (small_model). Models that support reasoning also get a "Reasoning effort" choice. -
Save the result as
~/.config/opencode/opencode.jsonto use it in every project, or asopencode.jsonat a project root to use it in that project only. If the file already exists, merge only theeveryaisentry underproviderplusmodelandsmall_model. -
Start opencode and check that everyais models show up in
/models.
Settings
| Key | What it does |
|---|---|
npm: "@ai-sdk/openai-compatible" | The adapter that talks to OpenAI-compatible APIs |
options.baseURL | https://api.everyais.com/v1, including /v1 |
options.apiKey | {env:EVERYAIS_API_KEY} reads the key from the environment. If the variable is empty, requests get 401 |
model | The default model. opencode reads everything before the first / as the provider name, so it is everyais/ followed by the model ID, with everyais appearing twice |
small_model | Your 2nd pick, used for light work such as title generation |
Each model gets these values from the catalog. Values the catalog does not have are left out.
| Key | Value |
|---|---|
name | Display name |
tool_call | Whether the model supports tool calling |
modalities.input | Accepted input. Models that accept images get image |
limit.context · limit.output | Context size and maximum output tokens. opencode needs both together, so they are set only when both are known |
cost | USD per 1M tokens for input, output, cache read, and cache write, plus the price for input over 200K tokens (context_over_200k) |
options.reasoningEffort | The reasoning effort you chose |
To store the key in opencode instead, run /connect, choose Other, enter everyais as the provider ID, and paste the key. You can then delete the options.apiKey line.
Example
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"everyais": {
"npm": "@ai-sdk/openai-compatible",
"name": "everyais",
"options": {
"baseURL": "https://api.everyais.com/v1",
"apiKey": "{env:EVERYAIS_API_KEY}"
},
"models": {
"everyais/claude-sonnet-5-5": { "name": "Claude Sonnet 5.5", "tool_call": true },
"everyais/gemini-3-8-flash": { "name": "Gemini 3.8 Flash", "tool_call": true }
}
}
},
"model": "everyais/everyais/claude-sonnet-5-5",
"small_model": "everyais/everyais/gemini-3-8-flash"
}Troubleshooting
| Symptom | What to check |
|---|---|
failed to fetch remote config on startup | Automatic setup fetches its config from https://platform.everyais.com each time opencode starts. Check your network, or disconnect with opencode auth logout |
| 401 | With automatic setup, run opencode auth login again and enter the key. With the file setup, run echo $EVERYAIS_API_KEY in the shell that starts opencode to check the key is set |
404 model_not_found | Check that each key under models exactly matches an everyais model ID |
| The default model is not found | Check that model has the everyais/everyais/... form |