Use Tresor with OpenWork

Add Tresor as a custom OpenAI-compatible provider in OpenWork.

OpenWork is a desktop app built on top of OpenCode. That means custom model providers use the same provider format as OpenCode. The simplest setup is to add a workspace-local opencode.json, then connect the provider from OpenWork's Settings UI.

1. Add the provider to your workspace config

OpenWork currently reads workspace opencode.json, opencode.jsonc, .opencode/opencode.json, and .opencode/opencode.jsonc. The simplest option is a workspace-root opencode.json:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "tresor": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Tresor",
      "options": {
        "baseURL": "https://api.tresor.co/v1"
      },
      "models": {
        "global/privatemode/gpt-oss-120b": {
          "name": "eu/privatemode/gpt-oss-120b"
        },
        "global/chutes/kimi-k2.6": { "name": "global/chutes/kimi-k2.6" },
        "global/tinfoil/deepseek-v4-pro": {
          "name": "global/tinfoil/deepseek-v4-pro"
        }
      }
    }
  }
}

If you already have an opencode.json, merge the provider.tresor block into the existing file instead of replacing it.

The model ids must match those returned by GET /v1/models. Run curl https://api.tresor.co/v1/models -H "Authorization: Bearer $TRESOR_API_KEY" to list the current set.

2. Connect the provider in OpenWork

After saving the config, open:

  • Settings
  • Connect provider
  • Tresor

Paste your Tresor API key (starts with tr-). OpenWork stores provider API keys locally through OpenCode.

If Tresor does not appear yet, reopen the workspace or restart OpenWork after saving opencode.json.

3. Pick the model

Open the chat model picker and choose one of the models exposed by the Tresor provider.

Once selected, OpenWork routes its model calls through the Tresor router and the responses include verifiable receipt ids.

See also