Blog6 min read

Use SolCard Inference in VS Code with Custom Endpoint

Add SolCard Inference to VS Code chat with the built-in Custom Endpoint provider: the chatLanguageModels.json block, which model to pick, and what a turn costs.

Contents

To use SolCard Inference in VS Code’s chat, run Chat: Manage Language Models, add a Custom Endpoint with the Chat Completions API type, and point each model’s url at https://api.solcardinference.ai/v1/chat/completions. VS Code’s language models docs describe this provider for any endpoint that speaks Chat Completions, Responses or Messages, and our API speaks all three. We haven’t run it ourselves; every VS Code field below comes from VS Code’s docs.

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.
  • VS Code 1.122 or later. The 1.122 release notes (May 2026) say the Custom Endpoint provider “is now available in VS Code Stable” and that bring-your-own-key “works without signing in.”
  • On Copilot Business or Enterprise: VS Code’s docs say an administrator must enable the “Bring Your Own Language Model Key in VS Code” policy on GitHub.com.

Add the Custom Endpoint

The steps, per VS Code’s docs:

  1. Run Chat: Manage Language Models from the Command Palette, or open it from the gear in the chat model picker.
  2. Select Add Models, then Custom Endpoint.
  3. Enter a group name, such as SolCard Inference.
  4. Enter a display name and your sk-si- key.
  5. Pick Chat Completions as the API type.
  6. VS Code opens chatLanguageModels.json. Edit it as below and save.

Coder’s VS Code page says VS Code stores the key you typed securely and writes a reference like ${input:chat.lm.secret.XXXXX} into the file. Keep that reference. VS Code’s docs say to store the key with an input variable instead of a raw key.

The chatLanguageModels.json entry

[
  {
    "name": "SolCard Inference",
    "vendor": "customendpoint",
    "apiKey": "${input:chat.lm.secret.XXXXX}",
    "apiType": "chat-completions",
    "models": [
      {
        "id": "solcard-inference-fast",
        "name": "SolCard Inference Fast",
        "url": "https://api.solcardinference.ai/v1/chat/completions",
        "toolCalling": true,
        "vision": false,
        "maxInputTokens": 1015808,
        "maxOutputTokens": 32768
      },
      {
        "id": "solcard-inference-large",
        "name": "SolCard Inference Large",
        "url": "https://api.solcardinference.ai/v1/chat/completions",
        "toolCalling": true,
        "vision": false,
        "maxInputTokens": 967232,
        "maxOutputTokens": 32768
      },
      {
        "id": "solcard-inference-base",
        "name": "SolCard Inference Base",
        "url": "https://api.solcardinference.ai/v1/chat/completions",
        "toolCalling": true,
        "vision": false,
        "maxInputTokens": 229376,
        "maxOutputTokens": 32768
      }
    ]
  }
]

Replace XXXXX with whatever reference VS Code wrote for you. What each field does, per VS Code’s model configuration reference:

FieldWhat it’s for
vendorMust be customendpoint.
apiTypechat-completions (the default), responses or messages.
idThe model id sent to the API. Must match ours exactly.
urlThe endpoint. VS Code recommends the full URL, including the API path.
toolCallingModels without it don’t appear in agent mode.
visionWhether the model takes images.
maxInputTokens, maxOutputTokensTheir sum should not exceed the context window.

Every model writes at most 32,768 tokens per request, so maxOutputTokens stays at that. Our models page lists context windows of 1,048,576 tokens for Fast, 1,000,000 for Large and 262,144 for Base, so each maxInputTokens above is the context minus 32,768.

Keep vision at false. Our models take text only, and a request with an image is rejected with unsupported_content.

Leave out thinking. Our errors page says a thinking parameter outside the Messages API returns unsupported_parameter. Large reasons on every request anyway.

Messages or Responses instead

Our API also serves Anthropic Messages at https://api.solcardinference.ai/v1/messages. Set apiType to messages and use that url if you’d rather go that way.

If you pick responses, add "zeroDataRetentionEnabled": true to each model. VS Code’s docs say that stops it from sending previous_response_id and sends the full history instead. We don’t keep responses, and our errors page lists previous_response_id as an unsupported parameter.

Which model to pick

  • solcard-inference-fast for most chat and agent turns. It’s the cheapest.
  • solcard-inference-large for planning a change or a bug Fast can’t pin down. It always reasons and costs about three times as much per token.
  • solcard-inference-base for a second opinion, with a smaller 262,144-token context.

Fast, Large or Base has more on the three.

Set the utility models

If you aren’t signed in to GitHub, point VS Code’s utility models at one of ours. VS Code’s docs say the built-in utility models are unavailable without a sign-in, and that you can set chat.utilityModel and chat.utilitySmallModel to any BYOK model. Pick SolCard Inference Fast for both in Settings; it’s the cheapest of the three.

What it won’t do

  • No inline suggestions. The 1.122 release notes say inline suggestions and next edit suggestions still need a GitHub sign-in, and VS Code’s docs say “BYOK applies to the chat experience and utility tasks only.”
  • No semantic search or embeddings. VS Code’s docs list those as needing a GitHub account.
  • Text only. No pasted screenshots or images.

Check it works

Check the key from a terminal first:

curl https://api.solcardinference.ai/v1/models \
  -H "Authorization: Bearer sk-si-..."

You should get a list with solcard-inference-fast, solcard-inference-large and solcard-inference-base. Then pick “SolCard Inference Fast” in the chat model picker and ask something small. VS Code’s docs say to restart VS Code if the model doesn’t appear.

What a turn costs

Agent mode sends your request plus files and tool results, so input is most of each turn. Prices are USD per 1M tokens, from the pricing page:

ModelInputCached inputOutput
Fast$1.25$0.125$2.50
Large$3.75$0.375$6.25
Base$1.25$0.125$3.75

Say an agent turn on Fast sends 40,000 tokens, 35,000 of which bill as cached input, and writes 1,500 tokens:

  • 35,000 cached × $0.125 per million = $0.0044
  • 5,000 new × $1.25 per million = $0.0063
  • 1,500 output × $2.50 per million = $0.0038
  • About $0.014 a turn

The same turn on Large is about $0.041, plus its reasoning, which bills as output.

If you live in VS Code’s chat, 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 usage resets every 5 hours and every week, and doesn’t roll over.

Troubleshooting

These are the API’s error codes, from our errors page; VS Code may word them differently.

  • 401 invalid_api_key: the key is missing, revoked or unknown. Re-add it through Manage Language Models.
  • 400 model_not_found: an id doesn’t match. Use solcard-inference-fast, -large or -base.
  • 400 unsupported_content: an image reached the model. Check vision is false.
  • 400 unsupported_parameter: remove thinking, or on responses, set zeroDataRetentionEnabled to true.
  • 402 insufficient_balance: credits and plan can’t cover the request. Top up and retry.
  • The model is missing in agent mode: VS Code’s docs say models need toolCalling: true to show up there.

FAQ

Do I need a Copilot subscription? VS Code’s docs say BYOK models work without a GitHub sign-in or a Copilot plan in local sessions. Inline suggestions are the main thing you lose.

Is this the old OpenAI Compatible provider? No. VS Code’s docs say Custom Endpoint replaces the deprecated OpenAI Compatible provider and adds the Responses and Messages API types.

Are my prompts and code stored? Not by us. Prompts and responses aren’t stored or logged, on any model; keeps nothing follows one request through. For VS Code’s side, check its own terms.

Can I use Continue or Cline in VS Code instead? Yes. See Use SolCard Inference in Continue or Set up SolCard Inference in Cline.

Bring the prompt that got refused.

Private. No refusals. In the app, or in the tools you already use.

Pay in crypto. No KYC.