Contents
To use SolCard Inference in Kilo Code, add a custom provider with the OpenAI Compatible API, set the base URL to https://api.solcardinference.ai/v1, paste your sk-si- key, and add solcard-inference-fast as a model. Then set each model’s token limits in kilo.jsonc, which is where Kilo’s docs send you for them. Everything about Kilo below comes from Kilo’s own docs. We haven’t run Kilo ourselves, but the API behind it is the one OpenCode and Cline use.
What you need
- A SolCard Inference API key. Make one on the dashboard’s API keys page. Keys start with
sk-si-and are shown once. - Some balance or a plan. One prepaid USD balance pays for every key and model; see how billing works.
- Kilo Code, as the VS Code extension or the CLI. Kilo’s CLI docs install the CLI with
npm install -g @kilocode/cli.
In VS Code: the Custom provider dialog
Open Settings (the gear icon), go to the Providers tab, scroll down and click Custom provider. Fill it in like this:
| Field | Value |
|---|---|
| Provider ID | solcard-inference |
| Display name | SolCard Inference |
| Provider API | OpenAI Compatible |
| Base URL | https://api.solcardinference.ai/v1 |
| API key | your sk-si-... key |
| Models | solcard-inference-fast, solcard-inference-large, solcard-inference-base |
Click Submit. Kilo’s OpenAI Compatible page says that with a valid base URL and key it queries /v1/models and shows a picker, so you can click Fetch models instead of typing the ids. If that fails, type them in.
Pick OpenAI Compatible, not the other two. Kilo’s docs point OpenAI Responses at OpenAI and xAI models and Anthropic Messages at Anthropic and MiniMax models. Our API also serves those formats, but OpenAI Compatible, on Chat Completions, is what Kilo suggests for everyone else.
Set the token limits in kilo.jsonc
Kilo’s docs say to always set limit.context and limit.output for custom models. Left unset, they’re 0: compaction is off, output defaults to 32,000 tokens and context tracking is skipped. Its OpenAI Compatible page sends you to kilo.jsonc for token limits and tool calling.
Kilo’s settings page says the global config lives at ~/.config/kilo/kilo.jsonc and that the CLI, VS Code and JetBrains all read the same files. So this one block covers both clients:
{
"$schema": "https://app.kilo.ai/config.json",
"provider": {
"solcard-inference": {
"options": {
"apiKey": "{env:SOLCARD_INFERENCE_API_KEY}",
"baseURL": "https://api.solcardinference.ai/v1"
},
"models": {
"solcard-inference-fast": { "name": "SolCard Inference Fast", "tool_call": true, "limit": { "context": 1048576, "output": 32768 } },
"solcard-inference-large": { "name": "SolCard Inference Large", "tool_call": true, "limit": { "context": 1000000, "output": 32768 } },
"solcard-inference-base": { "name": "SolCard Inference Base", "tool_call": true, "limit": { "context": 262144, "output": 32768 } }
}
}
},
"model": "solcard-inference/solcard-inference-fast"
}
Then put the key in the variable apiKey points to:
export SOLCARD_INFERENCE_API_KEY=sk-si-...
What each part does, per Kilo’s docs:
| Field | What it’s for |
|---|---|
options.apiKey | Your key. {env:...} reads it from a variable, so the key stays out of the file. |
options.baseURL | The endpoint. Ours ends in /v1. |
models | The ids Kilo lists. Each key must match our model id exactly. |
tool_call | Marks the model as able to call tools. Kilo’s fix when tools don’t work. |
limit | Context and output limits, in tokens. |
model | The default, as provider_id/model_id. |
Every model writes at most 32,768 tokens per request, so keep output at that. The context sizes are the ones on our models page, which also says all three models support function tools. Keep credentials in your global config: Kilo’s docs say {env:...} references don’t resolve in project-level files.
Which model to pick
solcard-inference-fastfor most turns: reading files, small edits, running tests. It’s the default above.solcard-inference-largefor the hard ones: planning a change, a bug you can’t pin down. It always reasons and costs about three times as much per token.solcard-inference-basefor a second opinion. Its context is 262,144 tokens, smaller than the other two.
Switch with /models in the CLI or the model picker in VS Code. Fast, Large or Base has the details.
Check it works
Check the key and URL from a terminal first:
curl https://api.solcardinference.ai/v1/models \
-H "Authorization: Bearer sk-si-..."
You should see solcard-inference-fast, -large and -base. Then ask Kilo what it sees, and send one prompt:
kilo models solcard-inference
kilo run "Say hello in five words."
In VS Code, pick a SolCard Inference model and give it a small task, such as “Explain what this file does.”
What a task costs
A Kilo task is many requests, and each one resends the conversation so far. Most of that resent input is cached, at a tenth of the normal rate:
| Model | Input | Cached input | Output |
|---|---|---|---|
| Fast | $1.25 | $0.125 | $2.50 |
| Large | $3.75 | $0.375 | $6.25 |
| Base | $1.25 | $0.125 | $3.75 |
USD per 1M tokens, from the pricing page.
Say one request on Fast resends 70,000 tokens, 65,000 of them cached, and writes 1,000 tokens:
- 65,000 cached × $0.125 per million = $0.0081
- 5,000 new × $1.25 per million = $0.0063
- 1,000 output × $2.50 per million = $0.0025
- About $0.017 a request
A task of 25 such requests is about $0.42 on Fast. The same request on Large is about $0.049.
If you use Kilo every day, look at the plans. Starter is $20 a month for 20% more usage than pay as you go, with a limit of 120 requests a minute. Plan limits reset every 5 hours and every week, and unused plan usage doesn’t roll over.
Troubleshooting
These are the API’s codes, from our errors page; Kilo may word them differently.
- 401
invalid_api_key: the key is missing, revoked or unrecognized. In the CLI, check the variable is set in the shell that startedkilo. - 400
model_not_found: a model id doesn’t match. Usesolcard-inference-fast,-largeor-base. - 400
unsupported_content: an image or file reached the model. Our models take text only. - 402
insufficient_balance: top up, then retry.
On connection errors, Kilo’s docs say to verify the base URL: ours is https://api.solcardinference.ai/v1. If a model is missing from the picker, Kilo’s docs say to check that model matches provider/model-key and to run kilo models.
FAQ
Can I keep my other providers in Kilo Code?
Yes. A custom provider sits next to the ones you have. Pick between them in the model picker or with /models.
Do I need the dialog and kilo.jsonc both?
No. The kilo.jsonc block alone sets up the provider for every Kilo client. The dialog is the quick way in VS Code, but Kilo’s docs send you to kilo.jsonc for token limits.
Can I attach images?
No. Our models take text only, and a request with an image is rejected with unsupported_content.
Are my prompts or code stored? No. Prompts and responses are never logged or stored, on any model. Keeps nothing follows one request through.