Skip to main content
T1 starter · local-first: the whole loop on your machine — a real HTTP fetch, a local model, a verifiable trace. No API key exists in this tutorial, so there is nothing to leak and nothing to meter.

The job

A morning brief from a live source, every day, the same way. One file captures it; your laptop runs it; the trace proves what happened.

Prerequisites

  • nika installed: brew install supernovae-st/tap/nika (other paths)
  • Ollama running with a small model: ollama pull qwen3.5:4b (any local model works — swap the model: line)

The file

Save as daily-brief.nika.yaml:
Swap the URL for any JSON source — an RSS-to-JSON bridge, your issue tracker’s API, a status page.

Check, then run

The static audit passes before a single token is spent — plan, types, tools, args, secret flows. One honest wrinkle to read, not fear:
A local model has no list rate, so the engine says unbounded instead of pretending $0.00 is a promise. Local work is never blocked and never metered — the flag exists so a paid uncataloged model can’t hide behind a fake zero (cost honesty). Then:
A real run of this exact file (Apple Silicon, qwen3.5:4b):

The receipt

The trace is a hash chain: edit any event after the fact and verify exits non-zero. Your brief comes with proof of what ran, in what order, against which inputs — even offline.

Make it daily

Cron it, or wire the GitHub Action if the file lives in a repo — every edit to the workflow gets a static check before it lands. When you want the run itself in CI, that stays a deliberate step in your own job, with your own budget flags.

Where to go next

  • Read the permits: block as the contract: absent is zero authority, present is default-deny. nika check --infer-permits writes the tightest one for the next file you author (security).
  • Persist the brief: a third task with nika:write and a content: binding (starters show the shape).
  • Mix providers: keep fetch local, point brief at a cloud model with --max-cost-usd — the budget gate prices the file’s own model before anything starts (cost honesty).