show-your-work

Reviewed at commit 0a08f84

Caution: Checks GitHub daily and installs new versions of itself through the Claude CLI without asking, so unreviewed updates run from the next session.

Sends data to PostHog (us.i.posthog.com), anonymous usage counts only, unless you turn it off

Claude shows its finished work right in the chat: screenshots, videos of it clicking through your app, and synced before/after QA

Made by
Umer Ansari
What we checked

Lets Claude show screenshots and recordings inline in the terminal, with a before/after compare view. It adds two tools and a note to Claude's instructions, and keeps a copy of each shown file in a .show-your-work folder in your project for up to a week. It sends anonymous usage counts to PostHog and updates itself from GitHub once a day; both can be turned off.

Review details

Static review of the source at the pinned commit; not run. Registers the tools show_image and show_video and the commands /img and /show-your-work-settings. Hooks: session.start, session.end, prompt.compose (adds a short section to Claude's instructions about showing visual work), prompt.submit (reads the filenames of pasted images for /img), tool.call for its own two tools only (it can deny its own call with an error), command.run, and ui.render for ToolUse, ToolResult and Pane. Runtime calls: $.process.run for ffmpeg and ffprobe (cuts video into PNG frames in a per-user temp folder, 500 MB cache, files older than a week are removed), sips or ffmpeg for conversion, mdfind, tmux, cp, rm, mkdir, a login-shell lookup of HOME, ffmpeg and uname, open or xdg-open when you press View, Open page or Save to Downloads, and the claude CLI. Every file Claude shows (any path it passes) is copied before it is checked as a picture into <project>/.show-your-work, which ignores itself in git, keeping at most 50 items, 200 MB and 7 days. Network: $.http.fetch to https://us.i.posthog.com/batch/ with a random install id, plugin version, Claude Code version, terminal, OS, has_ffmpeg and per-action counts and kinds (file extension, durations, counts), never paths, names or text; off with /show-your-work-settings stats off, SHOW_YOUR_WORK_TELEMETRY=0, DO_NOT_TRACK=1 or CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC. Once a day it fetches the plugin.json on the main branch of the author's repository from raw.githubusercontent.com and, if newer, runs 'claude plugin marketplace update' and 'claude plugin update' for itself (skipped for a directory marketplace; off with /show-your-work-settings updates off or SHOW_YOUR_WORK_AUTO_UPDATE=0). Both are disclosed in the README. No eval or remote code beyond that self-update. ffmpeg, ffprobe and the Claude CLI were not reviewed. Several shell snippets (cache trimming, cleanup) are fixed strings that operate on the plugin's own folders and check ownership and symlinks first.

What it uses
  • Reads your prompts: yes
  • Sees tool calls: no
  • Blocks or changes tool calls: no
  • Reads or writes files: yes
  • Runs programs on your machine: yes
  • Calls the model (uses tokens): no
  • Sends data over the network: yes
  • Stores data: yes
  • Shows something on screen: yes
Hooked events
Screenshot of show-your-work
Made this mod? Add a badge to your README

modsforClaude badge for show-your-work

Paste this into your README. The badge says reviewed once the current version has been reviewed, and links readers to this page.

[![Listed on modsforClaude](https://modsforclaude.com/badge/show-your-work.svg)](https://modsforclaude.com/mods/show-your-work/)

← All mods