Reelier

resmi

Agents make claims. Reelier writes receipts — record an agent's tool-call workflow once, replay it deterministically at 0 tokens, and diff runs to catch drift.

Reelier MCP ile neler yapabilirsiniz?

  • Tarama aracı geçmişini tekrarlanabilir iş akışları için tarareelier_scan, becerilere derlenebilecek araç çağrısı dizileri içeren geçmiş Claude Code, Codex, Windsurf veya OpenClaw oturumlarını keşfeder.
  • Bir oturumu belirleyici bir beceriye derlereelier_from_session, kaydedilmiş bir izi, her adımda bir iddia içeren ve hiçbir LLM dahil olmayan bir SKILL.md dosyasına dönüştürür.
  • Bir beceriyi sıfır token ile tekrar oynatreelier_replay, derlenmiş bir beceriyi milisaniyeler içinde belirleyici olarak çalıştırır, varsayılan olarak salt okunurdur ve bayt olarak aynı bir makbuz üretir.
  • Sapmayı yakalamak için iki çalıştırmayı karşılaştırreelier_diff, tekrar oynatmaları adım adım karşılaştırır, başarısız olan iddia ile birlikte SAME veya DRIFTED raporu verir ve sapma durumunda sıfır olmayan bir çıkış koduyla sonlanır.
  • Paylaşılabilir bir kalıcı bağlantı için makbuz gönderreelier_push, bir çalıştırma makbuzunu deftere senkronize eder ve isteğe bağlı olarak doğrulanmış tekrar oynatma rozeti oluşturur.

Dokümantasyon

Reelier

Reelier

Ajanlar iddia eder. Reelier makbuz yazar.

Çalışan çalıştırmayı kaydedin, deterministik olarak tekrar oynatın — 0 token, her adımda byte-özdeş bir makbuz — ve reelier diff kaydığı günü yakalar.

Bunu, ajanınızın araç çağrısı iş akışları için CI + anlık görüntü testleri gibi düşünün.

npm version CI tests license Discord stars

Web Sitesi · Dokümanlar · SPEC.md

Reelier: record a run that worked, replay it deterministically at 0 tokens, diff for drift, a receipt on every step

▶ sesli izleyin (22sn)

Reelier MCP server on Glama


Ajanınız her çalıştırmada aynı iş akışını yeniden türetir — token yakar ve sessizce kayar. Reelier, çalışmış bir çalıştırmayı deterministik olarak tekrar oynatan (LLM yok, 0 token, her adım bir makbuza dönüştürülür) bir SKILL.md dosyasına derler, ardından eşleşmeyi bıraktığı günü yakalamak için çalıştırmaları karşılaştırır. "Çalıştı" demenin kanıt olmadığı, yinelenen üretim iş akışlarındaki ajanlar için.

Kurulum → 60 saniyede ilk makbuzunuz

npm i -g reelier && reelier init

reelier init önce yaptığınız işi tarar — Claude Code, Codex, Windsurf ve OpenClaw genelinde — ve gerçek bir geçmiş oturumu tekrar oynatılabilir bir beceriye dönüştürmeyi teklif eder. Böyle bir geçmiş yok mu? Sıfır kurulumlu bir demo çalıştırır ve gerçek bir makbuzla kapanır:

Your receipt:
  skill:        reelier-init-demo
  steps:        2 total, 2 passed, 0 unchecked, 0 failed
  replay time:  44ms  [measured]
  LLM tokens:   0     [measured]

  An agent doing a comparable task re-reasons every run (~2.8s, ~18k tokens on
  our benchmark). Your replay: 44ms, 0 tokens.

Veya Docker ile çalıştırın — Node kurulumu yok

docker run --rm ghcr.io/seldonframe/reelier --help

# Replay a skill from the current directory:
docker run --rm -v "$PWD:/work" -w /work ghcr.io/seldonframe/reelier run my.skill.md

# Record from your agent history (mount it read-only):
docker run --rm -v "$HOME/.claude:/root/.claude:ro" -v "$PWD:/work" -w /work \
  ghcr.io/seldonframe/reelier scan

Neden

  • Ajanınız her çalıştırmada işi yeniden öğrenir — sonra sessizce kayar. Her çalıştırma iş akışını yeniden türetir ve her küçük "mantıklı" düzeltme birikir — uzun süreli operatörlerin skar dokusu dediği şey. Derlenmiş bir beceri asla yeniden öğrenmez ve kayamaz.
  • Asıl sorun faturadır. "Bunun maliyeti ne kadardı?" her uzun ajan çalıştırmasının aldığı ilk yanıttır. Reelier 0 token ile, bir makbuzla tekrar oynatır.
  • Bu kırılgan RPA değildir. Araç çağrılarını (yazılan JSON giriş/çıkış) tekrar oynatır, pikselleri değil — ve her adım kendi onaylamasını taşır, böylece bozuk bir adım yüksek sesle başarısız olur, asla sessizce geçmez.
  • Modeli yükselttiniz mi? Bir tekrar oynatma sabitlenmiştir — yeni modelde yeniden kaydedin ve dondurulmuş temel çizginize karşı reelier diff: üretime ulaşmadan önce, adım başına AYNI veya KAYMIŞ.
  • "Deterministik olan her şey sadece kod olmalıdır." Katılıyoruz — ajanınız zaten yazdı. Reelier, gerçek, çalışan çalıştırmasını test edilmiş bir dosyaya yakalar. Elle kodlama olmadan determinizm.

Nasıl çalışır — kaydet → derle → tekrar oynat → karşılaştır → makbuz

reelier init                        # 60s: record → compile → replay → your receipt
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)
  1. Kaydet — üç yol: reelier mcp --wrap "<your mcp server>" (ajanınızın araçlarının önünde kayıpsız bir vekil), doğrudan mevcut bir oturumdan (reelier scan / reelier from-session) veya rehberli reelier init.
  2. Derlereelier compile bir izi deterministik olarak (0 LLM çağrısı) bir SKILL.md'e dönüştürür — her adımda bir onaylama içeren bir tarif ve derleyicinin dürüst boşlukları tahmin etmek yerine Açık sorular olarak yazdırılır (değişmez tarihler, UUID'ler ve "bu bir değişken olmalı mı?" olarak işaretlediği zaman damgaları dahil).
  3. Tekrar Oynatreelier run bunu Seviye 0'da çalıştırır: LLM yok, milisaniyeler, byte-özdeş. Varsayılan olarak salt okunur — bir yazma adımı (idempotent-write) --allow-writes geçmediğiniz sürece asla yeniden tetiklenmez.
  4. Karşılaştırreelier diff bir becerinin iki çalıştırmasını karşılaştırır ve başarısız onaylama ile neden olarak, adım başına AYNI veya KAYMIŞ raporlar. Kaymada çıkış kodu 1, böylece zamanlanmış bir tekrar oynatmayı denetler.
  5. Makbuz — her çalıştırma bir makbuzdur (adım başına sonuçlar, zamanlama, 0 token). reelier push isteğe bağlı olarak bunları paylaşılabilir bir kalıcı bağlantı + gömülebilir bir doğrulanmış-tekrar oynatma rozeti için bir makbuz defterine senkronize eder.

Bir Ajan Becerisini Dönüştür

Bir talimat becerisini + bir kaydedilmiş çalıştırmayı deterministik bir tekrar oynatmaya dönüştürün — beceriniz, model hariç:

reelier mcp --wrap "<your mcp server>"                 # record: agent runs the skill's task once
reelier compile trace.jsonl --from-skill ./my-skill/SKILL.md
# → my-skill.skill.md — name + description carried from your SKILL.md,
#   steps ONLY from the recorded run (never generated from instruction text)

Herhangi bir ajandan oturumları içe aktar

Zaten ajanınızın kendi oturum günlüklerinde bekleyen tekrar oynatılabilir iş akışlarınız var. reelier scan onları bulur; reelier from-session birini bir beceriye dönüştürür. Biçim, dosyanın içeriğinden algılanır — desteklenen ajanlar için bayrak gerekmez:

reelier scan                                          # discovers sessions from every known agent under your home dir
reelier from-session ~/.claude/projects/*/*.jsonl      # Claude Code
reelier from-session ~/.codex/sessions/**/rollout-*.jsonl   # Codex CLI
reelier from-session ~/.openclaw/agents/*/sessions/*.jsonl  # OpenClaw
AjanOturum konumuDurum
Claude Code~/.claude/projects/<project>/<uuid>.jsonldestekleniyor
Codex CLI~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonldestekleniyor
OpenClaw~/.openclaw/agents/<agentId>/sessions/<sessionId>.jsonldestekleniyor
Cursor.../User/globalStorage/state.vscdb (SQLite, belgelenmemiş)algılandı, henüz ayrıştırılamıyor
Windsurf.../User/globalStorage/state.vscdb (SQLite, belgelenmemiş)algılandı, henüz ayrıştırılamıyor

Yalnızca tekrar oynatılabilir çağrılar (Reelier'in kendi yerleşikleri veya mcp__<server>__<tool> çağrıları) bir beceriye derlenir — yerel dosya/kabuk/arama eylemleri atlandı olarak raporlanır, asla bir adım olarak uydurulmaz. Otomatik algılama yerine bir biçimi zorlamak için --agent <claude-code|codex|openclaw> geçin; reelier scan / reelier from-session --agent cursor (veya --agent windsurf) belgelenmemiş bir ikili biçimi tahmin etmek yerine diskte olanı dürüstçe raporlar.

Üç test, bir beceri

Kaydedilmiş bir beceri, ona sorabileceğiniz bir değil üç farklı soru verir:

  • Determinizmreelier run <skill.md> kaydettiğiniz onaylamalara karşı tekrar oynatır. Aynı adımlar, aynı onaylamalar, 0 token. Cevaplar: bu hala yaptığını yapıyor mu?
  • Kurtarmareelier run <skill.md> --fail N[=status] o adımın gerçek araç çağrısını göndermek yerine N adımında (varsayılan durum 500; --fail N=429 ile geçersiz kıl, tekrarlanabilir) sentetik bir başarısızlık enjekte eder, ardından gerçek bir başarısızlığın vuracağı AYNI yükseltme merdivenini çalıştırır. Ağ dışında hiçbir şey gerçekten olmaz — taklit edilen bir adım asla aracını çağırmaz, böylece --allow-writes ve yan etki olmadan bir yazma adımını kurtarma testine tabi tutabilirsiniz. Cevaplar: bu kırılsaydı, beceri fark eder ve iyileşir miydi? (Bir taklit çalıştırma yalnızca yerel bir testtir — reelier push birini yayınlamayı reddeder; aşağıya bakın.)
  • Kaymareelier run <skill.md> --wrap "<your mcp server>" kaydedilmiş iz yerine canlı, salt okunur bağımlılıklarınıza karşı tekrar oynatır. Aşağıdaki reelier manifest ile eşleştirildiğinde, gerçek bir tekrar oynatma yapmadan önce bir aracın şemasının altınızdan kaymasını böyle yakalarsınız.

Sınıflandırma, lansman gönderisinin Mads Hansen tarafından incelenmesine dayanmaktadır.

Araç şeması kayması: reelier manifest

Bir becerinin adımları, belirli argüman şekilleriyle belirli araçları çağırır. Sarılmış bir MCP sunucusunun araç şeması, siz ona karşı kaydettiğinizden beri değiştiyse, tekrar oynatma sessizce yanlış argümanları doldurmak yerine yüksek sesle reddetmelidir. reelier manifest, becerinin adımlarının gerçekten kullandığı her araç için bir şema özeti damgalar:

reelier manifest <skill.md> --wrap "<your mcp server>"   # stamp/refresh the manifest from live servers
reelier run <skill.md> --wrap "<your mcp server>"         # preflight checks the manifest BEFORE step 1 runs

Damgalanmış bir aracın şeması kaymışsa (veya araç gitmişse), reelier run kapalı başarısız olur — MANIFEST DRIFT — refusing to replay — herhangi bir şey yürütülmeden önce. --ignore-manifest, kaymanın sorun olmadığını bildiğinizde açık acil durum geçersiz kılmasıdır; yine de çalıştırmaya kaydedilir (manifestIgnored: true), bu yüzden asla sessiz bir atlama değildir. Hiç manifestosu olmayan bir beceri sadece bir tavsiye notu alır — her manifesto öncesi beceri değiştirilmeden çalışmaya devam eder.

Adım başına yazma onayı: reelier approve

--allow-writes/--yes genel bayraklardır — "bu çalıştırma yazabilir" derler, "bu tam yazma incelendi" değil. reelier approve, onayı belirli bir adımın aracı + argüman şablonuna hash ile bağlar:

reelier approve <skill.md>          # walk each write/destructive step, y/N to approve
reelier approve <skill.md> --all    # approve every write step non-interactively

Aracı/argümanları hala damgalanmış hash'iyle eşleşen onaylanmış bir adım hiçbir bayrak olmadan yürütülür. Adımın aracı veya argümanları onaydan beri değiştiyse, tekrar oynatma kapalı başarısız olur — Approval mismatch — ve hiçbir bayrak bunu geçersiz kılamaz; yeniden inceler ve yeniden onaylarsınız. approve: alanı olmayan bir yazma adımı, bugünün tam --allow-writes/--yes davranışını değişmeden korur.

Değeri onaylayın, sadece şekli değil

Bir becerinin onaylamaları, tekrar oynatmayı kanıt yapan şeydir. Dil bilgisi durumu, yapıyı ve değeri kontrol eder:

- assert: status == 200
- assert: json.results is array
- assert: json.count >= 1              # numeric range
- assert: json.plan is string          # type
- assert: json.id matches /^usr_/      # value pattern
- assert: body contains "ok"

Kodlama ajanınızın içinde kullanın (MCP)

reelier serve, Reelier'in kendi komutlarını MCP araçları olarak sunar, böylece Claude Code / Cursor / Windsurf / Codex oturum ortasında çağırabilir:

{ "mcpServers": { "reelier": { "command": "npx", "args": ["-y", "reelier", "serve"] } } }

Ajan, her birini tam olarak ne zaman kullanacağını (ve ne zaman kullanmayacağını) söyleyen açıklamalarla reelier_scan, reelier_from_session, reelier_replay, reelier_diff ve reelier_push alır. Deterministik bir görevi bir kez kaydeder, sonra yeniden akıl yürütmek yerine tekrar oynatır.

Araçlar

  • reelier_scan — tekrar oynatılabilir araç çağrısı iş akışları için ajan oturum geçmişini tara (Claude Code, Codex, Windsurf, OpenClaw)
  • reelier_from_session — kaydedilmiş bir oturumu, her adımda bir onaylama içeren tekrar oynatılabilir bir SKILL.md'ye derle
  • reelier_replay — bir beceriyi 0 LLM token'da deterministik olarak tekrar oynat (varsayılan olarak salt okunur; yazmalar --allow-writes arkasında denetlenir)
  • reelier_diff — iki çalıştırmayı karşılaştır: başarısız onaylama ile neden olarak, adım başına AYNI veya KAYMIŞ; kaymada çıkış 1
  • reelier_push — paylaşılabilir bir kalıcı bağlantı için bir çalıştırma makbuzunu deftere senkronize et (isteğe bağlı)

Ölçülen kanıt

Gerçek, canlı bir birebir kıyaslamadan (ajan vs. Reelier, aynı görev, aynı veri) — tam tablolar + metodoloji examples/benchmark içinde:

  • 1.000 / 1.000 tekrar oynatma byte-özdeş (N=1000 kuyruk varyans testi)
  • Tekrar oynatma başına 0 token — varsayılmadı, çalıştırma kaydından doğrulandı
  • ~50× daha ucuz (ajan kolunda ortalama 0,019068$/çalıştırma'ya karşı 0,000000$/tekrar oynatma)
  • ~59× daha hızlı (2.842ms ortalama gecikmeye karşı 48ms)
  • gerçek bir kayma ~0,001$'a kendi kendine iyileşti, bir kez, sonra her tekrar oynatma ücretsiz

Gecikme ağa göre değişir — Seviye-0 tekrar oynatma, becerinin araç çağrılarını yeniden yürütür, bu nedenle duvar saati bağlantınıza bağlıdır. Değişmeyen şey: 0 LLM token, her çalıştırmada aynı adımlar ve makbuz. Bağımsız olarak doğrulandı — arXiv 2605.14237 aynı kaydet-ve-tekrar oynat modeli için %93,3–99,98 token azalması buldu.

Herhangi bir modelle çalışır (BYOK)

Seviye-0 tekrar oynatma (varsayılan) asla bir model çağırmaz — yapı gereği 0 token. Yükseltme (--max-level 1|2) isteğe bağlıdır ve tek bir dar BYOK yüzeyi (--llm-base-url + --llm-model) üzerinden konuşur: yerel bir Anthropic Messages adaptörü ve diğer her şey için OpenAI uyumlu bir adaptör (OpenRouter, Ollama, Gemini'nin OpenAI uç noktası, Groq, vLLM, LM Studio, Kimi, …). Daha güçlü bir modele yönlendirin ve her becerinin bir sonraki kendi kendine iyileşmesi ücretsiz olarak daha akıllı hale gelir.

Sahip olun — MIT, BYOK, yerel öncelikli

Her yerde kullanın, her şeye gömün — copyleft bağı yok, yasal inceleme gerekmez. Becerileriniz, izleriniz ve çalıştırma kayıtlarınız sizin verilerinizdir — ayrılmak bir klasörü kopyalamaktır. Biçimler, herkesin kaynağı okumadan yayınlayabilmesi veya tüketebilmesi için normatif bir RFC tarzı referans olan SPEC.md içinde belirtilmiştir.

Katkıda Bulunma

Sorunlar ve PR'lar bekliyoruz — biçimler için SPEC.md'e bakın (şartname koda üstün gelir; şartnameyi değil kodu düzeltin). npm test tam paketi çalıştırır; bir PR'dan önce npm run build && npx tsc --noEmit.

git clone https://github.com/seldonframe/reelier && cd reelier
npm install && npm test

Yıldız geçmişi

Star History Chart

Lisans

MIT — sonsuza kadar çatallamak, gömmek, denetlemek ve kendi kendine barındırmak için ücretsiz. (≤0.16.0 Sürümleri AGPL-3.0 altında yayınlandı ve öyle kalır.)

Reelier size bir yeniden çalıştırma kazandırdıysa, yıldızlayın ⭐ — diğer geliştiriciler onu böyle bulur.