Reelier
resmiAgents 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 tara —
reelier_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 derle —
reelier_from_session, kaydedilmiş bir izi, her adımda bir iddia içeren ve hiçbir LLM dahil olmayan birSKILL.mddosyasına dönüştürür. - Bir beceriyi sıfır token ile tekrar oynat —
reelier_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ır —
reelier_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önder —
reelier_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
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.
Web Sitesi · Dokümanlar · SPEC.md
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)
- 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 rehberlireelier init. - Derle —
reelier compilebir izi deterministik olarak (0 LLM çağrısı) birSKILL.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). - Tekrar Oynat —
reelier runbunu Seviye 0'da çalıştırır: LLM yok, milisaniyeler, byte-özdeş. Varsayılan olarak salt okunur — bir yazma adımı (idempotent-write)--allow-writesgeçmediğiniz sürece asla yeniden tetiklenmez. - Karşılaştır —
reelier diffbir 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. - Makbuz — her çalıştırma bir makbuzdur (adım başına sonuçlar, zamanlama, 0 token).
reelier pushisteğ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
| Ajan | Oturum konumu | Durum |
|---|---|---|
| Claude Code | ~/.claude/projects/<project>/<uuid>.jsonl | destekleniyor |
| Codex CLI | ~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl | destekleniyor |
| OpenClaw | ~/.openclaw/agents/<agentId>/sessions/<sessionId>.jsonl | destekleniyor |
| 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:
- Determinizm —
reelier 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? - Kurtarma —
reelier run <skill.md> --fail N[=status]o adımın gerçek araç çağrısını göndermek yerineNadımında (varsayılan durum500;--fail N=429ile 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-writesve 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 pushbirini yayınlamayı reddeder; aşağıya bakın.) - Kayma —
reelier 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ğıdakireelier manifestile 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-writesarkası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
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.