Kilo Code
Kilo Code connects as a custom provider: one block in ~/.config/kilo/kilo.jsonc, which the VS Code extension and the kilo command share.
- Base URL
https://api.creeksidecompute.ai/v1- API
- OpenAI Chat Completions
- Model id
qwen/qwen3.8-27b, orqwen/qwen3.6-35b-a3bfor speed, ormeta/muse-glimmer-30b, which always reasons first- Context window
- 131072 tokens, up to 65536 of them output
- Key
- Make one at creeksidecompute.ai/account
Set it up
Make a key. Sign in at creeksidecompute.ai/account with your email and make a key. Each request is paid from prepaid credit: top up by card from $10, or redeem a promotional code.
Put the key in an environment variable. Add this line to your shell profile (for example
~/.zshrc), then restart VS Code:shellexport CREEKSIDE_API_KEY=<your key>Add the provider. Put this in
~/.config/kilo/kilo.jsonc. Keep it in this global file: Kilo reads{env:…}only there, not in a project'skilo.json.~/.config/kilo/kilo.jsonc{ "$schema": "https://app.kilo.ai/config.json", "model": "creekside/qwen/qwen3.8-27b", "small_model": "creekside/qwen/qwen3.8-27b", "provider": { "creekside": { "npm": "@ai-sdk/openai-compatible", "name": "Creekside", "options": { "baseURL": "https://api.creeksidecompute.ai/v1", "apiKey": "{env:CREEKSIDE_API_KEY}" }, "models": { "qwen/qwen3.8-27b": { "name": "Qwen3.8 27B", "tool_call": true, "reasoning": true, "limit": { "context": 131072, "output": 32768 }, "variants": { "none": { "reasoningEffort": "none" }, "low": { "reasoningEffort": "low" }, "medium": { "reasoningEffort": "medium" }, "high": { "reasoningEffort": "high" } } }, "qwen/qwen3.6-35b-a3b": { "name": "Qwen3.6 35B A3B", "tool_call": true, "reasoning": true, "limit": { "context": 131072, "output": 32768 }, "variants": { "none": { "reasoningEffort": "none" }, "low": { "reasoningEffort": "low" }, "medium": { "reasoningEffort": "medium" }, "high": { "reasoningEffort": "high" } } }, "meta/muse-glimmer-30b": { "name": "Muse Glimmer 30B", "tool_call": true, "reasoning": true, "attachment": true, "modalities": { "input": ["text", "image"], "output": ["text"] }, "limit": { "context": 131072, "output": 32768 }, "variants": { "low": { "reasoningEffort": "low" }, "medium": { "reasoningEffort": "medium" }, "high": { "reasoningEffort": "high" } } } } } } }small_modelkeeps Kilo's small requests, such as session titles, on Creekside. Withoutlimit, Kilo never compacts, and the conversation grows until a request is refused. In VS Code, Settings, Providers, Custom provider adds the same provider from a form and stores the key for you. It sets no limits or variants, so add themodelsblock as well.attachmentandmodalitieslet Kilo send images to Muse Glimmer 30B, which reads them.Pick the model. In VS Code, choose Qwen3.8 27B under Creekside in the model picker, or type
/models. In the terminal:kilo -m creekside/qwen/qwen3.8-27b. For speed, choose Qwen3.6 35B A3B instead, orkilo -m creekside/qwen/qwen3.6-35b-a3b. For Muse Glimmer 30B, choose it under Creekside, orkilo -m creekside/meta/muse-glimmer-30b.
Thinking
Thinking is off until you pick a variant: with none selected, Kilo sends no thinking setting. The four variants send reasoning_effort: none keeps thinking off, and low, medium and high turn it on. Type /variant in VS Code or /variants in the CLI to choose one, or press Shift+Tab in the prompt to cycle through them. Thinking tokens are billed as output.
Muse Glimmer 30B always reasons before it answers, so its variants set how long, not whether: with no variant selected, or at low, it reasons briefly, and medium and high make it reason longer.
What does not work
- Images and browser use, on the Qwen models. They are listed for text only, so they cannot read the screenshots that browser use returns. Muse Glimmer 30B's entry takes images.
- Cost display. Without a
costblock, Kilo shows no spend. Your bill uses the prices inGET /v1/models.
Troubleshooting
401invalid API key- The key is wrong, or Kilo Code did not get it. Set
CREEKSIDE_API_KEYin your shell profile and restart VS Code, or enter the key again in the Custom provider form. To test the key alone,curl -s https://api.creeksidecompute.ai/v1/models -H "Authorization: Bearer $CREEKSIDE_API_KEY"returns the model list when the key is good. 404model … is not served- The model id is wrong. Use
qwen/qwen3.8-27bexactly, in lower case, with theqwen/prefix.GET /v1/modelslists every id we serve. Inkilo.jsoncthe key undermodelsis the id;creekside/is only Kilo's provider prefix. 400maximum context length is 131072 tokens- The conversation is longer than the model's window. Keep
limit.contextat 131072 so Kilo compacts in time, then start a new task. 402or429- A
402means your prepaid credit does not cover the request: add credit at creeksidecompute.ai/account. A429means the key's rate, or the number of requests your account may run at once, is used up; agents that work in parallel reach that sooner. Wait and retry. The API reference lists the limits.
Other tools
Sources, read on 2026-10-11: OpenAI-compatible providers, custom models, model selection.