Nika turns repeatable AI work into files you can inspect, run and share.
Your instructions, tools and rules stay in a readable .nika file.
“Help more customers finish checkout. Read our feedback and sales data, compare three competitors, propose an improvement, then ask me before sharing it.”
The plan gathers CSV, Markdown and Linear context, processes three competitors in parallel, and waits for approval. The result is a saved brief, a GitHub issue, Telegram and Slack updates, and an updated Linear issue.
Watch or download the 60-second MP4.
Illustrative product film, not a recording of the CLI. Fictional data and integrations are shown; no live messages are sent. The current starting point is a terminal and a workflow file, not a visual drag-and-drop editor.
Turn your meeting notes into action items with owners and deadlines. Use the AI access you already have. Get a real file you can review and import, not an echo or a simulated answer.
1. Install Nika on macOS or Linux:
curl -LsSf https://nika.sh/install.sh | sh2. Create the offline hello lesson at an explicit destination:
mkdir first-workflow
cd first-workflow
nika compile hello hello.nikaCompile uses the same stateless core for this lesson and exact skeletons. Hello
always uses mock/echo, including when provider keys are present. It does not
call a model, run the workflow, or choose access on your behalf.
3. Check and run the file:
nika check hello.nika
nika run hello.nikaThe greeting is a mock echo: this proves the workflow runs without a provider.
The file stays yours to inspect, review in Git, and share. Run records its local
trace under .nika/traces/; creation adds that directory to .gitignore.
nika compile --list lists exact skeletons. Preview one with
nika compile <slug> --json, then answer its stable questions with repeatable
--answer KEY=JSON_LITERAL. An incomplete result includes its candidate and
questions; it does not write a file. Only a Ready candidate plus an explicit
destination writes. Existing destinations require --force.
For an accepted source, a conservative constant edit uses the same core:
nika compile --base workflow.nika --change 'Set const.topic to "new topic"' --jsonAdd --output edited.nika to materialize a Ready edit. The base source
remains explicit. Unsupported natural language stays incomplete without a
substitute workflow. Full natural-language authoring and Graph editing are not
implemented by this bounded CLI.
Compile's Check preview judges source only. nika check and nika run judge
the actual environment separately. For a real model, choose the provider and
access explicitly; model setup documentation explains
local, API and supported harness choices. nika try remains the example gallery.
- Understand it before running it. Task references define the dependency graph, also called a DAG. Independent steps can run in parallel.
- Keep AI inside explicit boundaries. Declare allowed access, output shapes, concurrency and approval gates. Checks report what they cover and what must be decided at runtime; a green check does not guarantee that AI content is true.
- Improve it with your team. Share the procedure, review changes and run a version again. The plan can stay the same while external data or AI answers change.
- Keep a record. Runs leave a journal under
.nika/traces/. Verification checks record integrity, not the truth of an AI answer.
This is Intent as Code: the contract is the plan, not a disposable chat.
The four building blocks
| Verb | What it does |
|---|---|
infer |
Ask a model to produce an answer |
invoke |
Call a native tool, MCP tool or another workflow |
exec |
Run a command |
agent |
Let a model use allowed tools for a bounded number of turns |
A workflow only needs the verbs its job requires. The film uses invoke
and infer; it does not add a shell or an agent loop just to fill the diagram.
Other installation options
With Homebrew: brew install supernovae-st/tap/nika.
From npm, the same binary plus a TypeScript client:
npm install @supernovae-st/nika (the nika command lands in
node_modules/.bin).
See the install guide or download a release archive; every release ships SLSA provenance you can verify. A Nix flake is in the repository. Windows users can use WSL2; native Windows binaries are not shipped yet.
Before sharing a workflow or a run
Share the workflow, not credentials or private data. Review file paths and tool access. Keep secrets out of source control.
Run journals can contain the data and outputs the workflow processed.
The .nika/traces/ directory is a data-at-rest surface: it inherits the sensitivity
of everything the run read. Exclude it from Git unless you deliberately intend
to publish those records. Treat them with the same care as their source data.
After a run, nika trace verify verifies the latest journal. Compare its head
with the one printed by the run. This checks the record, not the AI's judgement.
📜 nika-spec ──── language law and conformance
│
▼
⚙️ nika ───────── this repo: the engine · admission, execution, receipts and schedules
│
▼
🔌 doors ──────── npm @supernovae-st/nika · Homebrew · VS Code · plugins · gh nika · the CI action
│
▼
🧩 your workflows
This repository is the one executable: it parses, admits, runs and traces every workflow. The language is defined in the specification; the doors consume this engine and add nothing to its authority.
All the buildings: nika-spec · nika · nika.sh · nika-docs · nika-client · nika-vscode · nika-plugins · gh-nika · homebrew-tap · nika-action · nika-actions-starter · nika-registry · nika-estate.
Examples · Documentation · TypeScript SDK · Editor extension · Open specification · Registry · Roadmap
Nika is usable today and pre-1.0. The engine is AGPL-3.0-or-later; the specification is Apache-2.0.