▶ watch with sound (27s)
reelier-scope block in the PR body) and the receipt reports unexpected writes. The receipt proves scope and change, never correctness or safety.
---
## Why
AI agents are non-deterministic — the same prompt, a different result every run — and they'll claim they did the work whether they did or not. Reelier records the run that worked, replays it deterministically, and writes a signed receipt that proves it. Point it at your existing CI in one workflow — it adds a verifiable receipt, it doesn't replace your stack.
Measured on a real head-to-head benchmark, same task, same data ([full method](./docs/REFERENCE.md#benchmark-method)):
- **1,000 / 1,000 replays byte-identical**
- **Every replay ships a signed receipt** — proof of what ran and what changed, never a claim
- **0 LLM calls at replay** — deterministic re-execution, not re-reasoning
Deterministic replay is also [~50× cheaper and ~59× faster than re-running the agent, on the same benchmark](./docs/REFERENCE.md#benchmark-method).
## Install
```sh
npm i -g reelier && reelier init
```
```sh
# No Node install needed — same commands via Docker:
docker run --rm ghcr.io/seldonframe/reelier --help
```
`reelier init [--dry-run]` performs one checkpointed local inspection across all three Reelier paths: Path A observation coverage, Path B replay/freeze candidates, and Path C boundable/outcome-capable/shadow-only/unsupported connections and candidates. It does not deploy, gate, dispatch, upload, copy credentials, or rewrite host configuration. `--dry-run` writes nothing; the normal command writes only sanitized artifacts below `.reelier/init/`.
### As an agent plugin
Teach your coding agent when to reach for Reelier. Same two commands, either host:
```sh
claude plugin marketplace add seldonframe/reelier
claude plugin install reelier@seldonframe
```
```sh
codex plugin marketplace add seldonframe/reelier
codex plugin add reelier@seldonframe
```
This installs two Agent Skills and nothing else. `reelier-replay` teaches your agent to freeze a
repeatable tool-call job and replay it at 0 tokens. `reelier-write-safety` covers bounding an
agent's writes before you grant them: what the recorder sees, what a policy refuses, and what a
receipt does and does not prove. **It ships no MCP servers**, so it does not wrap, observe, or gate
any tool call on its own; the `reelier` CLI does that, and the skills drive it via `npx`. Packaged in both the [Agent Plugins](https://agent-plugins.org) v1.0.0 format (`plugin/agent-plugins/`) and the Claude Code format (`plugin/claude/`), generated from one source by `scripts/build-plugin-packages.mjs`.
Verified end to end on `codex-cli 0.147.0-alpha.1.2`: both formats install, enable, and the skill reaches the model. Other hosts are untested, and per-host status is tracked in [`docs/specs/agent-plugins-coverage-v1.md`](docs/specs/agent-plugins-coverage-v1.md) §4 rather than claimed here.
## How to use it
```sh
reelier init --dry-run # inspect Path A/B/C locally; write nothing
reelier init # persist resumable sanitized inspection artifacts
reelier run