Reelier compiles the run that worked into a file that replays deterministically — 0 tokens, byte-identical, a receipt on every step — and diffs runs to catch drift. MEASURED
For agents on recurring production workflows — where “it ran” isn’t proof.
$npm i -g @seldonframe/reelier && reelier init$ reelier init --yes Reelier init — record once, replay forever. Let's get your first receipt in under 60 seconds. Recording the zero-setup demo — 2 real HTTP requests, nothing fabricated: Recorded .reelier/traces/2026-07-19T00-00-00.jsonl Compiling live (zero LLM calls)... Wrote reelier-init-demo.skill.md steps: 2 asserts: 2 binds: 1 Replaying once (Level 0 — the LLM is never constructed or called)... ✓ Step 1 — GET npm registry metadata [passed] ✓ Step 2 — GET package homepage [passed] Your receipt: steps: 2 total, 2 passed, 0 unchecked, 0 failed replay time: 210ms [measured] LLM tokens: 0 [measured]
Replays never call a model; a heal costs ~$0.001, once. Skills get cheaper with age. MEASURED
Every run re-derives the workflow, and every small “rational” fix compounds — what long-run operators call scar tissue. A compiled file never relearns and can’t drift. ATTRIBUTED
“How much did that cost?” is the first reply every long agent run gets. ~$0.019 and ~3 seconds per run, forever — or a Reelier replay: 0 tokens, receipt attached. 1,000 replays, 1,000 identical. MEASURED
Typed JSON in, typed JSON out, an assertion on every step — independently corroborated at 93.3–99.98% token reduction. RPA rotted; skills get cheaper with age. ATTRIBUTED
A replay is pinned — it can’t drift and never calls the new model. So re-record on the upgraded model and reelier diff against your frozen baseline: SAME or DRIFTED, per step, with the failing assertion as the why. When an API shifts under a skill, assertions fail loudly — never silently. STRUCTURAL
The agent’s real, working run isthe pipeline. Reelier compiles it into a tested file you replay deterministically — determinism without the hand-coding. STRUCTURAL
### Step 1 — get a note- intent: fetch a note- action: http.get {"url": "https://example.com/note"}- assert: status == 200- bind: id = json.id- effect: read
### Step 1 — get a note- intent: fetch a note- action: http.get {"url": "https://example.com/note"}- assert: status == 200- bind: id = json.note.id- effect: read## Changelog- 2026-07-18 — L1 heal, step 1 (get a note): the id moved under a 'note' wrapper object
AGPL, BYOK, Level-0 replay never calls a model — leaving is copying a folder. STRUCTURAL
Level 0is deterministic replay — 0 tokens, always. A model is only reached if a recorded step drifts (an API or page changed underneath it), and only if you opt in. Each rung is rarer than the last.
Level 0 touches zero LLMs by construction. Only escalation reaches a model — through one narrow interface, out to any provider you point it at. Any model, your key.
Sign in and the same skill runs at 3am with your laptop closed — drift healed by morning.
Sign in with GitHub to get your account and API key. Push your receipts to a hosted ledger and run skills on a schedule while your laptop’s closed. Share any receipt as a public permalink with an embeddable verified-replay badge for your repo. Free tier, your data exports anytime.
Sign in with GitHub →What you get when you sign in: runs, schedules, and shareable receipts, all in one dashboard.
The field is shifting from single loops to graphs of loops — agents watching agents. A graph without anchors fails worse than a loop: consistent, plausible, verifying nothing. Reelier is the anchor — a deterministic, receipted, frozen node that actually touches the ground.
The receipt: a run that actually ran, byte-identical, 0 tokens, asserted. MEASURED
Level-0 replay calls no model by construction, so it can’t drift or game its own metric. STRUCTURAL
Assertions check each step against reality, and Reelier marks where its authority ends — what “better” means stays yours.
Loops optimize. Graphs arbitrate. Reelier anchors.
$npm i -g @seldonframe/reelier