reelier
Reelier is a CI/snapshot-testing tool for AI agent tool-call workflows — it records, replays, diffs, and publishes verifiable receipts of agent runs at zero LLM cost.
reelier_scan— Discover replayable workflows from past agent session histories (e.g.,~/.claude/projects), identifying transcripts with MCP/HTTP tool-call sequences worth compiling into a skill.reelier_from_session— Compile a session transcript into a portableSKILL.mdfile (replayable skill), flagging open questions like relative time windows that need variable binding.reelier_replay— Deterministically replay a skill at Level 0 (zero LLM calls), returning per-step outcomes, timing, and drift reasons. Read-only by default, with options to permit idempotent-write or destructive steps.reelier_diff— Compare two runs of the same skill, reportingSAMEorDRIFTEDper step with the failing assertion as the reason. Useful for gating dependency bumps (e.g., Dependabot/Renovate) or scheduled regression checks in CI.reelier_push— Push local run records (and optionally the skill file) to the Reelier Cloud receipt ledger, generating a shareable permalink and embeddable verified-replay badge.
Gates Dependabot bump PRs by replaying recorded skill workflows against the updated dependency, detecting drifts in tool-call behavior without LLM calls.
Gates Renovate bump PRs by replaying recorded skill workflows against the updated dependency, detecting drifts in tool-call behavior without LLM calls.
Reelier
Let your agents write. Keep the receipts.
Your agents worked all night. Here's exactly what changed.
Reelier records the run that worked, freezes it as a replayable skill, and replays it deterministically — every run comes back as a receipt: proof of what the agent did and what changed because of it. Agents make claims. Reelier writes receipts.
▶ watch with sound (27s)
Receipts on your agent PRs — install and done
Agent-authored PRs (Dependabot, Claude, Codex, Cursor, …) get a receipt comment in seconds: author, files changed, declared scope vs. what actually changed, sensitive paths flagged. No workflow file, no CLI, no config.
→ Install the Reelier receipts GitHub App — free on public repos, forever.
Reelier receipt — agent PR Author:
dependabot[bot]· Files changed: 2 (+119 −41) Declared scope: none (add.reelier/scope.ymlto enable unexpected-write detection) Sensitive paths touched: ⚠ 1 —package-lock.jsonProves scope and change, not correctness
A real receipt from Reelier's own repos — see one live. Declare scope per agent in .reelier/scope.yml (or a reelier-scope block in the PR body) and the receipt reports unexpected writes. The receipt proves scope and change, never correctness or safety.
Related MCP server: @humanaccepted/mcp
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):
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.
Install
npm i -g reelier && reelier init# No Node install needed — same commands via Docker:
docker run --rm ghcr.io/seldonframe/reelier --helpreelier 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:
claude plugin marketplace add seldonframe/reelier
claude plugin install reelier@seldonframecodex plugin marketplace add seldonframe/reelier
codex plugin add reelier@seldonframeThis 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 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 §4 rather than claimed here.
How to use it
reelier init --dry-run # inspect Path A/B/C locally; write nothing
reelier init # persist resumable sanitized inspection artifacts
reelier run <name>.skill.md # replay deterministically — 0 tokens (read-only by default)
reelier diff <name> # SAME or DRIFTED, per step — exit 1 on drift
reelier push <name>.skill.md # sync receipts to your ledger (opt-in)
reelier ci # write a workflow: drift-CI + PR receipts, one commandInspect, then record or freeze.
reelier initreveals observed coverage and local candidates without changing routes.reelier mcp --wrap "<mcp server>"proxies live tools;reelier scan/from-sessionfreezes supported history.Compile.
reelier compileturns a trace into aSKILL.md— 0 LLM calls, minimal assertions, honest gaps printed as Open questions.Replay.
reelier runreplays it at Level 0 — no LLM, byte-identical, read-only by default (writes need--allow-writes).Diff.
reelier diffreports SAME or DRIFTED per step, with the failing assertion as the why — exit 1 on drift.Log in.
reelier loginconnects this machine to Reelier Cloud with a device code in your browser — or setREELIER_CLOUD_URL/REELIER_CLOUD_KEYfor CI and self-hosting.Push. Every run is a receipt;
reelier pushoptionally syncs it to a ledger for a permalink and an embeddable verified-replay badge.
Already have an Agent Skill? Convert it — your skill, minus the model:
reelier compile trace.jsonl --from-skill ./my-skill/SKILL.mdThree tests, one skill
Test | Command | Answers |
Determinism |
| Does this still do what it did? |
Recovery |
| If this broke, would the skill notice and heal? |
Drift |
| Has the world moved out from under this skill? |
Taxonomy due to Mads Hansen's review of the launch post. Full semantics for each test, including recovery injection and manifest guardrails: docs/REFERENCE.md.
Gate Dependabot / Renovate bump PRs
Dependabot and Renovate open the PR and run your test suite — but neither knows what your agent actually does at runtime, so a dependency bump that silently changes a tool call's shape (a renamed field, a new default, a different error) sails through with green unit tests. This is the check they don't run.
Copy .github/workflows/reelier-bump-check.yml into your repo, point skill: at your own recorded .skill.md file(s), and it will: gate to PRs from dependabot[bot]/renovate[bot] (or a dependencies label), install the bumped dependency, replay your recorded skill live against it at --max-level 0 (0 tokens), and fail the check on the exact step that drifted.
This tests dependency and MCP-tool-call behavior — it does not test model upgrades; --max-level 0 never calls an LLM. Full listing copy and setup: docs/marketplace-listing.md.
Prove it
A pushed receipt carries a ladder of independently-verifiable claims — not one blanket "verified." Depending on what you turn on, it can be signed, timestamped, CI-attested, and carry cross-checkable provider request-ids. reelier verify recomputes every claim offline, and a claim you haven't enabled just renders as an honest gap, never a shamed one.
See a real one: reelier.com/r/HWBdmGob9KeHRqXi-OEaRD0z.
Full 8-rung ladder, what each rung does and doesn't prove: docs/REFERENCE.md.
If your skills are employees
Employee lifecycle | Reelier equivalent |
Skillify a session |
|
Performance review |
|
Fleet maintenance | scheduled replays + drift alerts |
The record | signed receipts |
"Verified" describes the record, never the agent — a receipt proves what ran and what changed, not that the agent was good at its job.
An employment contract doesn't make an employee good — it makes what they did visible and bounded. Same here: receipts prove scope and change, never correctness.
Who it's for
Solo dev / OSS maintainer — a real regression test again; drift can't pass silently.
Team shipping agent changes — "it ran clean" becomes a checkable PR artifact, not a claim.
Agency running agents for clients — signed, timestamped proof-of-delivery a client can verify.
Marketplace buyer or seller — corroborated receipts are reviews that can't be astroturfed.
Audit-facing ops — a signed, CI-attested trail of every write, idempotency key included.
MIT, free forever (versions ≤0.16.0 remain AGPL-3.0). Your data — skills, traces, runs — is specified in SPEC.md, so leaving is copying a folder.
Contributing: issues and PRs welcome — SPEC.md is the source of truth for formats; fix the code, not the spec. npm test before a PR.
If Reelier saved you a re-run, star it ⭐ — it's how other builders find it.
Available Tools
5 toolsreelier_diffA
Compare two runs of the same skill and report SAME or DRIFTED — the drift-detector for a recorded baseline replayed on a schedule. Compares per-step outcomes, structure, and heal-level from .reelier/runs/.jsonl (defaults to the last two runs); data values that legitimately change run-to-run are NOT drift. Drifted steps carry why (the failing assertion). To check a MODEL upgrade: re-record the workflow with the new model, then diff against your frozen baseline — replaying a pinned skill can't reveal model changes (replay never calls a model). Honest when there aren't two runs yet.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory where .reelier/ lives (default: process cwd). | |
| skill | Yes | Skill name (the .reelier/runs/<skill>.jsonl stem) whose runs to compare. | |
| baselineIndex | No | 0-based index of the baseline run (default: second-to-last). | |
| candidateIndex | No | 0-based index of the candidate run (default: the last run). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses behavior: it reads from .reelier/runs/<skill>.jsonl, compares per-step outcomes, reports SAME or DRIFTED with reasons, and does not mutate state. It also explains limitations (replay cannot reveal model changes). This is comprehensive for a read-only comparison tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-organized paragraph. The first sentence captures the core purpose, followed by details on comparison criteria, usage example, and edge case. Every sentence serves a purpose without redundancy, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description explains the return values (SAME or DRIFTED with reasons). It covers file paths, default behavior, legitimate change handling, and when the tool cannot be used (fewer than two runs). For a tool with 4 parameters and no annotations, this is remarkably complete and leaves no critical gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all 4 parameters with descriptions (100% coverage), so baseline is 3. The description adds value by explaining defaults (baselineIndex and candidateIndex default to last two runs) and the file path pattern. It also gives contextual usage examples, raising the score above baseline but not to 5 since schema already does most work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a clear verb ('Compare two runs') and specific resource ('same skill'), immediately distinguishes from siblings by calling itself a 'drift-detector'. It outlines output ('SAME or DRIFTED') and mentions comparison dimensions (per-step outcomes, structure, heal-level), making purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance (e.g., 'To check a MODEL upgrade'), explains defaults ('defaults to the last two runs'), and warns when not to use ('Honest when there aren't two runs yet'). It also clarifies what constitutes drift vs. legitimate changes, leaving no ambiguity about proper invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reelier_from_sessionA
Compile a SKILL.md from a session transcript. USE WHEN: the work ALREADY happened (this session or by hand) — recording can't be retroactive. NOT for work that hasn't happened yet (record that live via the reelier mcp proxy). Get the transcriptPath from reelier_scan first. Returns the written skill's path, stats, and open questions — or, honestly, that nothing in the transcript was replayable. If the workflow used a relative time window ("this week"), bind it to a date variable (e.g. {{today-7d}}) so later replays pull the CURRENT window, not a frozen one — the openQuestions output flags this.
| Name | Required | Description | Default |
|---|---|---|---|
| out | No | Output path for the compiled SKILL.md (default: <cwd>/<name>.skill.md). | |
| name | No | Skill name (also the default output filename stem). | |
| force | No | Overwrite an existing file at the output path. | |
| transcriptPath | Yes | Path to a session transcript (.jsonl) to compile. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses return values (skill path, stats, open questions, or indication of nothing replayable), the behavior with relative time windows (binding to date variable), and that openQuestions flags this. It also notes the 'force' parameter for overwriting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and usage. Each sentence adds value, though slightly verbose. Could be tightened slightly, but overall well-structured and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description explains all return values. Covers required parameter source, common pitfalls (time window binding), and provides complete context for a tool with 4 parameters and no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description adds significant value: explains transcriptPath should come from reelier_scan, default output path, force overwrite, name as filename stem, and the openQuestions tip about relative time windows. This goes well beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool compiles a SKILL.md from a session transcript, using a specific verb ('Compile') and resource ('SKILL.md'). It distinguishes from sibling tools like reelier_scan and reelier_replay by specifying it's for work that already happened, not for live recording.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('work ALREADY happened') and when not to use ('NOT for work that hasn't happened yet'). Advises to get transcriptPath from reelier_scan first, providing clear context and exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reelier_pushA
Push a skill's local run records (and, on first push, the skill file) to your receipt ledger, where each receipt gets a shareable permalink + verified-replay badge. Requires an apiKey — from reelier login (or REELIER_CLOUD_KEY in env) — reports skipped-no-key honestly when absent; the cloud URL always resolves on its own. USE WHEN: a run's receipt should be durable or shareable.
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | Ignore/reset the cursor — reconsider every record from the start. | |
| cwd | No | Working directory to resolve .reelier/ state under (default: process cwd). | |
| dryRun | No | Report what would push; make no network calls, touch no state. | |
| skillPath | Yes | Path to a .skill.md file whose run records should be pushed. | |
| withSkill | No | Upload the skill file even if it was already uploaded before. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses several behavioral traits: requires an apiKey, reports skipped-no-key when absent, always resolves cloud URL, and on first push also uploads the skill file. It does not cover all side effects (e.g., cursor behavior, state changes) but is fairly transparent for a push operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, fitting key points into a single paragraph with a clear 'USE WHEN' signal. It avoids redundancy but could be slightly more streamlined by merging the apiKey note into a single sentence. Overall, it is well-structured and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters and no output schema, the description covers the main purpose and usage context but lacks details on parameter-specific behavior (e.g., how 'all' resets cursor, dryRun impact) and output format. It is adequate but not fully complete for a complex tool with multiple options.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add meaningful information about parameters beyond the schema; it mentions the apiKey requirement but not how parameters like 'all', 'dryRun', or 'withSkill' affect behavior. Thus, it adds minimal value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Push a skill's local run records... to your receipt ledger') and the result ('shareable permalink + verified-replay badge'), with a specific verb and resource. It distinguishes from sibling tools by focusing on run record pushing, while siblings like scan, replay, from_session, and diff serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a 'USE WHEN' clause ('a run's receipt should be durable or shareable') that provides clear context for when to invoke the tool. It also notes the apiKey requirement, but does not explicitly compare to sibling tools or state when not to use it, slightly reducing the score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reelier_replayA
Run a skill file at Level 0 (deterministic replay, zero LLM calls) and return the real run record: per-step outcomes, timing, totals, and — when a step drifted — why (the failing assertion). Never fabricates a pass. Reproduces the recorded TOOL CALLS (MCP/HTTP) only — no LLM reasoning or prose step re-runs. It does NOT schedule itself: pair with cron/CI for recurring runs. Pass vars to fill {{templated}} inputs (e.g. a computed date window) so a replay pulls current data. READ-ONLY by default: 'idempotent-write' steps are held back (reported as a refused/failed step) unless you pass allowWrites — so replaying never re-fires a write.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory the run record is written under (default: process cwd). | |
| vars | No | Template variable bindings ({{name}} -> value) — e.g. a computed date window so a relative-date skill replays against the current period, not a frozen one. | |
| wrap | No | Downstream MCP server command line(s) to connect for MCP-tool steps (same shape as the CLI's --wrap). | |
| skillPath | Yes | Path to a .skill.md file to run. | |
| allowWrites | No | Allow 'idempotent-write' steps to execute. Default false — replay is READ-ONLY, so re-running never re-fires writes. | |
| allowDestructive | No | Allow steps whose effect is 'destructive' to run. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It thoroughly explains Level 0 replay, zero LLM calls, reproduction of tool calls only, read-only default, and handling of idempotent-write steps. It also discloses that it never fabricates a pass and reports drift reasons.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is generally concise and front-loaded with the main action. It uses multiple sentences but avoids excessive verbosity. Could be slightly tighter, but still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description clearly states what the return value includes: per-step outcomes, timing, totals, and failure reasons. It covers key aspects like templating, read-only safety, and idempotent-write handling. Minor omission of error scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so schema descriptions exist for all parameters. The description adds context for vars (templating), allowWrites (read-only default), and wrap (MCP server connections), but these are already clear from schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs a skill file at Level 0 deterministic replay, returning the run record. It specifies the verb 'run' and resource 'skill file'. It distinguishes from siblings by noting it does not schedule itself and is read-only by default, but does not explicitly compare to reelier_scan or reelier_push.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides guidance on when to use: for deterministic replay with zero LLM calls, and mentions pairing with cron/CI for recurring runs. It explains how to pass templated vars and the read-only nature with allowWrites option. However, does not explicitly differentiate from sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reelier_scanA
Discover replayable workflows in an agent's session history (defaults to ~/.claude/projects). Returns each session's transcript path — feed one to reelier_from_session. Only MCP/HTTP tool-call sequences are replayable; native file/shell actions are reported as skipped, never fabricated into a fake result. USE WHEN: deciding which past work is worth compiling into a replayable skill.
| Name | Required | Description | Default |
|---|---|---|---|
| dir | No | Directory to scan for agent session transcripts (default: ~/.claude/projects). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that native file/shell actions are reported as skipped and never fabricated, which is a key behavioral trait. Additional details like side effects or auth needs are absent but acceptable for a scan tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a 'USE WHEN' clause, all front-loaded and free of fluff. Every sentence contributes essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter, no output schema, and is a straightforward scanner, the description fully covers purpose, behavior, and usage guidance. It explains return values (transcript paths) and even suggests the next step (feed to reelier_from_session).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter 'dir'. The description adds value by noting the default value (~/.claude/projects) and clarifying the context of scanning agent session transcripts, going beyond the schema's basic description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool discovers replayable workflows in session history and returns transcript paths. It specifies the default directory and explicitly names a sibling tool (reelier_from_session) for follow-up, distinguishing its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes an explicit 'USE WHEN' statement: deciding which past work to compile into a replayable skill. It also clarifies that only MCP/HTTP tool-call sequences are replayable, guiding proper use, though it does not explicitly state when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose: scan discovers workflows, from_session compiles them into skills, replay executes skills, push shares receipts, and diff compares runs. No overlap or confusion.
All tools share the 'reelier_' prefix followed by a clear verb or action (scan, replay, push, from_session, diff). The pattern is consistent and intuitive.
Five tools is a well-scoped set for the domain of replayable skill management. Each tool serves a core function without redundancy or excess.
The tool surface covers scanning, compiling, replaying, sharing, and comparing skills. However, there is a notable gap: live recording of workflows is mentioned but not provided as a tool, which limits the server's ability to create new skills from scratch.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Agentic rails for complex workflows with receipts, fees, and MCP tool access.
Issue signed receipts for AI agent actions; verify any receipt offline - free, no account.
Agent Replay Debugger MCP — record every agent step + deterministic replay. Step-debugger for
Hash-chained HMAC-signed audit log MCP for A2A (agent-to-agent) calls. Every tool-call, agent-ha...
Related MCP Servers
- AlicenseAqualityCmaintenanceCryptographic accountability for AI agents. Ed25519-signed receipts for every MCP tool call. Constraints, chains, AI judgment, invoicing, and local dashboard included.24131MIT
- FlicenseAqualityCmaintenanceMCP server that auto-emits tamper-evident receipts for every tool call, enabling EU AI Act Article 12 compliance with signed, chain-linked receipts.1
- FlicenseNot gradedqualityBmaintenanceRecords all MCP tool interactions in a centralized ledger, enabling developers to trace, replay, inspect, and audit AI agent workflows.
- AlicenseNot gradedqualityBmaintenanceLocal-first MCP and coding-agent reliability harness that captures bounded, sanitized failure evidence and generates deterministic executable regression tests. Capture is opt-in; no API key or hosted service is required.2Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/seldonframe/reelier'
If you have feedback or need assistance with the MCP directory API, please join our Discord server