# OpenScale for OpenCode

Tested with OpenCode 1.18.30, including file and shell tools.

## Version and configuration

This recipe uses the OpenCode 1.x provider schema. Check opencode --version first. OpenCode 2 beta uses a different schema; do not apply this file to v2.

Default path: `~/.config/opencode/opencode.json`.

Merge only provider.openscale into your active OpenCode JSON/JSONC configuration. Respect XDG_CONFIG_HOME, OPENCODE_CONFIG and project overrides. Keep existing providers, model defaults and filters.

[Download the configuration fragment](https://openscale.so/setup/opencode.json). This is a merge fragment, not a replacement for an existing file. Model metadata is generated from OpenScale's catalog; prices are estimates in USD per million tokens, not an account balance or billing receipt.

## Authenticate locally

In OpenCode, run /connect, choose Other, enter openscale as the provider ID, and enter your API key locally. Alternatively, set OPENSCALE_API_KEY in the environment that launches OpenCode.

## Select and verify

Reopen OpenCode after saving the configuration.

Run opencode models openscale to check discovery. Open OpenCode, use /models, and choose openscale/qwen/qwen3.6-35b-a3b.

[Official OpenCode documentation](https://opencode.ai/docs/providers/#custom-provider)

## Procedure for the setup agent

1. Confirm the requested agent and inspect its installed version and active configuration location. Read only the relevant settings; do not dump credential stores or unrelated environment variables. If the agent is not installed, link its official installation instructions and let the user choose installation.
2. Read the matching recipe and its linked configuration. If the installed schema differs, consult the linked official docs for that version. Do not guess, silently upgrade, or apply a different version's schema.
3. Back up any file you will edit with a unique timestamp and its existing permissions. Backups may contain secrets: keep them local and private. Merge only the OpenScale provider block with a format-aware editor. Preserve JSONC/JSON5/YAML comments, other providers, defaults, profiles, secrets and unrelated settings. Never overwrite the full file with a downloaded snippet. On reruns update the same provider, without duplicate keys. Preserve existing OpenScale customizations unless they conflict with the requested setup.
4. Ask the user to create an account at https://openscale.so/signup, create an API key at https://app.openscale.so/app/keys, and ensure credits are available. Let them enter the key in the agent's local credential flow or private environment configuration. Never request the key in chat, print it, put it in shell history, commit it, or send it to any endpoint except https://api.openscale.so. Reuse an existing working credential without displaying it.
5. Validate configuration syntax and use the agent's supported reload procedure. Select an OpenScale model for the test session; preserve the previous default unless the user explicitly requests changing it. These are text models; preserve separate vision, audio and auxiliary provider settings.
6. Fetch https://api.openscale.so/v1/models without authentication to confirm the chosen model ID exists. That checks discovery, not credentials or inference. Through the configured agent, send one short prompt: “Reply with OK.” Confirm the response and selected provider/model. For coding agents, also ask it to use one harmless read-only tool (for example, report the current directory) and answer after the tool result. Do not claim tool support from a text-only test. This small test uses account credits; do not run repeated benchmarks.
7. Report the agent version, changed paths (no secrets), selected model, discovery result, inference result and tool result separately. If credentials or a restart are pending, say “configuration saved; connection not yet verified.” Do not report success from merely writing a file.

## Troubleshooting and undo

- Missing models: check active profile, provider filters, model allowlists and overrides before changing unrelated settings.
- 401: re-enter the key locally. 402: check account credits. 404: check the base URL and exact live model ID. 429: respect Retry-After and retry with backoff. Do not loop indefinitely.
- Streaming or tool errors: record the agent version and a redacted error; check its Chat Completions compatibility settings. Do not switch to Responses or Anthropic Messages: this guide targets Chat Completions only.
- Undo: remove only the OpenScale provider entries added by this setup and restore any selection changed for testing. If restoring a backup, first ensure it will not discard subsequent edits. Remove only credentials created for this setup using the agent's supported local auth flow.

