Reelier

resmi

Agen membuat klaim. Reelier menulis resi — rekam alur kerja panggilan alat agen sekali, putar ulang secara deterministik dengan 0 token, dan bandingkan jalankan untuk menangkap penyimpangan.

Apa yang bisa Anda lakukan dengan Reelier MCP?

  • Pindai riwayat agen untuk alur kerja yang dapat diputar ulangreelier_scan menemukan sesi Claude Code, Codex, Windsurf, atau OpenClaw sebelumnya yang berisi urutan panggilan alat yang dapat dikompilasi menjadi keterampilan.
  • Kompilasi sesi menjadi keterampilan deterministikreelier_from_session mengonversi jejak yang direkam menjadi file SKILL.md dengan pernyataan pada setiap langkah, tanpa melibatkan LLM.
  • Putar ulang keterampilan dengan nol tokenreelier_replay menjalankan keterampilan yang telah dikompilasi secara deterministik dalam hitungan milidetik, secara bawaan hanya-baca, menghasilkan tanda terima yang identik secara byte.
  • Bandingkan dua proses untuk mendeteksi penyimpanganreelier_diff membandingkan pemutaran ulang langkah demi langkah, melaporkan SAMA atau MENYIMPANG beserta pernyataan yang gagal, dan keluar dengan kode non-nol jika terjadi penyimpangan.
  • Dorong tanda terima untuk tautan permanen yang dapat dibagikanreelier_push menyinkronkan tanda terima proses ke buku besar, secara opsional menghasilkan lencana pemutaran ulang yang terverifikasi.

Dokumentasi

Reelier

Reelier

Agen membuat klaim. Reelier menulis tanda terima.

Rekam proses yang berhasil, putar ulang secara deterministik — 0 token, identik byte per byte, tanda terima di setiap langkah — dan reelier diff menangkap hari ketika ia melenceng.

Anggap ini sebagai CI + uji snapshot untuk alur kerja pemanggilan alat agen Anda.

npm version CI tests license Discord stars

Situs Web · Dokumentasi · SPEC.md

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

▶ tonton dengan suara (22 detik)

Reelier MCP server on Glama


Agen Anda menurunkan ulang alur kerja yang sama setiap kali dijalankan — membakar token dan diam-diam melenceng. Reelier mengompilasi proses yang berhasil menjadi file SKILL.md yang diputar ulang secara deterministik (tanpa LLM, 0 token, setiap langkah ditegaskan menjadi tanda terima), lalu membandingkan proses untuk menangkap hari ketika ia berhenti cocok. Untuk agen pada alur kerja produksi berulang — di mana "sudah berjalan" bukanlah bukti.

Instal → tanda terima pertama Anda dalam 60 detik

npm i -g reelier && reelier init

reelier init memindai pekerjaan yang telah Anda lakukan terlebih dahulu — di seluruh Claude Code, Codex, Windsurf, dan OpenClaw — dan menawarkan untuk mengubah sesi nyata sebelumnya menjadi keterampilan yang dapat diputar ulang. Tidak ada riwayat seperti itu? Ia menjalankan demo tanpa penyiapan dan ditutup dengan tanda terima nyata:

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.

Atau jalankan dengan Docker — tanpa instalasi Node

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

Mengapa

  • Agen Anda mempelajari kembali pekerjaan setiap kali dijalankan — lalu diam-diam melenceng. Setiap proses menurunkan ulang alur kerja, dan setiap perbaikan "rasional" kecil bertambah — apa yang disebut operator jangka panjang sebagai jaringan parut. Keterampilan yang dikompilasi tidak pernah belajar kembali dan tidak bisa melenceng.
  • Masalah sebenarnya adalah tagihannya. "Berapa biayanya?" adalah balasan pertama yang didapat setiap proses agen yang panjang. Reelier memutar ulang dengan 0 token, dengan tanda terima.
  • Ini bukan RPA yang rapuh. Memutar ulang panggilan alat (JSON yang diketik masuk/keluar), bukan piksel — dan setiap langkah membawa pernyataannya sendiri, sehingga langkah yang rusak gagal dengan keras, tidak pernah lolos diam-diam.
  • Meningkatkan model? Pemutaran ulang disematkan — rekam ulang pada model baru dan reelier diff terhadap garis dasar beku Anda: SAMA atau MELENCENG, per langkah, sebelum mencapai produksi.
  • "Apa pun yang deterministik seharusnya hanya kode." Setuju — agen Anda sudah menulisnya. Reelier menangkap proses kerjanya yang nyata dan berhasil ke dalam file yang teruji. Determinisme tanpa pengkodean manual.

Cara kerjanya — rekam → kompilasi → putar ulang → bandingkan → tanda terima

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. Rekam — tiga cara: reelier mcp --wrap "<your mcp server>" (proksi tanpa kehilangan di depan alat agen Anda), langsung dari sesi yang ada (reelier scan / reelier from-session), atau reelier init terpandu.
  2. Kompilasireelier compile mengubah jejak menjadi SKILL.md secara deterministik (0 panggilan LLM) — resep dengan pernyataan di setiap langkah, dan celah jujur kompiler dicetak sebagai Pertanyaan terbuka (termasuk tanggal literal, UUID, dan stempel waktu yang ditandai sebagai "haruskah ini menjadi variabel?") alih-alih ditebak.
  3. Putar ulangreelier run menjalankannya di Level 0: tanpa LLM, milidetik, identik byte per byte. Hanya-baca secara default — langkah tulis (idempotent-write) tidak pernah dijalankan ulang kecuali Anda memberikan --allow-writes.
  4. Bandingkanreelier diff membandingkan dua proses keterampilan dan melaporkan SAMA atau MELENCENG per langkah, dengan pernyataan yang gagal sebagai alasannya. Kode keluar 1 saat melenceng, sehingga ia menjaga pemutaran ulang terjadwal.
  5. Tanda terima — setiap proses adalah tanda terima (hasil per langkah, waktu, 0 token). reelier push secara opsional menyinkronkannya ke buku besar tanda terima untuk tautan permanen yang dapat dibagikan + lencana pemutaran ulang terverifikasi yang dapat disematkan.

Konversi Keterampilan Agen

Ubah keterampilan instruksi + satu proses yang direkam menjadi pemutaran ulang deterministik — keterampilan Anda, tanpa model:

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)

Impor sesi dari agen mana pun

Anda sudah memiliki alur kerja yang dapat diputar ulang di log sesi agen Anda sendiri. reelier scan menemukannya; reelier from-session mengubahnya menjadi keterampilan. Format diendus dari konten file — tidak perlu flag untuk agen yang didukung:

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
AgenLokasi sesiStatus
Claude Code~/.claude/projects/<project>/<uuid>.jsonldidukung
Codex CLI~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonldidukung
OpenClaw~/.openclaw/agents/<agentId>/sessions/<sessionId>.jsonldidukung
Cursor.../User/globalStorage/state.vscdb (SQLite, tidak terdokumentasi)terdeteksi, belum dapat diurai
Windsurf.../User/globalStorage/state.vscdb (SQLite, tidak terdokumentasi)terdeteksi, belum dapat diurai

Hanya panggilan yang dapat diputar ulang (bawaan Reelier sendiri, atau panggilan mcp__<server>__<tool>) yang pernah dikompilasi menjadi keterampilan — tindakan file/shell/pencarian asli dilaporkan sebagai dilewati, tidak pernah dibuat-buat menjadi langkah. Berikan --agent <claude-code|codex|openclaw> untuk memaksakan format alih-alih mendeteksi otomatis; reelier scan / reelier from-session --agent cursor (atau --agent windsurf) melaporkan apa yang ada di disk dengan jujur daripada menebak format biner yang tidak terdokumentasi.

Tiga pengujian, satu keterampilan

Satu keterampilan yang direkam memberi Anda tiga pertanyaan berbeda untuk diajukan, bukan satu:

  • Determinismereelier run <skill.md> memutar ulang terhadap pernyataan yang Anda rekam. Langkah yang sama, pernyataan yang sama, 0 token. Menjawab: apakah ini masih melakukan apa yang dilakukannya?
  • Pemulihanreelier run <skill.md> --fail N[=status] menyuntikkan kegagalan sintetis pada langkah N (status default 500; timpa dengan --fail N=429, dapat diulang) alih-alih mengirimkan panggilan alat nyata langkah tersebut, lalu menjalankan tangga eskalasi SAMA yang akan terkena kegagalan nyata. Tidak ada yang benar-benar terjadi di luar jaringan — langkah tiruan tidak pernah memanggil alatnya, sehingga Anda dapat menguji pemulihan langkah tulis tanpa --allow-writes dan tanpa efek samping. Menjawab: jika ini rusak, apakah keterampilan akan menyadarinya dan pulih? (Proses tiruan hanya pengujian lokal — reelier push menolak untuk mempublikasikannya; lihat di bawah.)
  • Penyimpanganreelier run <skill.md> --wrap "<your mcp server>" memutar ulang terhadap dependensi langsung hanya-baca Anda alih-alih jejak yang direkam. Dipasangkan dengan reelier manifest (di bawah), ini adalah cara Anda menangkap skema alat yang bergerak menjauh dari Anda sebelum pemutaran ulang nyata melakukannya.

Taksonomi berkat ulasan Mads Hansen terhadap pos peluncuran.

Penyimpangan skema alat: reelier manifest

Langkah-langkah keterampilan memanggil alat tertentu dengan bentuk argumen tertentu. Jika skema alat server MCP yang dibungkus berubah sejak Anda merekamnya, pemutaran ulang harus menolak dengan keras, bukan diam-diam mengisi argumen yang salah. reelier manifest mencap intisari skema untuk setiap alat yang benar-benar digunakan langkah-langkah keterampilan:

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

Jika skema alat yang dicap telah melenceng (atau alatnya hilang), reelier run gagal tertutup — MANIFEST DRIFT — refusing to replay — sebelum apa pun dieksekusi. --ignore-manifest adalah pengganti pemecah kaca eksplisit untuk saat Anda tahu penyimpangan itu baik-baik saja; itu tetap dicatat pada proses (manifestIgnored: true), jadi tidak pernah menjadi pengabaian diam-diam. Keterampilan tanpa manifes sama sekali hanya mendapat catatan penasihat — setiap keterampilan pra-manifes tetap berfungsi tanpa modifikasi.

Persetujuan tulis per langkah: reelier approve

--allow-writes/--yes adalah flag selimut — mereka mengatakan "proses ini boleh menulis," bukan "tulisan persis ini ditinjau." reelier approve mengikat hash persetujuan ke templat alat + argumen satu langkah tertentu:

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

Langkah yang disetujui yang alat/argumennya masih cocok dengan hash yang dicap dieksekusi tanpa flag sama sekali. Jika alat atau argumen langkah telah berubah sejak persetujuan, pemutaran ulang gagal tertutup — Approval mismatch — dan tidak ada flag yang menimpanya; Anda meninjau ulang dan menyetujui ulang. Langkah tulis tanpa bidang approve: mempertahankan perilaku --allow-writes/--yes persis hari ini, tidak berubah.

Tegaskan nilainya, bukan hanya bentuknya

Pernyataan keterampilan adalah apa yang membuat pemutaran ulang menjadi bukti. Tata bahasanya memeriksa status, struktur, dan nilai:

- 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"

Gunakan di dalam agen pengkodean Anda (MCP)

reelier serve mengekspos perintah Reelier sendiri sebagai alat MCP, sehingga Claude Code / Cursor / Windsurf / Codex dapat memanggilnya di tengah sesi:

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

Agen mendapatkan reelier_scan, reelier_from_session, reelier_replay, reelier_diff, dan reelier_push — dengan deskripsi yang memberi tahu persis kapan harus menggunakan masing-masing (dan kapan tidak). Ia merekam tugas deterministik sekali, lalu memutar ulang alih-alih menalar ulang.

Alat

  • reelier_scan — pindai riwayat sesi agen (Claude Code, Codex, Windsurf, OpenClaw) untuk alur kerja panggilan alat yang dapat diputar ulang
  • reelier_from_session — kompilasi sesi yang direkam menjadi SKILL.md yang dapat diputar ulang dengan pernyataan di setiap langkah
  • reelier_replay — putar ulang keterampilan secara deterministik dengan 0 token LLM (hanya-baca secara default; penulisan dijaga di belakang --allow-writes)
  • reelier_diff — bandingkan dua proses: SAMA atau MELENCENG per langkah, dengan pernyataan yang gagal sebagai alasannya; keluar 1 saat melenceng
  • reelier_push — sinkronkan tanda terima proses ke buku besar untuk tautan permanen yang dapat dibagikan (pilih ikut)

Bukti terukur

Dari tolok ukur langsung, nyata, head-to-head (agen vs. Reelier, tugas yang sama, data yang sama) — tabel lengkap + metodologi di examples/benchmark:

  • 1.000 / 1.000 pemutaran ulang identik byte per byte (uji varians ekor N=1000)
  • 0 token per pemutaran ulang — diverifikasi dari catatan proses, bukan diasumsikan
  • ~50× lebih murah ($0,000000/pemutaran ulang vs. $0,019068/proses rata-rata di lengan agen)
  • ~59× lebih cepat (48 md vs. 2.842 md latensi rata-rata)
  • penyimpangan nyata pulih sendiri sekitar $0,001, sekali, lalu gratis setiap pemutaran ulang setelahnya

Latensi bervariasi menurut jaringan — Pemutaran ulang Level-0 mengeksekusi ulang panggilan alat keterampilan, jadi waktu dinding bergantung pada koneksi Anda. Yang tidak bervariasi: 0 token LLM, langkah yang sama setiap proses, dan tanda terima. Dikoroborasikan secara independen — arXiv 2605.14237 menemukan pengurangan token 93,3–99,98% untuk pola rekam-dan-putar ulang yang sama.

Bekerja dengan model apa pun (BYOK)

Pemutaran ulang Level-0 (default) tidak pernah memanggil model — 0 token, berdasarkan konstruksi. Eskalasi (--max-level 1|2) bersifat pilih ikut dan berbicara melalui satu permukaan BYOK sempit (--llm-base-url + --llm-model): adaptor Pesan Anthropic asli, dan adaptor kompatibel OpenAI untuk yang lainnya (OpenRouter, Ollama, titik akhir OpenAI Gemini, Groq, vLLM, LM Studio, Kimi, …). Arahkan ke model yang lebih kuat dan pemulihan mandiri berikutnya setiap keterampilan menjadi lebih pintar secara gratis.

Miliki — MIT, BYOK, lokal-pertama

Gunakan di mana saja, sematkan di apa saja — tanpa ikatan copyleft, tanpa perlu tinjauan hukum. Keterampilan, jejak, dan catatan proses Anda adalah data Anda — pergi berarti menyalin folder. Formatnya ditentukan dalam SPEC.md, referensi gaya RFC normatif sehingga siapa pun dapat memancarkan atau mengonsumsinya tanpa membaca sumbernya.

Berkontribusi

Isu dan PR diterima — lihat SPEC.md untuk formatnya (spesifikasi menang atas kode; perbaiki kodenya, bukan spesifikasinya). npm test menjalankan rangkaian lengkap; npm run build && npx tsc --noEmit sebelum PR.

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

Riwayat bintang

Star History Chart

Lisensi

MIT — bebas untuk di-fork, disematkan, diaudit, dan di-host sendiri selamanya. (Versi ≤0.16.0 dirilis di bawah AGPL-3.0 dan tetap demikian.)

Jika Reelier menghemat proses ulang Anda, beri bintang ⭐ — itulah cara pembangun lain menemukannya.