[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"readme:orcareplay":3},"\u003Ch1>OrcaReplay\u003C\u002Fh1>\n\u003Cp>\u003Csub>\u003Cstrong>English\u003C\u002Fstrong> · \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FContinuum-AI-Corp\u002Forcareplay\u002Fblob\u002FHEAD\u002Fdocs\u002Fi18n\u002FREADME.zh-CN.md\" rel=\"nofollow ugc noopener\">简体中文\u003C\u002Fa> · \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FContinuum-AI-Corp\u002Forcareplay\u002Fblob\u002FHEAD\u002Fdocs\u002Fi18n\u002FREADME.ja.md\" rel=\"nofollow ugc noopener\">日本語\u003C\u002Fa> · \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FContinuum-AI-Corp\u002Forcareplay\u002Fblob\u002FHEAD\u002Fdocs\u002Fi18n\u002FREADME.ko.md\" rel=\"nofollow ugc noopener\">한국어\u003C\u002Fa> · \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FContinuum-AI-Corp\u002Forcareplay\u002Fblob\u002FHEAD\u002Fdocs\u002Fi18n\u002FREADME.de.md\" rel=\"nofollow ugc noopener\">Deutsch\u003C\u002Fa> · \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FContinuum-AI-Corp\u002Forcareplay\u002Fblob\u002FHEAD\u002Fdocs\u002Fi18n\u002FREADME.fr.md\" rel=\"nofollow ugc noopener\">Français\u003C\u002Fa> · \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FContinuum-AI-Corp\u002Forcareplay\u002Fblob\u002FHEAD\u002Fdocs\u002Fi18n\u002FREADME.es.md\" rel=\"nofollow ugc noopener\">Español\u003C\u002Fa> · \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FContinuum-AI-Corp\u002Forcareplay\u002Fblob\u002FHEAD\u002Fdocs\u002Fi18n\u002FREADME.ar.md\" rel=\"nofollow ugc noopener\">العربية\u003C\u002Fa>\u003C\u002Fsub>\u003C\u002Fp>\n\u003Ch3>Your agent broke something at 2am. Replay it at 9am — exactly, offline, as many times as you like.\u003C\u002Fh3>\n\u003Cp>Record any coding agent. Reproduce the run byte-for-byte with no model called. Fork it from any step\nonto a different model and see who gets it right.\u003C\u002Fp>\n\u003Ca href=\"https:\u002F\u002Fwww.orcarouter.ai\" rel=\"nofollow ugc noopener\">\n  \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FContinuum-AI-Corp\u002Forcareplay\u002FHEAD\u002Fdocs\u002Forcarouter.svg\" alt=\"OrcaRouter\" height=\"28\" align=\"left\" \u002F>\n\u003C\u002Fa>\u003Cp>\u003Cstrong>Built by the team behind \u003Ca href=\"https:\u002F\u002Fwww.orcarouter.ai\" rel=\"nofollow ugc noopener\">OrcaRouter\u003C\u002Fa>\u003C\u002Fstrong> — one API key and one endpoint\nfor Claude, GPT, Gemini, Grok, DeepSeek, Qwen and the rest. It is what \u003Ccode>orca setup\u003C\u002Fcode> points at by\ndefault, and what makes \u003Ccode>orca compare\u003C\u002Fcode> a single command instead of four provider accounts.\u003C\u002Fp>\n\u003Cp>Find us: \u003Ca href=\"https:\u002F\u002Fwww.orcarouter.ai\u002Fmodels\" rel=\"nofollow ugc noopener\">OrcaRouter All model APIs\u003C\u002Fa> \u003C\u002Fp>\n\u003Cp>Github Repos: \u003Ca href=\"https:\u002F\u002Fwww.orcarouter.ai\u002Fcode-review\" rel=\"nofollow ugc noopener\">OrcaCode Review\u003C\u002Fa> · \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FContinuum-AI-Corp\u002FOrcaRouter-Lite\" rel=\"nofollow ugc noopener\">OrcaRouter Lite\u003C\u002Fa> \u003C\u002Fp>\n\u003Cp>Connect: \u003Ca href=\"https:\u002F\u002Fx.com\u002FOrcaRouter\" rel=\"nofollow ugc noopener\">X\u003C\u002Fa> · \u003Ca href=\"https:\u002F\u002Fdiscord.com\u002Finvite\u002FYEubt8enRA\" rel=\"nofollow ugc noopener\">Discord\u003C\u002Fa> · \u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Forcarouter\" rel=\"nofollow ugc noopener\">Hugging Face\u003C\u002Fa> · \u003Ca href=\"https:\u002F\u002Follama.com\u002Forcarouter\" rel=\"nofollow ugc noopener\">Ollama\u003C\u002Fa>\u003C\u002Fp>\n\u003Cbr \u002F>\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FContinuum-AI-Corp\u002Forcareplay\u002Fblob\u002FHEAD\u002FLICENSE\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcode-Apache--2.0-blue\" alt=\"License\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FContinuum-AI-Corp\u002Forcareplay\u002Fblob\u002FHEAD\u002Fspec\u002Forca-trace-v0.md\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Ftrace%20spec-CC%20BY%204.0-blue\" alt=\"Spec\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"#install\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fnode-20%2B-brightgreen\" alt=\"Node\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"#which-agents\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fagents-Claude%20Code%20%C2%B7%20Codex%20%C2%B7%20Agents%20SDK%20%C2%B7%20AI%20SDK%20%C2%B7%20any-black\" alt=\"Agents\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FContinuum-AI-Corp\u002Forcareplay\u002Fblob\u002FHEAD\u002Fdocs\u002Fgood-first-issues.md\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fgood%20first%20issues-12-orange\" alt=\"Good first issues\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhesreallyhim\u002Fawesome-claude-code\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fawesome.re\u002Fmentioned-badge.svg\" alt=\"Mentioned in Awesome Claude Code\" \u002F>\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FContinuum-AI-Corp\u002Forcareplay\u002FHEAD\u002Fdocs\u002Fdemo-cli.gif\" alt=\"Recording a Claude Code run, replaying it offline, then forking it onto two models\" \u002F>\u003C\u002Fp>\n\u003Cp>\u003Csup>Real output from one session — a Claude Code run recorded, replayed against the recording, then\nforked at checkpoint 4 onto two models and graded by \u003Ccode>npx tsc --noEmit\u003C\u002Fcode>. Nothing here is mocked up.\u003C\u002Fsup>\u003C\u002Fp>\n\u003Ch2>Try it in three commands\u003C\u002Fh2>\n\u003Cpre>\u003Ccode class=\"language-console\">orca record claude              # your agent, unmodified, doing whatever it does\norca replay last                # the same run again — no network, no tokens, no charge\norca replay last --from 4 --model claude-haiku-4-5 --ui\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The third line is the one people stay for: same files, same conversation prefix, different model\nfrom step 4 onward. The model is the only variable, which is what makes the answer mean anything.\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-console\">npm i -g orcareplay\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The three commands at the top need an agent installed, a key, a network and real tokens. If you\nhave none of those yet, one command brings its own:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-console\">orca quickstart\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>It writes a small project with a genuine bug in it and a recording of an agent fixing that bug,\nthen replays the recording against the project with no model called: two failing tests before,\nfour passing after, three turns served from the trace and nothing spent. \u003Ccode>--full\u003C\u002Fcode> prints the whole\ntimeline and the replay as it happened.\u003C\u002Fp>\n\u003Ch2>Read your agent's own system prompt\u003C\u002Fh2>\n\u003Cp>A proxy that sees the whole loop also sees the prompt the harness assembled before it sent\nanything. One command captures it, scrubs the machine out of it, and files it by model:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-console\">node capture\u002Fcapture.mjs claude --model claude-opus-5\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Interactive prompts and \u003Ccode>-p\u003C\u002Fcode> prompts are not the same prompt, and neither is the same across\nmodels. See \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FContinuum-AI-Corp\u002Forcareplay\u002Fblob\u002FHEAD\u002Fcapture\u002FREADME.md\" rel=\"nofollow ugc noopener\">\u003Ccode>capture\u002FREADME.md\u003C\u002Fcode>\u003C\u002Fa> for the measured differences, the pitfalls,\nand the sanitising rules.\u003C\u002Fp>\n\u003Ch2>Why this exists\u003C\u002Fh2>\n\u003Cp>Agent debugging today is archaeology. You scroll a terminal, you re-run and get a different\nfailure, you add print st\u003C\u002Fp>\n",1789121864441]