orca-replay
Answers questions about a past agent run from its recording rather than from memory, and replays or forks that run.
Skill by Continuum-AI-Corp
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/continuum-ai-corp-orca-replay
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/orca-replay
What's inside
- Skill name
orca-replay- Description
- Answers questions about a past agent run from its recording rather than from memory, and replays or forks that run. Use when asked why an earlier run did something, or to reproduce a failure.
- License
- Apache-2.0
- Compatibility
- Requires the `orcareplay` npm package (Node 20+) with its MCP server registered as `orca`, and at least one recorded run in the project's .orca/runs directory.
- Metadata
- author: Continuum-AI-Corp · version: 0.1 · homepage: https://github.com/Continuum-AI-Corp/OrcaReplay
- Instructions
- 202 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Reading a recorded agent run A recording is evidence. Your memory of a session is not, and neither is a transcript you were handed — both are missing the tool results, the exit codes, and the files that changed without anyone mentioning it. **The rule: when a question is about something that already happened, read the trace before you answer.** Do not reconstruct it. If a recording exists, guessing is the wrong move even when the guess would have been right. ## When to Use This Skill - "Why did you delete/overwrite/move X?" - "What changed this file?" / "Which step broke the build?" - "Can you reproduce yesterday's failure?" - "Does this still reproduce?" (see the limit on that in step 4 — replay cannot tell you whether a *fresh* run would fail again) - "Would a different model have got this right?" ## Workflow ### 1. Find the run `orca_list_runs` — newest first, and it names the run each fork came from. Skip this only when the user clearly means the most recent one; every other tool defaults to `run: "last"`. ### 2. Narrow to the chain that produced the thing being asked about `orca_show_run` gives the whole timeline: model turns with token counts and stop reasons, tool calls with arguments and results, shell commands with exit codes, and every file the run changed. Good for orientation, long for a specific question. `orca_graph` is usually the better tool. It returns causal edges — which event produced which. Pass `to: <event seq>` to get **only** the chain that produced one event. That is the shape of an answer to "why did this happen", where the full timeline is the shape of an answer to "what happened". ### 3. Report `recorded` and `inferred` differently Every edge from `orca_graph` is labelled: - **`recorded`** — the recorder watched it happen and wrote it into the trace. - **`inferred`** — derived just now from a rule the edge names. The trace does not vouch for it. Carry that distinction into your answer. "The trace shows the `rm` at step 14 removed it" and "this looks like the `rm` at step 14, going by timing" are different claims, and flattening them into one confident sentence is the specific failure this tool exists to prevent. Name the rule when you lean on an inferred edge. ### 4. Reproduce it before explaining it `orca_replay` re-runs the recording and reports what could not be reproduced — divergences, and requests the recording could not serve. **What "offline" covers, and what it does not.** Every model response comes from the trace and the proxy forwards nothing upstream, so no provider is contacted and no tokens are spent. An unmatched request halts the replay rather than falling through to the network, unless `--loose` was asked for. That covers the model traffic. It does not cover the agent's own subprocesses: unless the recording used `--tls-intercept` — in which case replay re-establishes interception for the hosts it recorded — a `curl`, `npm install`, `git push` or database call inside a recorded shell command goes straight out. Replay is not a sandbox; only a network-isolated container makes it one. **What a matching replay proves, and what it does not.** It shows the recorded decisions reproduce against today's environment. It cannot show the failure is deterministic, because the model is not being asked again — the same recorded responses are served back. If the user wants to know whether a fresh run would fail the same way, say that replay cannot answer it; that needs real runs. **Replay re-executes the agent, not just its model traffic.** The recorded model responses are served from the trace, but the agent process runs again for real — so every shell command it issued runs again too. `worktree: true` isolates repository files and nothing else. Anything the run touched outside the tree — `/tmp`, Docker, a local database, a package manager, another host — is mutated a second time. **So check before the first replay of a run, not after.** Read its shell commands with `orca_show_run` and tell the user what will re-execute. If any of it reached outside the working tree, get approval for that specifically or replay inside a container; do not treat the earlier `worktree` answer as covering it. A run that only read files and edited the repository is free and repeatable, and worth replaying before committing to any explanation. **Pass `worktree: true`.** It replays into a scratch copy and leaves the working tree alone. Without it, replay is destructive for as long as it runs: it restores the recorded filesystem over the working tree and puts the tree back when the replay ends. Uncommitted work is absent in the meantime, and stays absent if the replay is interrupted before it can restore. Run an in-place replay only when the user has been told that and has agreed to it. "They do not appear to be typing" is not consent. A replay reporting `reused=3/5` on an interactive recording is not a partial failure. Harnesses make calls for themselves — a quota probe, a session-naming request — and a replay does not repeat them. ### 5. Only then consider comparing models `orca_compare` forks one run onto several models from the same checkpoint: same files, same conversation prefix, so the model is the only variable. Pick the fork point with `orca_checkpoints` and pass it as `from`. Grade with `verify` — a shell command whose exit code is the verdict. Use something the repository already declares (`"npm test"`, `"npm run typecheck"`) or an explicitly local binary (`"./node_modules/.bin/tsc --noEmit"`), not `npx <tool>`: with no local install, npx runs whatever the registry has under that name, and `npx tsc` resolves a package deprecated in 2016 that is not TypeScript. **`orca_compare` uploads the recording to other people's models, and spends real money doing it.** Each model named receives the same files and conversation prefix the original run had — so whatever that run touched (source, prompts, configuration, anything a credential was pasted into) is sent to every provider behind those model ids. **And each fork is a live agent, not a replay.** From the fork point onward the model is really being asked, and whatever it decides to do, it does — its shell commands execute for real, and so does the `verify` command you pass. Each fork gets its own worktree, so repository files are isolated per model; nothing outside the tree is. A fork can also take actions the original run never took, because it is a different model making fresh decisions. So the approval has three parts, and they are not the same question: 1. **Disclosure** — what context is uploaded, and to which providers. Approving a bill is not approving a disclosure, and the two need separate answers when the recording is from a private codebase. `orca scrub` is for when the comparison is worth running but the trace is not safe to send as-is.
From Continuum-AI-Corp/OrcaReplay, Apache-2.0.
More from Continuum-AI-Corp/OrcaReplay
Signals
- Stars
- 281
- Forks
- 66
- Open issues
- 0
- Contributors
- 8
- Last commit (this folder)
- Sep 7, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 0.1
- License
- Apache-2.0
- Repository
- github.com/Continuum-AI-Corp/OrcaReplay
- Website
- www.orcarouter.ai
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Continuum-AI-Corp
- 0.625score
Orcareplay
Continuum-AI-Corp
Read, replay and fork recorded coding-agent runs.
ConnectorAFreshness: ALocal★ 281Claude Code +5 - 0.484score
OrcaRouter
Continuum-AI-Corp
Browse 160+ LLM models and live pricing — no API key needed for catalog.
ConnectorCFreshness: CLocal★ 13↓ 60/wkClaude Code +5 - 0.465score
Orcadub MCP Server
Continuum-AI-Corp
AI video dubbing via OrcaRouter (model orca/dub): upload a video or URL, poll, download the MP4.
ConnectorCFreshness: CLocal★ 7↓ 21/wkClaude Code +5
Cite this page
orca-replay skill. Agent Mart. https://agentmart.dev/skills/continuum-ai-corp-orca-replay (last updated 2026-10-24)