Use with OpenCode, Cline, Roo Code
Last updated: 24 September 2026
Goalfinder is an OpenAI-compatible gateway, so any coding agent that speaks that format works by pointing its base URL at us. You pay from prepaid credit — no monthly seat, no five-hour rolling window. Create a key in the dashboard to get started with $1 of free credit, no card required, then pick your client below.
OpenCode
Put the config in ~/.config/opencode/opencode.json for every project, or an opencode.json in a project root to share it with a repo. JSON or JSONC both parse.
{
"$schema": "https://opencode.ai/config.json",
"model": "goalfinder/deepseek-v4.1-flash",
"small_model": "goalfinder/glm-5.3-flash",
"providers": {
"goalfinder": {
"name": "Goalfinder",
"env": ["GOALFINDER_API_KEY"],
"package": "@opencode/ai/providers/openai-compatible",
"settings": {
"baseURL": "https://www.goalfinder.space/api/v1"
},
"models": {
"deepseek-v4.1-flash": { "name": "DeepSeek v4.1 Flash" },
"glm-5.3-flash": { "name": "GLM 5.3 Flash" },
"qwen3.8-flash": { "name": "Qwen 3.8 Flash" }
}
}
}
}- Custom providers are an allowlist. Only the ids declared under
modelsshow up in/models. OpenCode does not auto-discoverGET https://www.goalfinder.space/api/v1/models, so a model missing from this map is invisible to OpenCode. - The package matters. Use
@opencode/ai/providers/openai-compatible. The plainopenaipackage speaks the Responses API, which we do not implement. - After saving: export
GOALFINDER_API_KEY, restart OpenCode, run/models, and pick agoalfinder/…entry. Keep the key in the environment variable rather than in a committedopencode.json.
export GOALFINDER_API_KEY=gf-YOUR_KEY
If your OpenCode still uses provider (singular)
Older versions — and most tutorials online — use a different shape. If the block above fails to load, try this one instead. Do not put providers and provider in the same file.
{
"$schema": "https://opencode.ai/config.json",
"model": "goalfinder/deepseek-v4.1-flash",
"provider": {
"goalfinder": {
"npm": "@ai-sdk/openai-compatible",
"name": "Goalfinder",
"options": {
"baseURL": "https://www.goalfinder.space/api/v1",
"apiKey": "{env:GOALFINDER_API_KEY}"
},
"models": {
"deepseek-v4.1-flash": { "name": "DeepSeek v4.1 Flash" }
}
}
}
}Cline (VS Code)
- Open the Cline panel, then the gear icon → API Provider.
- Choose OpenAI Compatible — not
OpenAI. The plain OpenAI option pins its own endpoints. - Base URL:
https://www.goalfinder.space/api/v1— include/v1, no trailing slash. Cline appends/chat/completionsitself. - API Key: the
gf-…key from your dashboard. - Model ID: the exact catalog id, for example
deepseek-v4.1-flash. Display names do not work here. - Save, then let Cline verify the connection.
Continue (existing installs only)
v2.0.0 release, the GitHub repository is read-only, and the hosted Hub has shut down — there are no further updates, security patches, or provider-API fixes. The config below still works for a pinned local install, but if you are starting fresh, use Cline or OpenCode instead — both are actively developed and use the same OpenAI-compatible fields shown here.Edit ~/.continue/config.yaml on macOS and Linux, or %USERPROFILE%\.continue\config.yaml on Windows. It is YAML; config.json is deprecated.
name: Goalfinder
version: 0.0.1
schema: v1
models:
- name: DeepSeek v4.1 Flash
provider: openai
model: deepseek-v4.1-flash
apiBase: https://www.goalfinder.space/api/v1
apiKey: ${{ secrets.GOALFINDER_API_KEY }}
roles: [chat, edit, apply]
capabilities: [tool_use]
- name: GLM 5.3 Flash
provider: openai
model: glm-5.3-flash
apiBase: https://www.goalfinder.space/api/v1
apiKey: ${{ secrets.GOALFINDER_API_KEY }}
roles: [chat, edit, apply]
capabilities: [tool_use]
- name: Qwen 3.8 Flash
provider: openai
model: qwen3.8-flash
apiBase: https://www.goalfinder.space/api/v1
apiKey: ${{ secrets.GOALFINDER_API_KEY }}
roles: [chat, edit, apply]
capabilities: [tool_use]provider must be openai — Continue's built-in compatible adapter. There is no goalfinder provider, and anthropic will not work.
roles is limited to [chat, edit, apply]. Do not add embed or autocomplete: we have no embeddings endpoint and no fill-in-the-middle support. capabilities: [tool_use] is what allows Agent mode.
If your Continue build does not resolve ${{ secrets.*}} in this file, paste the key literally instead — and keep the file out of version control:
name: Goalfinder
version: 0.0.1
schema: v1
models:
- name: DeepSeek v4.1 Flash
provider: openai
model: deepseek-v4.1-flash
apiBase: https://www.goalfinder.space/api/v1
apiKey: gf-YOUR_KEY
roles: [chat, edit, apply]
capabilities: [tool_use]
- name: GLM 5.3 Flash
provider: openai
model: glm-5.3-flash
apiBase: https://www.goalfinder.space/api/v1
apiKey: gf-YOUR_KEY
roles: [chat, edit, apply]
capabilities: [tool_use]
- name: Qwen 3.8 Flash
provider: openai
model: qwen3.8-flash
apiBase: https://www.goalfinder.space/api/v1
apiKey: gf-YOUR_KEY
roles: [chat, edit, apply]
capabilities: [tool_use]Reload Continue and pick the model from the dropdown.
Other OpenAI-compatible clients
Roo, Kilo Code, Aider, Hermes, and Cursor's OpenAI compatible provider mode all take the same three fields. Roo Code and Kilo Code are the closest replacements for a Continue install, since they use the same VS Code extension model and are still actively maintained:
base URL: https://www.goalfinder.space/api/v1 api key: gf-YOUR_KEY model: deepseek-v4.1-flash # or any id from GET https://www.goalfinder.space/api/v1/models
For a raw SDK call, the Python example in the API reference works unchanged — only the base URL and key differ.
These will not work
- Claude Code pointed at
ANTHROPIC_BASE_URL. It speaks the Anthropic Messages API, not OpenAI Chat Completions. - Codex and Responses-API clients. We implement Chat Completions only; there is no
/v1/responsesand no stateful conversation object. - Embeddings or vision. No vector endpoints, and no image input on any model.
Pitfalls
| Symptom | Cause | Fix |
|---|---|---|
| 404 on chat/completions | Base URL missing /api/v1, has an extra /chat/completions, or uses www. | Use https://www.goalfinder.space/api/v1 exactly. |
| 401 | Bad or revoked key, or the key is in the wrong field. | Dashboard → create a new key. In Cline, use the OpenAI-Compatible key field. |
| 402 | Balance will not cover the worst-case max_tokens. | Buy a pack, or lower max tokens in the client. |
| OpenCode shows an empty model list | Custom providers are an allowlist. | Declare every id you want under the provider's models map. |
| Continue talks to api.openai.com | provider is not openai, or apiBase is missing. | Set both: provider: openai and apiBase. |
| An agent loop burns credit fast | Each tool-call round is billed as a normal completion. | Keep tool_choice and iteration caps tight. See the billing note on tool calling. |
The full protocol reference lives at /docs. For data handling — we do not store your prompts, though upstream providers may train on what they receive — see the privacy policy.