AGPL-3.0-or-later · forever.

SDK · TypeScript

Build around the run.

Your application owns the experience. Nika owns the workflow contract, the boundary and the receipt. The TypeScript client keeps that separation typed.

client statuscontract truth
local driver
live · check, run, plan, test, trace
HTTP client
preview · jobs, SSE, artifacts
workflow service
not shipped · no false green
APP
 ├─ local ─── LocalNika ─── nika binary       [ LIVE ]
 └─ remote ── Nika ──────── workflow service  [ PREVIEW ]

01 · documentation graph

One connected path, from project file to receipt.

7 systems · 30 guides

02 · the topology

One language. Two transports.

live first

Loading the runtime topology…

03 · contract lab

Inspect the seam before you build it.

click each phase

Follow the released local integration from audit to durable proof. Each phase binds application code to one explicit machine signal. Nothing here simulates a workflow run or invents a server.

Loading the contract inspector…

04 · first run

The smallest honest integration.

copy · run · inspect

Start with the local surface. It works against the released binary, uses no shell for process spawning and returns findings instead of hiding them behind exceptions.

  1. 01Install the engine.
  2. 02Found nika.yaml and the project boundary.
  3. 03Copy a spec-proven workflow.
  4. 04Add the typed audit and run.
import { LocalNika } from '@supernovae-st/nika-client/local'

const nika = new LocalNika()
const report = await nika.check('workflows/hello.nika.yaml')

if (!report.clean) throw new Error('workflow refused')

const run = await nika.runToEnd('workflows/hello.nika.yaml', {
  maxCostUsd: 0.25,
})

console.log(run.ok, run.events.length)

05 · the contract

01

Thin by design.

The SDK carries transport and types. The engine keeps enforcement.

02

Unknown stays unknown.

An unpriced model is never rewritten as free. A new report version warns.

03

Preview looks like preview.

The HTTP client can be explored without pretending its server already ships.