AGPL-3.0-or-later · forever.

the provider catalog

Mock

The harness: deterministic, offline, free. Every file should rehearse here before it costs anything. Going real is a one-word diff. 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
  • testfamilythe harness: rehearse before anything costs
  • no keynothing to leakthe sovereign path
  • mockwire dialectthe adapter speaks it

the wire

test · the harness: rehearse before anything costs

A workflow names this provider in the model line (model: mock/mock-default), and the engine speaks mock on the wire. No key exists on this path: nothing to rotate, nothing to leak.

default
mock-default
dialect
mock

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.

  • defaultmock-defaultctx 1m · reasoning · vision · json:schema

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
draftinfer
proveinvoke
mock.nika.yaml
nika: v1workflow:  id: mock-first-draft  description: "the whole file rehearses for free — swap one word when it goes real"tasks:  draft:    infer:      model: mock/mock-default      max_tokens: 50      prompt: |        Any deterministic echo will do — the shape is the test.  prove:    with:      draft: ${{ tasks.draft.output }}    invoke:      tool: "nika:assert"      args:        condition: ${{ with.draft != "" }}        message: "the rehearsal produced nothing"outputs:  rehearsal: ${{ tasks.draft.output }}

check-green against the released engine · 2 tasks · 2 waves · ceiling $0.0000 by construction: the harness never bills · the drift gate re-proves this copy on every test run · open it in the playground →

get set up

  1. 1Nothing to install and no key. The engine ships it.
  2. 2Rehearse any file nika run file.nika.yaml --model mock/mock-default

Pick it for always first. Author against mock, then swap the model line. Then prove the seat: nika doctor names every provider this binary can reach.

swap it

0 more test seats

Moving off Mock 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.

cross-references

the words that meet it

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