iamumeransari/claude-show-your-work is a plugin that shows the artifacts produced by Claude Code as they are, inside the terminal. It renders screenshots, videos that capture the process of clicking through an app, and QA screens that place the before and after of a task side by side, in terminals that support the kitty graphics protocol. It supports macOS, Linux, and Windows, and is distributed under the MIT license. Version 0.8.0, published by this repository's GitHub commit f5a9968 (2026-11-02), added sound to videos. Videos that have sound now show an Unmute button, and are played muted until it is pressed.
Sound playback comes from the same bundle as the ffmpeg tool that had been cutting video frames. ffplay, a tool included with ffmpeg, outputs a video's audio. The newly added hooks/sound.ts checks whether a video has an audio stream, cuts out the sound file, and plays it with ffplay while tracking playback time. On macOS it reads the output latency of speakers or headphones via osascript so that the screen waits for the sound. The accompanying tools/sound-align.py is a tool that verifies, using the ffmpeg command the plugin actually uses, that the frames and the sound file do not drift apart, and tests/sound.test.ts and tests/sound-play.test.ts validate this sound path. This commit contained 1299 added lines and 95 deleted lines across 19 files.
The limitations are written down separately. docs/technical/known-issues.md records that cutting a 60 Mbit/s 1080p H.264 clip on 8 cores with an average load between 25 and 40 tops out at 0.3 times real time (a visible rate of about 3.7fps) and stalls for up to 10 seconds at a time. This is independent of whether sound is muted and is the same in 0.7.1, and the hardware decoding (H.264/HEVC) that came in with 0.8.0 only helps a little. Running two cuts at the same time raises the figure to 0.5 times, but each one uses roughly 300MB of memory. The document notes that launching one ffmpeg per clip being played and decoding continuously without re-decoding keyframes would probably help, but measurements in a quiet environment under fixed load are still missing. 0.8.0 is the sound-support release that puts mute forward as the default, and playback performance and actual latency measurement are still open items.