AGPL-3.0-or-later · forever.

the journal

Notes from the source.

Long-form pedagogy on Intent as Code: why useful AI work belongs in a file, why the language locks at four verbs, and what local-first actually buys you. The archive runs from the first note to today. Retrospectives keep their story date and show when they were actually published.

49 live · daily queue

cadenceDaily, human-reviewed

latest

methodResearch → check → publish

latest · Engine|Security · Clean is not ready to spendA valid AI workflow can still waste money. Nika now separates legal files from workflows that are ready for a paid run.6 min read
48 · Engine|Sovereignty · AI workflows on ARM64 Linux servers, without the missing safety stepA practical path from a native ARM64 Nika binary to checked, sandboxed and traceable AI workflows on a headless Linux host.6 min read47 · Engine · retrospective · The access layer is an operating contractFrom v0.108.0 to v0.111.0, Nika separated the model you choose from the path that reaches it, cut the workflow language to its durable core, added an explicit scheduler and turned check into an authoring loop.6 min read46 · Engine · retrospective · A field guide to the Nika workflow ecosystemChoose deliberately among model providers, local runtimes, builtins, MCP servers and coding-agent surfaces without turning the workflow into vendor glue.8 min read45 · Agents · retrospective · Let coding agents write plans, not policyCodex, Claude Code, Cursor and other coding agents can author Nika workflows while the checker, the human review and the runner keep separate authority.7 min read44 · Security · retrospective · The CI job should know its boundaryRun Nika in CI and on headless servers with the same checked workflow bytes, explicit authority, deterministic rehearsals and a hard launch budget.8 min read43 · Language · retrospective · Retire the prompt glueA practical migration from brittle shell and Python prompt chains to a checked workflow whose graph, authority, cost and outputs are visible before it runs.7 min read42 · Manifesto · retrospective · Intent as Code is an engineering disciplineThe useful part of AI work is not the chat. It is the intent, boundary, plan and evidence that a team can review before and after a run.7 min read41 · Engine · retrospective · The run keeps its receiptA trace is more than a log: it can replay without effects, resume verified work, expose one task, export to OpenTelemetry and assemble a redacted evidence pack.6 min read40 · Language · retrospective · The two clocks behind a model stringA provider name can be part of the stable language while its models, prices and access paths keep changing. Nika resolves those truths on separate clocks and records the result.6 min read39 · Sovereignty · retrospective · One workflow, three local model lanesOllama, LM Studio and vLLM expose different operating experiences, but Nika keeps the workflow contract unchanged: one model string selects the local seat.6 min read38 · Security · retrospective · MCP with a blast radiusAn MCP tool is executable foreign capability. Put its server, network, environment, tool ids and schema pin under separate review, then let the trace record the call.6 min read37 · Engine · The registry re-proves everythingA workflow registry where nothing is taken on faith: every entry is content-pinned to an exact source revision and re-proven by CI (hash, certificate, advisories). The npm-of-workflows, minus the trust-me.4 min read36 · Agents · Written by agents, reviewed by younika init teaches the language to whatever agent you already run. Then two real agents write the same workflow: one invents a schema the audit refuses, one goes green first shot. The human review is a two-line diff.5 min read35 · Language · The pipeline is a fileAn llm pipeline is a graph of model calls, tools and processes. A graph is declared, not programmed: forty lines of YAML replace the orchestration framework. Diffable, auditable, replayable.3 min read34 · Engine · The MCP server you didn't have to buildEveryone is learning how to build an MCP server. For your workflows, skip the tutorial: the nika binary already is one. Read-only tools let any agent audit a plan and learn the language from the thing that enforces it.3 min read33 · Engine · The forecast is localexplain --forecast computes duration and cost priors from your own recorded runs: stats over .nika/traces/, honest ranges at two runs, percentiles at five. Never a model call, never the network.3 min read32 · Language · The generative ai workflow, minus the mysteryStrip the buzzword and a generative ai workflow is three things: inputs you name, a model step, and effects you can point to. Declare all three in one file and the mystery evaporates. Rehearsed offline, every asset with provenance.3 min read31 · Engine · The chain of custodyA recorded run is a text file, and text files can be edited. nika trace verify recomputes the hash chain: one changed word in history breaks every line after it, and the run's printed head closes the loop.3 min read30 · Language · The agent workflow spectrumAn ai agent workflow is any pipeline where a model chooses some of the steps. Every design sits between a declared graph and a free loop. Where yours lands decides which safety you can even ask for.4 min read29 · Engine · The run that waits for youThe approval gate is a task in the file, not a Slack thread: a plan fails closed on nika:prompt, and the human's answer rides the resume.3 min read28 · Engine · The resume storykill -9 a run mid-flight, then resume it: finished work never runs twice. Durability as a file property, shown from the real journal.3 min read27 · Engine · The one-task re-runRegenerate one block without re-running the world: --task scopes a fresh run to a task and its upstream, --from re-rolls what the hashes cannot see.3 min read26 · Language · Prompts are code nowPrompt versioning without a platform: the prompt lives in the workflow file, so git diffs it, a PR reviews it, git reverts it. The engine itself names an edited prompt when two runs diverge.2 min read25 · Security · The prompt injection that goes nowherePrompt injection examples usually end with the agent taking a new action. Here the plan is authored before the model runs: the hostile note becomes data, never an action, and the boundary is checked before a token is spent.3 min read24 · Engine · The run becomes evidenceEvery journal line now carries a hash chain: verify names the first broken link, reproduce classifies every task, and the journal attests which engine wrote it. Trust, but verify. Then verify.3 min read23 · Engine · Time travel, for realEvery debugger replays the past by re-running it. Nika's past is a file, so stepping backward is free, breakpoints live in your YAML, and F5 debugs a run that already happened.2 min read22 · Engine · The editor tells the truthA green badge is a claim. We audited the editor extension against the engine the way you'd audit a client against a server, and found the badge lying. Here is the contract that keeps it honest now.3 min read21 · Security · The credentials your pipeline was breakingOpenAI and Google sign the images their APIs return. Almost every pipeline that touches those files silently converts the signature into evidence of tampering. That included ours, until this week.4 min read20 · Sovereignty · One wire, five serversThe self-hosted media world quietly standardized on OpenAI's wire shapes. That accident of history is the best sovereignty news in years, and Nika's media builtins are built on it.3 min read19 · Engine · Media are workflow citizensImages and speech now render inside workflows under the same discipline as everything else: permit-gated saves, sha256 provenance, honest warnings, real cost on the ledger, and the sovereign path first.3 min read18 · Engine · The trace you can replayEvery run leaves a flight recorder: a deterministic AI audit trail you can replay like a film, never re-execute by accident.2 min read17 · Security · The secrets lineInformation-flow, audited before it flows: how the checker proves a secret cannot leak into a prompt, a file, or a host.3 min read16 · Engine · The cost lineThe audit prices every token before it is spent: ceilings on generations, budgets on loops, and a $0.00 that means it.2 min read15 · Language · Anatomy of a verbinfer, exec, invoke, agent: what makes the four verbs genuinely different execution models, in the engine's own verdicts.2 min read14 · Sovereignty · retrospective · No cloud neededOne Rust binary, your models, your files. Run LLMs locally and see what local-first actually buys you.2 min read13 · Manifesto · retrospective · Intent as Code: why your AI work should be a fileChats evaporate, files compound. The case for writing AI work down as source you own: your best prompts, versioned like code.3 min read12 · Engine · retrospective · The plan you get for freeThe wiring is all you write: with: for data, after: for order. The plan falls out of the file: parallel waves, drawn before anything runs.3 min read11 · Security · retrospective · The blast radius is part of the fileThe workflow declares its effect boundary before execution. Static checks explain the fit; runtime sinks enforce what the host can prove.3 min read10 · Language · retrospective · A standard library, not a plugin storeBuiltins ship with the engine and stay separate from the four verbs. External tools remain explicit dependencies, not new grammar.3 min read09 · Sovereignty · retrospective · An open spec, a copyleft engineThe language contract is Apache-2.0. The reference engine is AGPL-3.0-or-later. The split keeps adoption and implementation custody separate.3 min read08 · Language · retrospective · Four verbs are enoughA verb is a distinct execution model, not a feature. Why the language locks at four, forever.3 min read07 · Origins · retrospective · Starting over, on purposeWe had a working prototype. We rebuilt from scratch anyway: craft, not extraction, one gate at a time.3 min read06 · Origins · retrospective · Naming the drumWhy a local workflow engine carries the name of a liberation figure, and why a butterfly signs the work.4 min read05 · Origins · retrospective · The part Git cannot proveThen the public record goes quiet. An honest origin story keeps the missing months visible instead of inventing a montage.4 min read04 · Origins|Engine · retrospective · What survived the first versionStrip away the early claims and four technical bets remain: file, graph, model choice and a local engine.4 min read03 · Origins · retrospective · The first page was too sureOn December 30, Nika became public and immediately overclaimed. The first page preserves both the idea and the correction.4 min read02 · Origins|Language · retrospective · The file came before the languageThe first durable Nika decision fit in two words: a file. Syntax, graphs and providers came later.4 min read01 · Origins · retrospective · The note that started itNika did not begin with a parser. It began with an objection: useful AI work should not disappear when a chat closes.4 min read

this blog is a folder · content/blog on GitHub ↗ · PRs welcome · rss

Intent as Code · 4 verbs · 28 builtins · 17 providers · written down, replayable, yours