ReelierAGPL · v0.3

Teach your agent a job once. It’s done forever.

Record a task with your agent once. Every run after that replays with 0 LLM tokens and none of the ~3-second reasoning step — same steps, receipt attached. MEASURED

Record it once.·Replay it free.·Get a receipt every time.

For developers whose agents do the same work over and over.

$npm i -g @seldonframe/reelier && reelier init
Sign in with GitHub
Free forever · open source (AGPL) · runs on your machine · your keys · leaving = copying a folder
1,000 replays:1,000 byte-identical · 0 tokensMEASURED·~50× cheaper ($0.019 vs ~$0.95 at 50 runs)MEASURED·~59× faster (48ms vs ~2,842ms avg · varies by network)MEASURED· real drift self-healed for ~$0.001, once, then freeMEASURED· 197 open tests· every step assertion-checkedSTRUCTURAL· mechanism independently corroborated (arXiv 2605.14237)ATTRIBUTED
The mechanism, sliced
Your agent does the job — once~$0.02 · ~3s · tokensMEASURED
→ compiled to a skill file (SKILL.md)
→ replays deterministically0 tokens · no re-reasoningMEASURED
→ receipt written, every run
The mechanism, in three commands
$ reelier init
60 seconds: record → compile → replay → your receipt.
$ reelier run <name>.skill.md
Replay any skill — deterministic, 0 tokens.
$ reelier push
Sync receipts to your cloud ledger.
Terminal: reelier init --yes — 2 steps recorded, compiled, and replayed once, 2 of 2 passed, 0 LLM tokensreelier init --yes$ reelier init --yesReelier 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.jsonlCompiling live (zero LLM calls)... Wrote reelier-init-demo.skill.md steps: 2 asserts: 2 binds: 1Replaying 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]
Terminal: reelier init --yes — 2 steps recorded, compiled, and replayed once, 2 of 2 passed, 0 LLM tokensreelier init --yes$ reelier init --yesReelier init — record once, replay forever.Recording the demo — 2 real HTTP requests.Compiling live (0 LLM calls)... ✓ Step 1 — GET npm registry [passed] ✓ Step 2 — GET package homepage [passed]Your receipt: 2 steps · 2 passed · 210ms · 0 tokens [measured]
$ 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]
What a run actually writes to disk
your-repo/
└─ .reelier/traces/2026-07-19T00-00-00.jsonltrace — what happened
└─ skills/deploy-smoke.skill.mdskill — the recipe, with its own assertions
└─ .reelier/runs/2026-07-19T00-00-04.jsonlruns — the receipts
Same four stages, on a loop

Record → compile → replay → self-heal. Every lap after the first is free.

After the first pass, replays cost 0 LLM tokens — and the skill only gets cheaper as it ages. MEASURED

RecordAn MCP proxy watches the agent work
CompileTrace → SKILL.md, an assert on every step
ReplayLevel 0 · no LLM · 0 tokens
Self-healDrift patches once, writes its own changelog
cheaper with age
first pass
Record and compile happen once, at the cost of a normal agent run.
every run after
Replay loops at Level 0 — deterministic, no model, 0 tokens.
on drift only
Self-heal patches the one broken step and feeds it back — the same drift never bills twice.
Objections, answered

Your agent relearns the job from scratch — every single run.

It re-derives your whole workflow every run — what developers call groundhog day. Reelier compiles what it did into a tested file that never relearns. ATTRIBUTED

374 clean runs. Zero silent wrong answers. Reliability was never the problem.

The real cost is ~$0.019 and ~3 seconds, every run, forever — Reelier replays it for 0 tokens with a receipt. 1,000 replays, 1,000 identical. MEASURED

RPA replayed pixels and broke. Reelier replays tool calls — and proves each one.

Every step carries its own assertion; independently corroborated at 93.3–99.98% token reduction — skills get cheaper with age. ATTRIBUTED

A real self-heal, from our test suite
MEASURED
heal-me.skill.mdL1 heal — bind only, no LLM tool call beyond the patch
before — broke
### 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
after — healed once
### 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
The receipt — a real skill that broke and healed
MEASURED
sf-post-deploy-smokeSKILL.md
RunStepsWhat happenedTimeTokens
run 1drift detected → healed, changelog written1.3s687 + 105
run 2deterministic replay0

Your skill is a markdown file in your repo. Nobody can hold it hostage.

AGPL, BYOK, Level-0 replay never calls a model — leaving is copying a folder. STRUCTURAL

The self-healing ladder

Nearly everything stays at Level 0.

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.

L0
Deterministic replay
0 LLM calls · 0 tokens · byte-identical. Fails closed on drift — never guesses.
the default
L1
Re-read the captured result
Patch the step's assertion against what it already saw. No re-execution.
→ your model
L2
Propose new args, one safe re-exec
Read / idempotent-only. Destructive steps never escalate.
→ your model
L3
You edit the skill by hand
The rare case the recorded workflow no longer applies at all.
human
LLM-agnostic · BYOK

Replay calls no model. Escalation calls yours.

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.

replay stepmatches → no model · 0 tokensdone
on drift — escalation only (opt-in)
One narrow interface
OpenAI-compatible baseURL + native Anthropic adapter
Anthropicnative adapter
OpenRouterOpenAI-compat
Ollamalocal
GeminiOpenAI-compat
GroqOpenAI-compat
Kimi (Moonshot)OpenAI-compat
vLLMself-host
LM Studiolocal

Local proves it works once. Cloud proves it keeps working.

Sign in and the same skill runs at 3am with your laptop closed — drift healed by morning.

Real receipts, as they land
MEASURED
sf-post-deploy-smokedrift detected → healed, changelog written1.3s687 + 105 tok
sf-post-deploy-smokedeterministic replay0 tok
reelier-init-demodeterministic replay (2 real HTTP calls)210ms0 tok
benchmark batch (1,000 runs)1,000 byte-identical replays48ms avg0 tok
Reelier CloudFree · early access

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. Free tier, your data exports anytime.

Sign in with GitHub →
Illustration of the Reelier Cloud dashboard: a sidebar with Overview, Skills, Schedules, Runs, and Settings; five summary cards for runs, passed runs, verified steps, LLM tokens, and skills; and a recent-runs list showing passed receipts with per-step checks and a share action.Reelier CloudOverviewSkillsSchedulesRunsSettingsMHMaxime H.@maximehOverviewRuns128stored recordsPassed runs121of 128 runsSteps verified5123 uncheckedLLM tokens24.6k18.2k + 6.4kSkills9recordedRecent runsview all →✓ passedsf-post-deploy-smoke1.2sShare✓ passedreelier-init-demo210msShared✓ passednightly-backup-check640msShare✓ passedweekly-report-sync890msShare

What you get when you sign in: runs, schedules, and shareable receipts, all in one dashboard.

The anchor

Your agent graph is ungrounded. Reelier is the anchor.

The field is shifting from single loops to graphs of loops — agents watching agents, evals over evals. But a graph without anchors fails worse than a loop: consistent, plausible, and verifying nothing — “green lights on the way down.” Reelier is the anchor: a deterministic, receipted, frozen node that actually touches the ground.

A measurement that can’t be argued with

The receipt: a run that actually ran, byte-identical, 0 tokens, asserted. MEASURED

A frozen node the optimizer can’t tune

Level-0 replay calls no model by construction, so it can’t drift or game its own metric. STRUCTURAL

The honest edge

Assertions check each step against reality, and Reelier marks where its authority ends — what “better” means stays yours.

Loops optimize. Graphs arbitrate. Reelier anchors.

Why it’s a no-brainer
What you get

Delegate the repeat work — never re-explain it, never babysit it, never wonder if it ran.

Why it holds

Every step assertion-checked. 197 open tests. A receipt on every run — proof, not promises.

How fast

One install, one recording, one replay. Minutes.

What it costs you

You do the task once, with your agent — exactly like you already do.

Get it on your machine.
Let the receipt convince you.

$npm i -g @seldonframe/reelier