Skip to content

πŸ¦‹ Nika 0.62.0 β€” Workflow API

Choose a tag to compare

@github-actions github-actions released this 02 Apr 12:30

πŸ¦‹ Nika 0.62.0 β€” Workflow API

Inference as Code Β· April 2, 2026 Β· 3 commits

πŸ§ͺ Tests πŸ”§ Builtins πŸ“¦ Transforms 🌐 Providers
9,410+ 38 39 9

✧ infer Β· ⎈ exec Β· β˜„ fetch Β· βŠ› invoke Β· ❋ agent


🌐 Discovery: Workflows as an API

Until now, you had to know which workflows existed on a Nika server. You'd deploy 40 .nika.yaml files, and your frontend had to hardcode every name. If someone added a new workflow, the client had no way to discover it.

GET /v1/workflows changes that. One HTTP call returns every available workflow β€” name, description, input schema β€” so your application can dynamically build UIs, autocomplete fields, and validate inputs before submitting a job.

curl http://localhost:3000/v1/workflows \
  -H "Authorization: Bearer $TOKEN"
[
  {
    "name": "translate-article",
    "description": "Translate an article to multiple languages",
    "inputs": {
      "url": { "type": "string", "description": "Source article URL" },
      "locales": { "type": "array", "description": "Target BCP-47 locales" }
    }
  },
  {
    "name": "research-topic",
    "description": "Multi-provider research synthesis",
    "inputs": {
      "topic": { "type": "string" }
    }
  }
]

This is the foundation for IDE integrations, admin dashboards, and self-documenting API gateways.

πŸ“¦ TypeScript SDK β€” Zero Dependencies

Alongside the discovery endpoint, we shipped @supernovae-st/nika-client β€” a pure TypeScript HTTP client for nika serve. No axios, no node-fetch, no bundler plugins. Just the Fetch API and 56 tests.

import { NikaClient } from '@supernovae-st/nika-client';

const nika = new NikaClient({
  baseUrl: 'http://localhost:3000',
  token: process.env.NIKA_TOKEN,
});

// Discover available workflows
const workflows = await nika.listWorkflows();

// Submit a job with SSE streaming
const stream = nika.stream('translate-article', {
  inputs: { url: 'https://blog.com/post', locales: ['fr', 'de', 'ja'] },
});

for await (const event of stream) {
  switch (event.type) {
    case 'TaskStarted':
      console.log(`⏳ ${event.taskId}`);
      break;
    case 'InferChunk':
      process.stdout.write(event.text);
      break;
    case 'TaskCompleted':
      console.log(`βœ… ${event.taskId}`);
      break;
    case 'JobCompleted':
      console.log('πŸŽ‰ Done:', event.output);
      break;
  }
}

What you get:

Feature Details
🎯 Full lifecycle run(), stream(), status(), cancel(), listWorkflows()
⚑ SSE streaming Real-time task events via Server-Sent Events
πŸ”„ Automatic retry Exponential backoff on transient failures
πŸ“¦ Typed events Discriminated TypeScript unions β€” event.type narrows the type
πŸ§ͺ 56 tests Comprehensive test suite, no mocks needed
πŸͺΆ Zero deps Pure Fetch API β€” works in Node, Deno, Bun, and browsers

Published as a separate repo: supernovae-studio/nika-client


πŸ“¦ Install

Method Command
πŸš€ Quick curl -fsSL https://raw.githubusercontent.com/supernovae-st/nika/main/install.sh | sh
🍺 Homebrew brew install supernovae-st/tap/nika
πŸ“¦ npm npx @supernovae-st/nika
πŸ¦€ Cargo cargo install nika
🐳 Docker docker run --rm ghcr.io/supernovae-st/nika:0.62.0
πŸ’» VS Code Search "Nika" or ext install supernovae.nika-lang
πŸͺŸ Scoop scoop bucket add nika https://github.com/supernovae-st/scoop-nika && scoop install nika
🐧 AUR yay -S nika-bin

πŸ¦‹ Nika Evolution
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
v0.42  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘  8,188 tests
v0.48  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘  8,200 tests
v0.52  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘  8,938 tests
v0.56  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘  9,093 tests
v0.58  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘  9,109 tests
v0.61  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘  9,407 tests
v0.62  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ  9,410 tests ← you are here
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

πŸ”§ 38 builtins Β· πŸ“¦ 39 transforms Β· 🌐 7+1+1 providers Β· πŸ¦€ 16 crates

Made with πŸ’œ by SuperNovae Studio β€” Open Source, AGPL-3.0

Full Changelog: v0.61.0...v0.62.0