Skip to content

Evanesca opens soon: this page shows how the chat will work.

OpenCode on AI models run in Europe

Declare Evanesca as an OpenAI-compatible provider in opencode.json and code from the terminal with open models run in Europe. A provider entry in opencode.json (at the project root or in ~/.config/opencode/), built on the @ai-sdk/openai-compatible package.

Tool documentation read on 12 Oct 2026

SoonOpening soon: what follows describes the service as it will work.

Tool
OpenCode · Coding agent
API format
OpenAI-compatible (Chat Completions)
Base URL
https://evanesca.app/api/v1
Your prompts
From your machine or server, straight to Evanesca

Setup

1. Add Evanesca as a provider

OpenCode's own catalogue knows nothing about a custom provider's models, so give each one its context and output limits: OpenCode uses them to track how much room is left. Name a small_model as well, or titles may be written by your main model. The output limit is a ceiling you choose.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "share": "disabled",
  "provider": {
    "evanesca": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Evanesca",
      "options": {
        "baseURL": "https://evanesca.app/api/v1",
        "apiKey": "{env:EVANESCA_API_KEY}"
      },
      "models": {
        "deepseek-v4.1-flash": { "name": "DeepSeek V4.1 Flash", "limit": { "context": 1000000, "output": 16384 } },
        "gemma-4-26b": { "name": "Gemma 4 26B", "limit": { "context": 256000, "output": 16384 } }
      }
    }
  },
  "model": "evanesca/deepseek-v4.1-flash",
  "small_model": "evanesca/gemma-4-26b"
}

2. Provide the key, pick the model

Export EVANESCA_API_KEY, or run /connect, choose Other and type the provider ID exactly as in the file (evanesca). /models then lists evanesca/deepseek-v4.1-flash and the other models you declared.

Shell
export EVANESCA_API_KEY="<your Evanesca key>"
opencode

Where these settings come from

These settings come from OpenCode's official documentation, read on 12 Oct 2026. This guide has not been run against Evanesca yet: it will be checked when the API opens.

Which model to pick

Evanesca's models from which a real tool call came back at their operator. This guide uses DeepSeek V4.1 Flash and Gemma 4 26B, picked from the catalogue for their properties. Prices per million tokens, input / output, margin and VAT included.

Model IDOperator and placeContextReasoningPrice
mistral-large-4EU region of Mistral AI512k—€2.5133 / €7.7246
deepseek-v4.1-flashGermany (AKI.IO)1MYes€1.008 / €3.024
glm-5.3Germany (AKI.IO)512kYes€3.024 / €9.24
qwen3.8-27bScaleway — Paris, France256kYes€1.008 / €5.544
deepseek-v4-flashScaleway — Paris, France256kYes€0.672 / €1.344
apertus-v1.5-70bSwitzerland (Infomaniak)100k—€1.2936 / €4.62
glm-5.2Scaleway — Paris, France256kYes€3.024 / €9.24
qwen3.6-35bScaleway — Paris, France256kYes€0.42 / €2.52
gemma-4-26bGermany (AKI.IO)256k—€0.168 / €0.84
mistral-small-4-119bEU region of Mistral AI256k—€0.2772 / €1.1088
qwen3.5-397bScaleway — Paris, France250kYes€1.008 / €6.048
gpt-oss-120bScaleway — Paris, France—Yes€0.252 / €1.008
qwen3-coder-30bScaleway — Paris, France256k—€0.336 / €1.344
qwen3-235bScaleway — Paris, France250k—€1.26 / €3.78
mistral-small-3.2Scaleway — Paris, France——€0.252 / €0.588
llama-3.3-70bScaleway — Paris, France——€1.512 / €1.512
pixtral-12bScaleway — Paris, France128k—€0.336 / €0.336

Reasoning tokens are billed as output. Where each model runs and what its operator keeps: Models and Europe.

Good to know

  • OpenCode edits files and runs commands through tool calls: declare only models whose tool calling is measured.
  • A reasoning model is declared with "reasoning": true and "interleaved": { "field": "reasoning_content" }.
  • Use @ai-sdk/openai-compatible, not @ai-sdk/openai: the second targets providers that serve OpenAI's Responses API, which Evanesca does not.

Where your prompts go

The local OpenCode process calls the base URL. One documented exception: /share uploads the conversation to OpenCode's servers and publishes a link — the sample turns it off with "share": "disabled".

On Evanesca's side, the model runs at a European operator, named with its place in the x-evanesca-operator and x-evanesca-location headers of every response, and Evanesca keeps no copy of prompts or answers — only the billing data of each call. What each operator keeps is set out in Models and Europe; the host of Evanesca's servers is named in the legal notice.

Sources

Official documentation, read on 12 Oct 2026:

Frequently asked questions

Does OpenCode work with Evanesca?

Yes, through its base URL setting: A provider entry in opencode.json (at the project root or in ~/.config/opencode/), built on the @ai-sdk/openai-compatible package. These settings come from OpenCode's official documentation, read on 12 Oct 2026. This guide has not been run against Evanesca yet: it will be checked when the API opens.

Which Evanesca model should I use with OpenCode?

One whose tool calling is measured. This guide uses DeepSeek V4.1 Flash and Gemma 4 26B; the 17 candidates are in this page's table, with their context window and price.

Do my prompts stay in Europe with OpenCode?

The local OpenCode process calls the base URL. One documented exception: /share uploads the conversation to OpenCode's servers and publishes a link — the sample turns it off with "share": "disabled". On Evanesca's side, the model runs at a European operator, named with its place in the x-evanesca-operator and x-evanesca-location headers of every response, and Evanesca keeps no copy of prompts or answers — only the billing data of each call. What each operator keeps is set out in Models and Europe; the host of Evanesca's servers is named in the legal notice.

One key, and the tool runs on models in Europe.

Prepaid credit, no subscription: the same key works with every guide.