GitHub

SELF-HOSTED MODELS FOR COPILOT CHAT.

The Yoke pilot: visor down, arms crossed

NONE, LOW, HIGH, MAX EFFORT SUPPORTED.

Yoke

BRING YOUR OWN RUNTIME

INSTALL EXTENSION

Outbound request

You choose
the endpoint

Fig. 01 · local payload
POST /v1/chat/completions LocalMetered
POST /v1/chat/completions
host: 127.0.0.1:8000
authorization: Bearer sk-a41f…
model: deepseek-v4-flash
stream: true
hosted API tokens:0

Preflight

Three checks
before you fly

All checks pass

Yoke brings self-hosted inference to VS Code's native Copilot Chat without replacing its model picker, agent mode, tools, instructions, or skills. It requires VS Code 1.116 or later and a GitHub Copilot plan; the Free tier works. The checks below were verified against a live vLLM deployment.

Keys are optional

Your endpoint, your credentials

A key is required only for api.deepseek.com. Self-hosted endpoints can run without one. If you configure a key for another provider, Yoke stores it in VS Code's SecretStorage and sends it to that endpoint.

Reasoning supported

Thinking you can see

vLLM and SGLang stream reasoning as delta.reasoning; hosted DeepSeek uses delta.reasoning_content. Yoke accepts both and supports none, low, high, and max reasoning effort for compatible DeepSeek models.

Real context

The window you actually have

Declare each model's ID, context window, output limit, and capabilities. Invalid entries are logged and skipped; the built-in DeepSeek models remain available, so the picker is never empty.

Instruments

Two settings

Fig. 02 · basic self-hosted setup

For a basic self-hosted setup, point Yoke at your OpenAI-compatible endpoint and describe the models it serves. Additional settings cover registries, vision, timeouts, diagnostics, and tool-list stabilization.

Sizing the window. Hosted APIs often account for prompt and completion separately. Self-hosted runtimes usually share one context budget. For vLLM, set maxInputTokens to max_model_len minus maxOutputTokens.

settings.json
"yoke.baseUrl": "http://127.0.0.1:8000/v1",
"yoke.customModels": [
  {
    "id": "deepseek-v4-flash",
    "name": "DeepSeek V4 Flash (local)",
    "maxInputTokens": 983040,
    "maxOutputTokens": 65536
  }
]

Airspace

Bring your own
runtime

Uncontrolled

Use any endpoint that implements /v1/chat/completions. Yoke sends a standard OpenAI-compatible request by default and adds DeepSeek's proprietary thinking field only when thinkingParam is set to deepseek, so strict gateways do not receive unsupported fields.

vLLMopenai-compatible
SGLangopenai-compatible
llama.cppopenai-compatible
Ollamaopenai-compatible
LM Studioopenai-compatible
DeepSeek · Qwen · GLM · Kimiknown-good

Decision matrix

Compared to alternatives

Six practical differences
Yoke compared with a local proxy and standalone DeepSeek extensions
Capability YOKE Local proxy
(e.g. LiteLLM)
Standalone DeepSeek extensions
Works inside Copilot Chat Yes Yes No: Separate UI
Agent mode, tools, skills Yes Yes Caution: Reimplemented
Vision support Yes: Native + proxied No No
No extra process to run Yes No Yes
One-click install Yes No Yes
API key in OS keychain Yes No Caution: Varies