All IDE and SDK guides

VS Code

Use the Vani API in VS Code (Continue, Cline and Copilot)

Configure Continue, Cline or VS Code's own Custom Endpoint provider for Vani.

Base URL
https://api.vani.ai/v1
Auth
Authorization: Bearer vani_…
API
Chat Completions (Messages and Responses also available)
Example model
openai/gpt-6-sol

Checked against the vendor's documentation on 2 October 2026. Need a key? Create one in the API console.

On this pageBefore you start

Before you start

  • Continue: config.yaml (the current format), with the key in a .env file the extension can read.
  • Cline: the OpenAI Compatible provider.
  • VS Code's own chat: VS Code 1.122 or later (the Custom Endpoint provider). It works without a GitHub sign-in; on Copilot Business or Enterprise an administrator controls bring-your-own-key.
  • Vani has no embeddings, legacy completions or fill-in-the-middle endpoint: keep autocomplete, inline suggestions and codebase indexing on another provider.

Continue

  1. Install Continue from the VS Code Marketplace.
  2. Create ~/.continue/.env with VANI_API_KEY=vani_… (no quotes). The extension cannot read your shell's environment variables.
  3. Open the local config: in the Continue panel open the config menu and click the gear next to Local Config (~/.continue/config.yaml).
  4. Add the models below. useResponsesApi: false keeps Continue on /chat/completions, and capabilities: [tool_use] makes Agent mode available.
  5. Restart VS Code and pick the model in Continue's model menu.
YAML

~/.continue/config.yaml

name: Vani
version: 1.0.0
schema: v1
models:
  - name: Vani GPT-6 Sol
    provider: openai
    model: openai/gpt-6-sol
    apiBase: https://api.vani.ai/v1
    apiKey: ${{ secrets.VANI_API_KEY }}
    useResponsesApi: false
    roles: [chat, edit, apply]
    capabilities: [tool_use]
  - name: Vani GPT-6 Sol Fast
    provider: openai
    model: openai/gpt-6-sol-fast
    apiBase: https://api.vani.ai/v1
    apiKey: ${{ secrets.VANI_API_KEY }}
    useResponsesApi: false
    roles: [chat, edit, apply]
    capabilities: [tool_use]
  - name: Vani Muse Spark 1.3
    provider: openai
    model: meta/muse-spark-1.3
    apiBase: https://api.vani.ai/v1
    apiKey: ${{ secrets.VANI_API_KEY }}
    useResponsesApi: false
    roles: [chat, edit, apply]
    capabilities: [tool_use]
Shell

~/.continue/.env (never commit it)

VANI_API_KEY=vani_YOUR_API_KEY

Cline

  1. Install Cline, open its panel and click the settings gear.
  2. API Provider: OpenAI Compatible.
  3. Base URL: https://api.vani.ai/v1. API Key: your Vani key. Model ID: openai/gpt-6-sol (or openai/gpt-6-sol-fast, meta/muse-spark-1.3).
  4. Under Model Configuration set the context window and maximum output to the model's real limits (Cline cannot detect them for OpenAI-compatible providers) and turn Image Support on only for models that accept images.
  5. Optional: Use different models for Plan and Act, for example openai/gpt-6-sol to plan and openai/gpt-6-sol-fast to act.
Text

Cline settings

API Provider : OpenAI Compatible
Base URL     : https://api.vani.ai/v1
API Key      : vani_YOUR_API_KEY
Model ID     : openai/gpt-6-sol

VS Code chat (Custom Endpoint)

  1. Open the model menu in chat and choose Manage Language Models (or run Chat: Manage Language Models).
  2. Click Add Models and choose Custom Endpoint. Enter a group name (Vani), a display name and your Vani key; VS Code keeps the key in its secret storage.
  3. Choose the API type Chat Completions, then fill in the models in the chatLanguageModels.json file VS Code opens, with the full endpoint URL.
  4. Set toolCalling: true so the model is offered in Agent mode. Keep maxInputTokens + maxOutputTokens within the model's context window.
  5. If you are not signed in to GitHub, also set chat.utilityModel to a Vani model so titles and commit messages work.
JSON

chatLanguageModels.json

[
  {
    "name": "Vani",
    "vendor": "customendpoint",
    "apiKey": "${input:vaniApiKey}",
    "apiType": "chat-completions",
    "models": [
      {
        "id": "openai/gpt-6-sol",
        "name": "Vani GPT-6 Sol",
        "url": "https://api.vani.ai/v1/chat/completions",
        "toolCalling": true,
        "vision": false,
        "maxInputTokens": 120000,
        "maxOutputTokens": 8000
      },
      {
        "id": "openai/gpt-6-sol-fast",
        "name": "Vani GPT-6 Sol Fast",
        "url": "https://api.vani.ai/v1/chat/completions",
        "toolCalling": true,
        "vision": false,
        "maxInputTokens": 120000,
        "maxOutputTokens": 8000
      },
      {
        "id": "meta/muse-spark-1.3",
        "name": "Vani Muse Spark 1.3",
        "url": "https://api.vani.ai/v1/chat/completions",
        "toolCalling": true,
        "vision": false,
        "maxInputTokens": 120000,
        "maxOutputTokens": 8000
      }
    ]
  }
]

Note

The token limits above are placeholders: use each model's limits from the API console's Models page.

Note

Prefer Chat Completions. With the Responses API type, set zeroDataRetentionEnabled: true: Vani's Responses API is stateless and does not keep previous_response_id.

Troubleshooting

Continue: 401, or ${{ secrets.VANI_API_KEY }} is not resolved
Put VANI_API_KEY in ~/.continue/.env or <workspace>/.continue/.env and restart VS Code. A variable exported in a terminal is not visible to the extension.
Continue: Agent mode is unavailable or tools are never called
Add capabilities: [tool_use] to the model; Continue cannot detect capabilities for Vani's ids.
404 Not Found
Continue and Cline take https://api.vani.ai/v1 (they append /chat/completions); VS Code's Custom Endpoint takes the full https://api.vani.ai/v1/chat/completions.
VS Code chat: the model is not listed in Agent mode
Set toolCalling: true, save the file and restart VS Code. On Business or Enterprise, check that bring-your-own-key is allowed.
Autocomplete or codebase indexing does not use Vani
Expected: Vani has no fill-in-the-middle or embeddings endpoint. Keep those roles on another provider.
401 Unauthorized
Use a Vani key (it starts with vani_) from the API console, not a key from another provider. Vani accepts Authorization: Bearer <key> or x-api-key: <key>; the Azure-style api-key header is not accepted. Check that no space or line break was pasted with the key.

Still stuck? Check service status or the API error reference.

Sources

We use cookies for analytics and to measure how well our campaigns are working. None of it is needed to run the site, and your conversations are never included. See our Privacy Policy.