AGPL-3.0-or-later · forever.

the provider catalog

LM Studio

A desktop app that loads a model and serves it: the file talks to whatever LM Studio has loaded, over the same wire shape as any cloud. One provider/model line moves a workflow here or away again: the same file runs on every provider the catalog names, and swapping is a one-word diff. Machines read the catalog; the binary answers nika catalog.

  • 1pinned modelaliases pin exact upstream ids
  • localfamilythe sovereign default: your hardware, no key
  • no keynothing to leakthe sovereign path
  • openai-chatwire dialectthe adapter speaks it

the wire

local · the sovereign default: your hardware, no key

A workflow names this provider in the model line (model: lmstudio/qwen3.5-4b), and the engine speaks openai-chat on the wire. No key exists on this path: nothing to rotate, nothing to leak. The provider id also answers to lm-studio.

default
qwen3.5-4b
dialect
openai-chat
tags
local · open-source

the models

1 pin

Aliases are what the file may write; the engine pins each one to an exact upstream id, so a run stays reproducible after a vendor rotates names.

  • qwenqwen3.5-4bctx 128k · vision

in the released catalog

1 room

The wire models this provider serves in the released binary's catalog · each one is a room with its seats, exact prices and measured energy.

the whole register: /catalog/models · what the released binary knows, vendored at the engine pin.

in a real file

a complete workflow · shown whole
lmstudio.nika.yaml
nika: v1workflow:  id: loaded-model-notes  description: "whatever model LM Studio has loaded answers — localhost:1234, no key"tasks:  tighten:    infer:      model: lmstudio/qwen3.5-4b      max_tokens: 150      system: You tighten prose. Keep the meaning, halve the words.      prompt: |        The meeting that was scheduled for the purpose of discussing        the roadmap has been moved to a later date next week.outputs:  tight: ${{ tasks.tighten.output }}

check-green against the released engine · 1 task · 1 wave · no closed ceiling: an unpriced model is unpriced, never free · the drift gate re-proves this copy on every test run · open it in the playground →

get set up

  1. 1Download the app at lmstudio.ai and load a model.
  2. 2Start the local server (default port 1234). No key.

Pick it for when you want a GUI to audition models before a file commits to one. Free for home and work use; the SDKs and CLI are open source. Then prove the seat: nika doctor names every provider this binary can reach.

swap it

4 more local seats

Moving off LM Studio is editing one line. The rest of the file (tasks, permits, outputs, the trace) does not change. The register orders the catalog local first; beyond it the engine embeds 21 more OpenAI-compatible endpoints.

Try it in the playground, or install and go local first. Read the spec →