AGPL-3.0-or-later · forever.

the language

infer

Think. Ask any model · local or cloud. One of the four verbs. A verb is a distinct native execution model, and every task speaks exactly one.

its laneany of 17 providers: local first, your keys, no lock-in

  • 8block keysthe contract
  • 1requiredprompt
  • 2check gatestyped findings
  • 6skeletonsspeak this verb

the shape

a complete workflow

Schema-valid whole: this exact text passes nika check (the on-page YAML gate re-validates it on every test run).

think.nika.yaml
nika: v1workflow:  id: thinkmodel: ollama/llama3.2:3btasks:  summarize:    infer:      prompt: "Three risks in this release, ranked"

inside infer:

8 keys · 1 required

The block's vocabulary comes from the served contract itself (workflow.schema.json). Each key opens its register row.

max_tokens
integer | stringper-call output token cap
model
string
prompt*
stringthe model job, in words: interpolate ${{ }} references, never paste secrets
schema
objectJSON Schema · the structured-output contract the model's reply must satisfy. The out-of-core hatch; the typed door is task-level `returns:` (both on one task is NIKA-TYPE-003).
system
stringSystem prompt · the standing instruction, sent ahead of `prompt:` and unchanged by it.
temperature
number | stringSampling temperature · 0 is the steadiest the provider offers, 2 the loosest. A number in 0-2, or a `${{ }}` reference.
thinking
objectExtended thinking · `{ enabled, budget_tokens }` — reasoning the model may spend before it answers (spec/02-verbs.md §infer).
vision
arrayImage inputs for the call · each entry `{ source: file | url, path | url }` · the images `prompt:` is allowed to refer to.

The verbs are locked forever: four, never five (fetch is a builtin, not a verb; ordering is the DAG's job, not a word's). The grammar lives in spec 02 · verbs; every other key is in the keyword register. Read the spec →