Skip to content

πŸ¦‹ Nika 0.63.0 β€” Serve Ops

Choose a tag to compare

@github-actions github-actions released this 02 Apr 15:51

πŸ¦‹ Nika 0.63.0 β€” Serve Ops

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

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

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


🐧 Nika Goes to Production

This release is about one thing: making nika serve deployable on real Linux servers. Not localhost. Not Docker-on-Mac. Actual systemd-managed services with environment files, automatic restart, and resource limits.

We wrote a proper nika-serve.service unit file with Type=notify readiness signaling β€” meaning systemd knows exactly when Nika is ready to accept requests, not just that the process started. Combined with Restart=always, MemoryMax, and CPUQuota, you get a production deployment that recovers from crashes and stays within resource bounds.

# /etc/systemd/system/nika-serve.service
[Service]
Type=notify
ExecStart=/usr/local/bin/nika serve --bind 0.0.0.0:3000
EnvironmentFile=%h/.nika/.env
Restart=always
MemoryMax=2G
CPUQuota=200%

πŸ”„ Hot Reload Without Downtime

The new POST /v1/reload endpoint re-scans the workflow directory and picks up new, modified, or deleted *.nika.yaml files β€” without restarting the server. Zero downtime deploys become trivial:

# Deploy new workflows
rsync -av workflows/ server:~/workflows/

# Reload without restart
curl -X POST http://server:3000/v1/reload \
  -H "Authorization: Bearer $TOKEN"
# β†’ {"workflows_found": 42}

Running jobs are not interrupted. New requests pick up the updated workflow catalog immediately.

πŸ”‘ CI/Docker Key Injection

API key management was interactive-only before this release β€” fine for a developer laptop, painful for CI and Docker. Two new flags solve this:

Flag Use Case Example
--stdin Piped from secret manager echo $KEY | nika provider set anthropic --stdin
--key-env Read from env var by name nika provider set anthropic --key-env ANTHROPIC_API_KEY

Both write to the encrypted NikaVault β€” same XChaCha20Poly1305 + Argon2i encryption as interactive mode. The difference is they work headless.

πŸ›‘οΈ Security & Bug Fixes

Four targeted fixes that matter for anyone running nika serve in production:

  • πŸ”§ JSON coercion in fetch β€” When fetch: received a JSON array or object encoded as a string, downstream with: bindings got the raw string instead of native JSON. Now properly coerced back to structured types.

  • πŸ” Vault NIKA-135 β€” Clear error message when vault decryption fails (wrong passphrase, corrupted file). Added nika vault reset subcommand and nika doctor vault health check for recovery.

  • πŸ›‘οΈ NIKA-053 $() refinement β€” Command injection detection was too aggressive: $() in static YAML templates (the author's intent) was blocked alongside $() injected via dynamic data. Now only dynamic injection is blocked. Fixes false positives on python3 -c patterns.

  • βš™οΈ working_dir from nika.toml β€” The [tools] working_dir config was parsed but silently ignored by both CLI runner and serve executor. Now properly wired through to exec: verb cwd resolution. Your nika.toml config actually works.

πŸ’‘ Quick Example

Deploy Nika as a systemd service on any Linux box:

# Install
curl -fsSL https://raw.githubusercontent.com/supernovae-st/nika/main/install.sh | sh

# Configure
nika provider set anthropic --key-env ANTHROPIC_API_KEY

# Deploy service
sudo cp nika-serve.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now nika-serve

# Verify
curl http://localhost:3000/v1/workflows

πŸ“¦ 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.63.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.63  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ  9,500 tests ← you are here
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

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

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

Full Changelog: v0.62.0...v0.63.0