v:
nika check, nika run, nika doctor, nika lsp,
and nika mcp ship in the binary. Run nika init once per repo for schema
and agent rules.Goal
Write a.nika.yaml file, run it, get structured output. No setup beyond
nika installed. Your first run needs no API key and no model server.
1. Pick how the AI step runs
Three paths, from zero-setup to production: Instant (no model at all): the built-inmock/echo model returns a
deterministic response, so you can see a workflow’s shape right now:
nika doctor tells you exactly what’s wired and how to fix
what isn’t:
2. Write the workflow
Createhello.nika.yaml:
hello.nika.yaml
nika: v1declares the workflow language + pins the contract version (a single version marker ·v1forever).workflow:is a human-readable name (kebab-case · the document-type discriminator).tasks:is a list; each task has anidand one verb (here,infer).
3. Check it, then run it
4. Add a second task that depends on the first
hello.nika.yaml
${{ tasks.greet.output }}. That’s a binding.
The engine injects the previous task’s output into the prompt at runtime,
with explicit taint tracking and pipe filters.
The graph you just built
Onedepends_on line and the order falls out of the file. Tasks with no
dependency between them run in parallel automatically. You never
schedule anything.
5. Get structured output
hello.nika.yaml
What you just built
- Workflows are YAML files:
.nika.yaml. - Tasks are units of work, identified by
id. - Four verbs (
infer,exec,invoke,agent) define what each task does (HTTP fetch is thenika:fetchbuiltin underinvoke). depends_on:builds a DAG.${{ tasks.X.output }}bindings flow data between tasks, with taint tracking.schema:enforces JSON schemas on AI output.
Next checks
Read next
Examples · real jobs
Climb the ladder: starter chains to multi-agent swarms, every file
conformance-validated.
How to write Nika
The twelve patterns: where the determinism lives, where the model
is allowed to think.
The 4 verbs
Deep dive on
infer, exec, invoke, agent.Bindings
How data flows between tasks with taint tracking.
Providers
Why one
InferRequest works across providers.Live state
Which verbs are admitted today.