A tiny spider crawls over every diff Claude Code writes and marks the changed words.
Whenever Claude shows a diff, diffspider replaces it with its own view. It starts with the code as it looked before. A braille spider walks in from the left and steps onto every word that actually changed. Where it lands, the old word turns into the new one and lights up. Whole new lines appear when it reaches them, removed lines go red. When it is done it leaves to the right and the marks stay.
It crawls over:
EditandMultiEdit, andWritewhen it overwrites an existing file (a new file is no diff and keeps the normal view)NotebookEditcell changes- diffs printed by
Bash, such asgit diffordiff -u, including the compact formrtk git diffprints - fenced
```diffblocks in Claude's replies - any other tool whose result carries a structured patch
After the crawl:
Type this at the Claude Code prompt:
/plugin install diffspider --marketplace Silvertree2010/diffspider
Answer y to add the marketplace and press Enter to install it for your user. It is active right away, no restart needed.
- Terminal only. Other surfaces (desktop, VS Code) keep the normal diff.
- Collapsed tool groups unfold while a spider is crawling and fold back when it is done.
- Diffs show up to 250 lines.
- Edits from earlier turns skip the animation and show the final marks.
- Built on the Claude Code function hooks API, which is still in early access and may change between releases.
| File | Job |
|---|---|
hooks/diff.ts |
turns a tool result, shell output or markdown fence into numbered diff lines |
hooks/grid.ts |
pairs removed and added lines, diffs them word by word, picks the words to visit |
hooks/spider.ts |
body path, gait and steps |
hooks/paint.ts |
two-bone IK legs and braille body, packed into a Raster |
hooks/register.tsx |
the hooks: tool.call, turn.start, ui.render for ToolUse, ToolResult, ToolGroup and AssistantMessage |
Removed and added lines inside a hunk are paired by similarity. A pair is diffed token by token, so only the words that differ become targets. Lines with too little in common stay a separate removal and addition.
Each leg has a resting spot next to the body. A foot stays planted until it drifts too far from that spot, then it steps ahead. The legs move in two alternating groups, so four feet are always on the ground.
diffspider ships one function hook module, hooks/register.tsx, declared in hooks/hooks.json. Claude Code loads it in-process. It only draws: it reads the diff a tool row or a reply already holds and renders the spider over it. It has no MCP servers, commands, skills or agents, and it does not run shell commands. It works in the Claude Code terminal only, not on claude.ai or in Cowork.
diffspider collects no data. It makes no network requests, writes nothing to disk, keeps no state between sessions and has no telemetry. The only thing it reads is the diff Claude Code is already showing you, and that never leaves your machine.
claude --plugin-dir ./diffspider
claude plugin validate ./diffspider
claude plugin test ./diffspider


