# nika.sh · llms.txt # https://llmstxt.org/ > Nika is the control layer for AI agents: the agent writes its plan as a > readable file first (steps, tools, permissions, outputs), you review it, the > runtime enforces it, then it runs (traced and replayable). An open workflow > language plus its reference engine in Rust. Apache-2.0 spec · > AGPL-3.0-or-later engine. Paris. SuperNovae Studio. ## What Nika reads `.nika.yaml` files and executes them as AI workflows. Four verbs, locked forever: `infer` (LLM call), `exec` (subprocess), `invoke` (builtin/tool; HTTP fetch is the `nika:fetch` builtin here), `agent` (agent loop). Everything callable is a tool under `invoke`; a verb is a distinct native execution model. The language envelope is `nika: v1`, frozen forever. The engine versions independently on real semver toward a 1.0 launch; currently v0.105.0. Stdlib v0.1: 28 builtins · 17 providers (Ollama, LM Studio, llama.cpp, LocalAI, vLLM, Mistral, Anthropic, OpenAI, Gemini, Groq, DeepSeek, xAI, OpenRouter, Hugging Face, NVIDIA, mock) · 9 extract modes. Bring your own keys. Every key stays yours. Local-first. Runs on your laptop, no daemon. ## Examples (canonical · conformance-gated) Every spec version ships a versioned examples pack: foundation workflows teaching the constructs plus tiered showcase real jobs (T1 starter → T4 epic), each a complete validated file. The manifest (pack_version · constructs · sha256 per file) makes the pack verifiable end-to-end; docs and site render projections of the same files. Every served library file (e.g. https://nika.sh/library/daily-brief.nika.yaml) carries its SPDX line (Apache-2.0). - Templates (instantiate, never invent: SLOT-marked skeletons): https://nika.sh/templates · machine catalog: https://nika.sh/templates/catalog.json · source: https://github.com/supernovae-st/nika-spec/tree/main/templates - Agent authoring protocol: https://docs.nika.sh/guides/agent-authoring - Pack manifest: https://github.com/supernovae-st/nika-spec/blob/main/examples/manifest.yaml - Showcase source: https://github.com/supernovae-st/nika-spec/tree/main/examples/showcase - Walkthroughs: https://docs.nika.sh/examples/overview - Interactive explorer: https://nika.sh/#use-cases - Blog (markdown source: content/blog in the site repo): https://nika.sh/blog · feed https://nika.sh/rss.xml · full text https://nika.sh/llms-full.txt · every post serves its markdown twin beside the page (append .md, e.g. https://nika.sh/blog/intent-as-code.md) ## Design system (machine-readable) Every Nika verb, builtin, feature and run-state has a canonical icon, color role and motion pattern, declared once in an ontology and served as data. Verb hues (infer blue · exec orange · invoke cyan · agent violet) appear ONLY on live-run surfaces; static UI keeps the text ink. - Icon ontology (JSON · 79 entities · labels, semantics, hue tokens, links): https://nika.sh/brand/icons.json - RDF projection (Turtle · SPARQL-ready · namespace https://nika.sh/ontology/design#): https://nika.sh/brand/icons.ttl - Served icon catalog: https://nika.sh/brand/icons/-.svg (e.g. verb-infer, builtin-fetch, state-recovered) - Brand kit + usage rules: https://nika.sh/brand · https://github.com/supernovae-st/nika.sh/blob/main/BRAND.md ## How to write Nika (the 12 patterns) Deterministic core, model at the edges · parallelism is the default · type the boundaries · fan out with a leash · plan-then-execute · three gates (when=skip, assert=fail, prompt=human) · sovereignty is a model: line · agents get budgets · evidence always lands (on_finally) · one data language (jq) · workflows are callable · mock-first. - Patterns guide: https://docs.nika.sh/guides/patterns ## Links - Language spec (Apache-2.0): https://github.com/supernovae-st/nika-spec - Standard library register (every nika: builtin: args, required set, category): https://nika.sh/tools · one room per builtin (e.g. https://nika.sh/tools/fetch: the arg contract, the tool inside a real check-green file, the skeletons that ship it) · machine catalog: https://nika.sh/tools/catalog.json - The four verbs (one room each: block contract, a complete file, the skeletons that speak it): https://nika.sh/verbs (e.g. https://nika.sh/verbs/invoke) - The language register (every schema-declared key: scopes, types, required flags): https://nika.sh/language (e.g. https://nika.sh/language/with) · the contract: https://nika.sh/schema/workflow.json - Sources (how the site tells the truth: the pinned clocks, the truth words, the coverage score with its gaps named, the verify-yourself protocol): https://nika.sh/sources - Error register (every NIKA-* code: category, transient flag, failure line): https://nika.sh/errors · one room per code (e.g. https://nika.sh/errors/NIKA-PARSE-001) · machine catalog: https://nika.sh/errors/catalog.json - Provider register (local first, model pins, env vars): https://nika.sh/providers · machine catalog: https://nika.sh/providers/catalog.json - Engine source (AGPL): https://github.com/supernovae-st/nika - Agent lane (the MCP oracle · 9 read-only tools: nika_check · nika_explain · nika_schema · nika_examples · nika_template · nika_canon · nika_catalog · nika_tools · nika_inspect): https://github.com/supernovae-st/nika-agents - Editor lane (VS Code · Cursor · Windsurf: syntax, diagnostics, DAG view; files validate against https://nika.sh/spec/v1/workflow.schema.json via the yaml-language-server line): https://github.com/supernovae-st/nika-vscode - Install: https://nika.sh/#install (or `brew install supernovae-st/tap/nika`) - Docs: https://docs.nika.sh - Registry (share workflows · every entry machine-re-proven: pinned sha256 + conformance oracle + engine cert before run): https://github.com/supernovae-st/nika-registry · machine index: https://raw.githubusercontent.com/supernovae-st/nika-registry/main/index.json · never install an LLM-suggested name without resolving it there first - Releases: https://github.com/supernovae-st/nika/releases - The changelog (the exhaustive ship log: every release and public milestone, dated · the timeline below is its provenance record): https://nika.sh/changelog - The map (every page, one graph): https://nika.sh/map · crawler twin: https://nika.sh/sitemap.xml · atlas twin: https://nika.sh/ontology/language.json - The anatomy hubs (one page per language layer, members anchored): https://nika.sh/flow (edges · gates) · https://nika.sh/boundary (permits · secrets) · https://nika.sh/proof (conformance · trace · machine surfaces) - The timeline (the one verifiable record: eras · releases · forward gates · every provable claim re-proven in CI): https://nika.sh/timeline - Showcase rooms (one URL per conformance-gated real workflow, whole file + plan facts): https://nika.sh/use-cases (the gallery lists all rooms; each room lives at its own slug under that path) ## Status Shipping in the open (v0.105.0, real semver toward 1.0). The 42-organ skeleton is admitted crate by crate (the repo README carries the live count). Each passes a 12-gate admission (TDD, mutation testing ≥90%, zero `.unwrap()` in src). Language v0.1 public spec is live; 1.0 is readiness-gated: the timeline carries the gates (conditions, never dates). Building in public. ## License Spec: Apache-2.0 (adopt freely, patent grant). Engine: AGPL-3.0-or-later. Full copyleft. No SaaS loophole.