Skip to content

Latest commit

 

History

2,486 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Nika

Repeat useful AI work. Keep the plan.

Nika turns repeatable AI work into files you can inspect, run and share.
Your instructions, tools and rules stay in a readable .nika file.

Latest release CI status npm package Documentation Open specification

OpenSSF Scorecard CodeQL SLSA 3 provenance on every release Archived by Software Heritage AGPL-3.0-or-later

See the idea in one minute

“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.

One intention becomes reviewable YAML, a checked graph, a bounded parallel run and five concrete results after approval

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.

Start here

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 | sh

2. Create the offline hello lesson at an explicit destination:

mkdir first-workflow
cd first-workflow
nika compile hello hello.nika

Compile 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.nika

The 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.

Make it yours

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"' --json

Add --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.

Why keep the plan in a file?

  • 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.

The city · where this repo sits

📜 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.

Go further

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.

About

Intent as Code | the workflow language for AI. One file, 4 verbs, one Rust binary. Local-first, any model, AGPL-3.0. 🦋

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

87 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages