Reelier

officiel

Les agents font des affirmations. Reelier rédige des reçus — enregistrez le flux d'appels d'outils d'un agent une fois, rejouez-le de manière déterministe à 0 token, et différenciez les exécutions pour détecter les dérives.

Que pouvez-vous faire avec Reelier MCP ?

  • Rejouer les compétences enregistrées de manière déterministe — Demandez à reelier run d'exécuter un .skill.md sauvegardé à 0 jeton, en lecture seule par défaut, pour une ré-exécution octet pour octet identique.
  • Détecter la dérive dans les exécutions d'agent — Utilisez reelier diff pour comparer une relecture à l'original et signaler SAME ou DRIFTED par étape, en sortant avec le code 1 en cas de changement.
  • Filtrer les PR de mise à jour de dépendances — Demandez à l'assistant de configurer un workflow CI qui rejoue votre compétence sur les PR Dependabot/Renovate et échoue sur l'étape exacte ayant dérivé.
  • Convertir les traces existantes en compétences — Compilez un trace.jsonl ou un SKILL.md existant en une compétence rejouable via reelier compile, avec les lacunes honnêtes listées comme questions ouvertes.
  • Vérifier les reçus signés hors ligne — Exécutez reelier verify pour recalculer chaque affirmation dans l'échelle d'un reçu poussé, en montrant quelles barreaux sont prouvés et lesquels sont des lacunes honnêtes.
  • Inspecter la couverture de l'agent avant l'enregistrement — Utilisez reelier init --dry-run pour vérifier la couverture d'observation des chemins A/B/C et les candidats à la relecture sans rien écrire ni modifier.

Documentation

Reelier

Reelier

Laissez vos agents écrire. Conservez les reçus.

Vos agents ont travaillé toute la nuit. Voici exactement ce qui a changé.

Reelier enregistre l'exécution qui a fonctionné, la fige en tant que compétence rejouable, et la rejoue de manière déterministe — chaque exécution revient sous forme de reçu : une preuve de ce que l'agent a fait et de ce qui a changé grâce à cela. Les agents font des affirmations. Reelier écrit des reçus.

npm version CI tests license Discord stars

Site web · Documentation · SPEC.md

Reelier: Dependabot bumps a dependency, Reelier replays your recorded agent run at 0 tokens and diffs it, catching the drift on the PR before you merge

▶ regarder avec le son (27s)

Reelier MCP server on Glama


Des reçus sur vos PR d'agents — installez et c'est tout

Les PR rédigées par des agents (Dependabot, Claude, Codex, Cursor, …) reçoivent un commentaire-reçu en quelques secondes : auteur, fichiers modifiés, portée déclarée par rapport à ce qui a réellement changé, chemins sensibles signalés. Pas de fichier de workflow, pas de CLI, pas de configuration.

→ Installez l'application GitHub Reelier receipts — gratuite sur les dépôts publics, pour toujours.

Reçu Reelier — PR d'agent Auteur : dependabot[bot] · Fichiers modifiés : 2 (+119 −41) Portée déclarée : aucune (ajoutez .reelier/scope.yml pour activer la détection d'écritures inattendues) Chemins sensibles touchés : ⚠ 1 — package-lock.json Prouve la portée et le changement, pas l'exactitude

Un vrai reçu provenant des propres dépôts de Reelier — voir un exemple en direct. Déclarez la portée par agent dans .reelier/scope.yml (ou un bloc reelier-scope dans le corps de la PR) et le reçu signale les écritures inattendues. Le reçu prouve la portée et le changement, jamais l'exactitude ou la sécurité.


Pourquoi

Les agents IA sont non déterministes — la même invite, un résultat différent à chaque exécution — et ils prétendront avoir fait le travail qu'ils l'aient fait ou non. Reelier enregistre l'exécution qui a fonctionné, la rejoue de manière déterministe, et écrit un reçu signé qui le prouve. Pointez-le vers votre CI existant dans un seul workflow — il ajoute un reçu vérifiable, il ne remplace pas votre pile.

Mesuré sur un benchmark comparatif réel, même tâche, mêmes données (méthode complète) :

  • 1 000 / 1 000 rejeux octet-pour-octet identiques
  • Chaque rejeu livre un reçu signé — une preuve de ce qui a été exécuté et de ce qui a changé, jamais une affirmation
  • 0 appel LLM au rejeu — ré-exécution déterministe, pas un nouveau raisonnement

Le rejeu déterministe est aussi ~50× moins cher et ~59× plus rapide que de relancer l'agent, sur le même benchmark.

Installation

npm i -g reelier && reelier init
# No Node install needed — same commands via Docker:
docker run --rm ghcr.io/seldonframe/reelier --help

reelier init [--dry-run] effectue une inspection locale avec point de contrôle sur les trois chemins de Reelier : couverture d'observation du chemin A, candidats de rejeu/gel du chemin B, et connexions et candidats liables/capables de résultats/uniquement fantômes/non pris en charge du chemin C. Il ne déploie pas, ne contrôle pas, ne répartit pas, ne télécharge pas, ne copie pas d'identifiants, et ne réécrit pas la configuration de l'hôte. --dry-run n'écrit rien ; la commande normale n'écrit que des artefacts assainis sous .reelier/init/.

En tant que plugin d'agent

Apprenez à votre agent de codage quand utiliser Reelier. Mêmes deux commandes, sur l'un ou l'autre hôte :

claude plugin marketplace add seldonframe/reelier
claude plugin install reelier@seldonframe
codex plugin marketplace add seldonframe/reelier
codex plugin add reelier@seldonframe

Cela installe deux compétences d'agent et rien d'autre. reelier-replay apprend à votre agent à figer une tâche d'appels d'outils reproductible et à la rejouer à 0 jeton. reelier-write-safety couvre la délimitation des écritures d'un agent avant de les accorder : ce que l'enregistreur voit, ce qu'une politique refuse, et ce qu'un reçu prouve et ne prouve pas. Il ne fournit aucun serveur MCP, donc il n'enveloppe, n'observe, ni ne contrôle aucun appel d'outil par lui-même ; la CLI reelier fait cela, et les compétences la pilotent via npx. Empaqueté à la fois au format Agent Plugins v1.0.0 (plugin/agent-plugins/) et au format Claude Code (plugin/claude/), généré à partir d'une seule source par scripts/build-plugin-packages.mjs.

Vérifié de bout en bout sur codex-cli 0.147.0-alpha.1.2 : les deux formats s'installent, s'activent, et la compétence atteint le modèle. Les autres hôtes ne sont pas testés, et le statut par hôte est suivi dans docs/specs/agent-plugins-coverage-v1.md §4 plutôt que revendiqué ici.

Comment l'utiliser

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 command
  1. Inspectez, puis enregistrez ou gelez. reelier init révèle la couverture observée et les candidats locaux sans modifier les routes. reelier mcp --wrap "<mcp server>" sert de proxy aux outils en direct ; reelier scan/from-session gèle l'historique pris en charge.
  2. Compilez. reelier compile transforme une trace en SKILL.md — 0 appel LLM, assertions minimales, lacunes honnêtes imprimées comme Questions ouvertes.
  3. Rejouez. reelier run le rejoue au niveau 0 — pas de LLM, octet-pour-octet identique, lecture seule par défaut (les écritures nécessitent --allow-writes).
  4. Différenciez. reelier diff signale SAME ou DRIFTED par étape, avec l'assertion échouée comme pourquoi — sortie 1 en cas de dérive.
  5. Connectez-vous. reelier login connecte cette machine à Reelier Cloud avec un code d'appareil dans votre navigateur — ou définissez REELIER_CLOUD_URL/REELIER_CLOUD_KEY pour la CI et l'auto-hébergement.
  6. Poussez. Chaque exécution est un reçu ; reelier push le synchronise optionnellement vers un registre pour un lien permanent et un badge de rejeu vérifié intégrable.

Vous avez déjà une compétence d'agent ? Convertissez-la — votre compétence, moins le modèle :

reelier compile trace.jsonl --from-skill ./my-skill/SKILL.md

Trois tests, une compétence

TestCommandeRéponses
Déterminismereelier run <skill.md>Est-ce que cela fait toujours ce que cela faisait ?
Récupérationreelier run <skill.md> --fail NSi cela cassait, la compétence le remarquerait-elle et se réparerait-elle ?
Dérivereelier run <skill.md> --wrap "<your mcp server>"Le monde a-t-il évolué sous cette compétence ?

Taxonomie due à la revue de Mads Hansen sur le post de lancement. Sémantique complète pour chaque test, y compris l'injection de récupération et les garde-fous de manifeste : docs/REFERENCE.md.

Contrôlez les PR de mise à jour Dependabot / Renovate

Dependabot et Renovate ouvrent la PR et exécutent votre suite de tests — mais ni l'un ni l'autre ne sait ce que votre agent fait réellement à l'exécution, donc une mise à jour de dépendance qui change silencieusement la forme d'un appel d'outil (un champ renommé, une nouvelle valeur par défaut, une erreur différente) passe avec des tests unitaires verts. C'est le contrôle qu'ils n'exécutent pas.

Copiez .github/workflows/reelier-bump-check.yml dans votre dépôt, pointez skill: vers vos propres fichiers .skill.md enregistrés, et il : limitera aux PR de dependabot[bot]/renovate[bot] (ou un label dependencies), installera la dépendance mise à jour, rejouera votre compétence enregistrée en direct contre elle à --max-level 0 (0 jeton), et fera échouer le contrôle sur l'étape exacte qui a dérivé.

Cela teste le comportement des dépendances et des appels d'outils MCP — cela ne teste pas les mises à niveau de modèles ; --max-level 0 n'appelle jamais un LLM. Copie complète et configuration : docs/marketplace-listing.md.

Prouvez-le

Un reçu poussé porte une échelle de revendications vérifiables indépendamment — pas un seul « vérifié » générique. Selon ce que vous activez, il peut être signé, horodaté, attesté par la CI, et porter des identifiants de requête fournisseur recoupables. reelier verify recalcule chaque revendication hors ligne, et une revendication que vous n'avez pas activée s'affiche simplement comme une lacune honnête, jamais une lacune honteuse.

Voyez un exemple réel : reelier.com/r/HWBdmGob9KeHRqXi-OEaRD0z.

Échelle complète de 8 échelons, ce que chaque échelon prouve et ne prouve pas : docs/REFERENCE.md.

Si vos compétences sont des employés

Cycle de vie de l'employéÉquivalent Reelier
Transformer une session en compétencereelier from-session
Évaluation de performancereelier run + reelier diff
Maintenance de la flotterejeux planifiés + alertes de dérive
Le registrereçus signés

« Vérifié » décrit le registre, jamais l'agent — un reçu prouve ce qui a été exécuté et ce qui a changé, pas que l'agent était bon dans son travail.

Un contrat de travail ne rend pas un employé bon — il rend ce qu'il a fait visible et délimité. Pareil ici : les reçus prouvent la portée et le changement, jamais l'exactitude.

À qui cela s'adresse

  • Développeur solo / mainteneur OSS — un vrai test de régression à nouveau ; la dérive ne peut pas passer silencieusement.
  • Équipe livrant des changements d'agents — « ça tourne proprement » devient un artefact de PR vérifiable, pas une affirmation.
  • Agence exécutant des agents pour des clients — preuve de livraison signée et horodatée qu'un client peut vérifier.
  • Acheteur ou vendeur sur une marketplace — des reçus corroborés sont des avis qui ne peuvent pas être astroturfés.
  • Ops soumis à audit — une piste signée et attestée par la CI de chaque écriture, clé d'idempotence incluse.

MIT, gratuit pour toujours (les versions ≤0.16.0 restent AGPL-3.0). Vos données — compétences, traces, exécutions — sont spécifiées dans SPEC.md, donc partir, c'est copier un dossier.

Contribuer : les issues et les PR sont les bienvenues — SPEC.md est la source de vérité pour les formats ; corrigez le code, pas la spec. npm test avant une PR.

Si Reelier vous a évité une ré-exécution, mettez une étoile ⭐ — c'est ainsi que d'autres développeurs le trouvent.