Zro

VS Code

Use ZRO models directly in VS Code's Copilot Chat with the ZRO extension.

The ZRO extension registers the API as a VS Code language model provider, so ZRO models appear natively in the Copilot Chat model picker. Pick a model, chat as usual, and responses stream from the endpoint with full tool-calling support.

Requires VS Code 1.104 or later.

Install

Install ZRO from the VS Code Marketplace, or from the command line:

code --install-extension MoonMathAi.zro

To install a downloaded .vsix instead, use Extensions → … → Install from VSIX…, or code --install-extension <file>.vsix.

Authenticate

The extension uses the first of these that provides a key:

  1. ZRO_API_KEY environment variable.
  2. VS Code SecretStorage — set by ZRO: Sign in with browser (a device flow that opens your browser, then stores the key on approval) or ZRO: Enter API key (paste a key, sk-...).
  3. ~/.config/zro/credentials.json — if you already ran zro login, the extension reads the same file. See the CLI reference.

If none is set, run ZRO: Dashboard — or open the ZRO icon in the activity bar. Until you authenticate, its Overview tab shows a Not connected status with Sign in with browser and Enter API key buttons; both commands are also in the Command Palette. The CLI reference covers the zro login alternative.

Use

  1. Open Copilot Chat (⌘⇧I / Ctrl+Shift+I).
  2. Pick a model from the picker — ZRO models are prefixed with ZRO.
  3. Chat as usual. Tool calls (file edits, terminal, etc.) round-trip through Copilot Chat's agent loop like any built-in model.

The catalog is fetched live from the control plane on each picker refresh, so newly activated models appear without an extension update. If the control plane is unreachable, a built-in model list keeps the picker populated.

Dashboard

Run ZRO: Dashboard, or open the ZRO icon in the activity bar, to open the dashboard panel:

TabShows
OverviewConnection state, where the API key resolved from, the masked key, and the current plan.
ModelsEvery active model with its context window and a Set as default action, plus effort controls.
CostPlan allowance, usage-pack credits, remaining credit, and trailing-30-day activity.
CachePrompt-cache read tokens over the trailing 30 days as a share of total input.
TeamAccount and plan details. Team and workspace management is not exposed yet.

Endpoints are provisioned out-of-band on serving nodes, so the dashboard lists the models your key can reach rather than a separate endpoint list. Prompt-cache and team management controls are not exposed by the API yet, so those tabs show observed usage and mark the controls as unavailable.

Reasoning effort

Reasoning models let you choose how hard they think before answering. ZRO's own commands and settings call this reasoning effort; the control VS Code renders inside the model picker is labelled Thinking Effort (the title on the model's configuration schema). Set it from any of:

  • Model picker → Thinking Effort — the model's own control, where your VS Code build renders per-model options.
  • Command Palette → ZRO: Set reasoning effort — pick a model (or Global default) and a level.
  • Dashboard → Models tab — the Effort chevron on each reasoning model.
  • Settings → zro.reasoningEffort (all models) and zro.reasoningEffortByModel (per model).

Precedence is picker choice → per-model setting → global setting → the model's server default. default sends nothing, so the control plane applies the level it recommends. A level a model does not support falls back to that model's default rather than erroring.

Levels come from the live catalog, so the choices match the model: DeepSeek V4.1 Flash accepts none / low / high / max, and GLM-5.3 accepts low / high / max. To make DeepSeek V4.1 Flash skip reasoning while every other model keeps its server default:

{
  "zro.reasoningEffort": "default",
  "zro.reasoningEffortByModel": {
    "deepseek-v4.1-flash": "none"
  }
}

Configuration

SettingPurposeDefault
zro.reasoningEffortReasoning effort for all ZRO modelsdefault
zro.reasoningEffortByModelPer-model overrides, keyed by model ID{}
ZRO_API_KEY (env)API key — overrides stored credentials—
ZRO_ENDPOINT_ROOT (env)Inference and catalog endpoint roothttps://zro.moonmath.ai

Other extensions

ZRO also works inside Cline, Continue, and Roo Code. Run ZRO: Configure in other extensions — it detects which of the three are installed and walks you through wiring them up.

  • Cline and Roo Code can use ZRO models with no second API key through their VS Code Language Model API provider, because ZRO already registers as a language model provider. The command also offers to generate an OpenAI-compatible profile (base URL + API key + model ID) for users who prefer that provider type.
  • Continue is configured by merging ZRO entries into ~/.continue/config.yaml (or config.json). Your API key is written to that file in plaintext, so the command asks for confirmation first.

On this page