Sandy
Deterministic replay of MCP/tool-call sequences so repeated workflows skip LLM inference entirely.
Test report
- Verdict
- Works with setup
- Score
- Tested
- Jul 16, 2026
- Environment
- Claude Code 2.x (agent harness)
- Upstream re-checked
- Aug 10, 2026 · a942d2f
SKILL.md points to ${CLAUDE_PLUGIN_ROOT}/scripts/play.py, references/schema.md and assets/examples/, but all three live as siblings of skills/sandy/ at the plugin root, not inside it -- a straight cp -r of the skill folder ships a SKILL.md with no scripts/ directory at all, confirmed by actually running the copied skill and getting FileNotFoundError; manually reassembling SKILL.md + scripts/ + references/ + assets/ into one flat folder and re-running fixed it and produced a correct dry-run and a real end-to-end scenario (glob -> append_file) with zero LLM calls.
Scored on four weighted criteria — install, triggering, output vs. baseline, docs. How scoring works
- Installs cleanly 4/5
- Triggers reliably 5/5
- Output vs. baseline 7/10
- Docs & honesty 3/5
What Sandy does
Sandy lets an agent record a repeatable MCP/native-tool sequence (navigate, click, glob, read, bash, etc.) as a versioned JSON scenario and replay it with a local Python CLI, with zero LLM tokens spent on the replay. Triggers when a session shows a repeating tool-call pattern, or the user asks to save/automate/replay a workflow, or the /sandy command is invoked directly.
How to install Sandy
git clone https://github.com/Sangkwun/sandy
mkdir -p ~/.claude/skills
cp -r sandy/sandy-skill/skills/sandy ~/.claude/skills/sandy
Skills live in ~/.claude/skills/ (global) or .claude/skills/
(per-project). Restart Claude Code after installing.
Commands — how to trigger Sandy
-
/sandyDeterministic replay of MCP/tool-call sequences so repeated workflows skip LLM inference entirely.
It also activates on plain-language prompts like these:
-
I keep running this same glob-then-append sequence, save it as a replay -
Replay yesterday's scrape-and-notify workflow without any LLM calls -
Automate this repeating navigate-click-read pattern so it's token-free
Frequently asked questions
- Is the Sandy skill free?
- Yes. The skill itself is free from Sangkwun/sandy. SkillProof publishes the install command and an independent test verdict at no cost.
- Does Sandy work with Claude Code?
- We tested it with Claude Code 2.x (agent harness) on Jul 16, 2026. Verdict: Works with setup. SKILL.md points to ${CLAUDE_PLUGIN_ROOT}/scripts/play.py, references/schema.md and assets/examples/, but all three live as siblings of skills/sandy/ at the plugin root, not inside it -- a straight cp -r of the skill folder ships a SKILL.md with no scripts/ directory at all, confirmed by actually running the copied skill and getting FileNotFoundError; manually reassembling SKILL.md + scripts/ + references/ + assets/ into one flat folder and re-running fixed it and produced a correct dry-run and a real end-to-end scenario (glob -> append_file) with zero LLM calls.
- What is the Sandy SkillProof Score?
- 7.6/10 — installs cleanly 4/5, triggers reliably 5/5, output vs. baseline 7/10, docs & honesty 3/5.
- How do I install Sandy?
- Copy the install command from this page, run it in your terminal, and restart Claude Code. Skills live in ~/.claude/skills/ (global) or .claude/skills/ inside a project.
- Can I use Sandy with Cursor, Copilot, Gemini CLI, Codex or other AI tools?
- The SKILL.md format is native to Claude (Claude Code, Desktop, claude.ai). The instructions inside adapt to other assistants: Cursor rules, GitHub Copilot instructions, Windsurf rules, Custom GPTs, AGENTS.md for OpenAI Codex, and GEMINI.md for Google Gemini CLI — our conversion guides cover each, and the free converter on the tools page does the wrapping for you.