Repository navigation
Releases: TOMOSIA-VIETNAM/webapp-evidence
Release list
v1.4.0 — Screen takes wait for hands off, with a menu bar firefly
How to update
claude plugin marketplace add TOMOSIA-VIETNAM/webapp-evidence
claude plugin install webapp-evidence@webapp-evidencecurl -fsSL https://raw.githubusercontent.com/TOMOSIA-VIETNAM/webapp-evidence/main/install.sh | bashNew
- A screen take waits until the keyboard and mouse have been left alone for
recording.screenCapture.countdownSeconds(3 s by default) before it takes the machine; every touch restarts the count. Nothing is asked. - Touching the machine mid-take holds the take before its next action. It carries on once the machine is left alone, and the wait is cut from the video and named in the runbook.
- On macOS, the plugin's firefly sits in the menu bar during screen takes: orange with the seconds left while waiting, red while recording, green for ten minutes after a take.
Improved
- A take that reaches
recording.screenCapture.maxSecondsafter waiting for someone says how long it waited, instead of asking for a shorter step script.
v1.3.0 — edit a finished take instead of recording again
How to update
claude plugin marketplace add TOMOSIA-VIETNAM/webapp-evidence
claude plugin install webapp-evidence@webapp-evidencecurl -fsSL https://raw.githubusercontent.com/TOMOSIA-VIETNAM/webapp-evidence/main/install.sh | bashNew
scripts/edit.jsedits a finished take without recording again: speed, cover, highlight, arrow, cut, trim and stills on the video; cover, highlight and arrow on a screenshot. Output goes to*-edited.*with a matching runbook; the recording is never touched.--helplists every operation.<name>-timeline.jsonbeside the runbook records each step's element box, so an edit can target a step with--step "<label>".
Improved
- A cut fades through held frames instead of jumping.
- Highlights and arrows use the cursor's orange and draw themselves on; an arrow avoids crossing text.
- Terminal commands in a take use the project's own tooling (
bin/rails runner,npm run, ...) before plain shell tools.
Breaking
redact()is gone: a step script still calling it fails and points atedit.js cover.- The terminal panel no longer covers cookie values or password-like fields on its own. Only the patterns you list in
recording.terminal.scrubare replaced.
v1.2.2 — a terminal panel at half the frame
How to update
Claude Code
claude plugin marketplace add TOMOSIA-VIETNAM/webapp-evidence
claude plugin install webapp-evidence@webapp-evidenceCursor, Codex, Gemini CLI, Antigravity
curl -fsSL https://raw.githubusercontent.com/TOMOSIA-VIETNAM/webapp-evidence/main/install.sh | bashImproved
- The terminal panel keeps one height while it is open: half the viewport by default, so a batch job or a long log shows more rows and scrolls less.
recording.terminal.heightstill sets another, up to 60%.
v1.2.1 — no hydration error from a headless take
How to update
Claude Code
claude plugin marketplace add TOMOSIA-VIETNAM/webapp-evidence
claude plugin install webapp-evidence@webapp-evidenceCursor, Codex, Gemini CLI, Antigravity
curl -fsSL https://raw.githubusercontent.com/TOMOSIA-VIETNAM/webapp-evidence/main/install.sh | bashImproved
- A headless take leaves the page's markup untouched, so a server-rendered app such as Next.js no longer reports a hydration error during recording.
- A
--screentake keeps Chrome's offer to translate away with thenotranslatemeta tag only, without changing<html>.
v1.2.0 — the real file picker in a --screen take
How to update
Claude Code
claude plugin marketplace add TOMOSIA-VIETNAM/webapp-evidence
claude plugin install webapp-evidence@webapp-evidenceCursor, Codex, Gemini CLI, Antigravity
curl -fsSL https://raw.githubusercontent.com/TOMOSIA-VIETNAM/webapp-evidence/main/install.sh | bashNew
- With
--screen,upload()opens the real file picker: it goes to a folder holding only that file, selects it and opens it. The picker's start on your own folders is cut from the video. Needs Accessibility permission; without it the file is set directly, as on a headless take. - A
--screentake hides every other application while it records, and shows them again afterwards.
Improved
- After a
--screentake the agent looks at the video once, to check it recorded the flow. Anything else it spots is reported to you with a timestamp, never blurred or re-recorded on its own.
v1.1.3 — scroll to any part of a page, and fail without recording the desktop
How to update
Claude Code
claude plugin marketplace add TOMOSIA-VIETNAM/webapp-evidence
claude plugin install webapp-evidence@webapp-evidenceCursor, Codex, Gemini CLI, Antigravity
curl -fsSL https://raw.githubusercontent.com/TOMOSIA-VIETNAM/webapp-evidence/main/install.sh | bashNew
scrollTo(locator)reaches a part of a page that holds nothing to click, and comes to rest with the whole section in view, clear of whatever header the page keeps pinned.drag(locator, to)drives a handle — a slider's thumb, a control point, a row being reordered. Drop onto an element, a point on the page, or an offset.
Improved
- A take that fails stops recording where the flow stopped. Recording the browser window it used to keep writing until its own time limit, putting minutes of the desktop into the file; what it did record is kept as
<name>-failed.mp4, and the error names the step it died in. - One run per project at a time: a second recording, or a probe, is refused by name instead of corrupting the first through the shared development server.
inspect.jsprints selectors that resolve — names read from the DOM rather than off the screen, and quoted so an apostrophe cannot break the line.- A scroll follows the page's own easing, so a momentum scroller no longer overshoots the section and slides back.
- A take no longer hangs on a page that preloads video or audio.
v1.1.2 — scrolling a viewer can follow
Update
Claude Code
claude plugin marketplace add TOMOSIA-VIETNAM/webapp-evidence
claude plugin install webapp-evidence@webapp-evidenceCursor, Codex, Gemini CLI, Antigravity
curl -fsSL https://raw.githubusercontent.com/TOMOSIA-VIETNAM/webapp-evidence/main/install.sh | bashImproved
- Anything below the fold is scrolled to at a pace an eye can follow, one pane at a time, instead of the page jumping under the cursor between two frames.
- A click waits for the page to stop moving before it aims, so an app that animates its own scrolling is no longer clicked where the element used to be.
- An element only partly on screen is clicked where it can be seen; one that nothing can bring into view fails the take instead of sending the cursor off the frame.
- A button inside an
<iframe>is clicked where the page has it rather than where its own frame does. - Scrolling has its own pacing in
recording.pace:scrollBaseMs(220),scrollPerScreenMs(620),scrollMaxMs(2000),afterScrollMs(260), scaled byspeedlike every other duration.
v1.1.1 — prove an API endpoint in the recording
Update
Claude Code
claude plugin marketplace add TOMOSIA-VIETNAM/webapp-evidence
claude plugin install webapp-evidence@webapp-evidenceCursor, Codex, Gemini CLI, Antigravity
curl -fsSL https://raw.githubusercontent.com/TOMOSIA-VIETNAM/webapp-evidence/main/install.sh | bashNew
- Prove an API endpoint inside the recording: the request runs in the panel with the session the browser is holding, and the status it has to answer fails the take when it changes.
cases/— a kind of evidence that brings its own helpers is now a directory, so the next one costs a directory and a line.term.script(path)shows a script once and runs it, for a flow too long to type out.
Improved
- The terminal panel sizes itself to the command it is showing, and reveals long output at a speed an eye can follow instead of letting it scroll past between frames.
- A line wider than the panel wraps, rather than being cut off at the right edge.
- The panel is translucent, so the page behind it stays visible.
- A long command is typed in about a third of the time: a take proving one endpoint is 11.6s rather than 27.7s.
- The runbook records what a command asserted, not only that it ran.
- The runner says when an output was larger than the panel keeps, so a take that proves less than it appears to is caught before anyone relies on it.
v1.1.0 — a shell and the browser window, inside the recording
# Claude Code
claude plugin update webapp-evidence@webapp-evidence
# Cursor, Codex, Gemini CLI, Antigravity
~/.webapp-evidence/scripts/install-local.sh --updateNew
- A real shell inside the recording.
termin a step script runs commands on
the machine and waits for their output, so a take can prove the click reached
a worker, wrote a file or moved a row. Still headless. - Recording the browser window instead of the page, so what the operating
system draws is in the video: the<select>menu, the file picker,
confirm/alert, DevTools. macOS only, and it asks before taking your
machine for a minute. redact()keeps a secret out of a take — blurred, blacked out, or the
stretch cut — and out of the screenshots with it.dialog()drives an alert, a confirm or a prompt instead of letting it stop
the take.- The runbook lists the commands that ran, the dialogs the browser put up, and
what was covered, when and where.
Improved
- A caption is held long enough to take in rather than long enough to read
twice, and each of the runner's own is shown once per take instead of once
per field. - A recording runs against whatever site you name.
--ref <branch>installs from that branch on Claude Code too, and says so
when the ref never arrived.- The installer says on screen that it does not update itself.
v1.0.0 — evidence of a web app, from one sentence
Install
claude plugin marketplace add TOMOSIA-VIETNAM/webapp-evidence
claude plugin install webapp-evidence@webapp-evidenceCursor, Codex, Gemini CLI and Antigravity:
curl -fsSL https://raw.githubusercontent.com/TOMOSIA-VIETNAM/webapp-evidence/main/install.sh | bashNeeds Chrome, ffmpeg and Node on the machine.
Three skills
/webapp-evidence:recording — describe a flow, get back an mp4, screenshots of the moments that
matter, and a runbook.
- Records the screen you just changed, an MR/PR from its link, or any page from a description — no repository needed for the last one
- The cursor is visible and moves like a hand; clicks leave a ripple; the pace holds where there is something to read
- A
<select>menu and a file picker are drawn by the OS and never enter a page recording, so a subtitle along the bottom says what was chosen — held long enough to read it - Keyboard shortcuts raise a key hint (
⌘ + C) beside the element they act on - Watches the console and the network while recording; page errors land in the runbook
- The runbook carries the timeline, the captions with timestamps, and the command that reproduces the take
- Previous takes are kept as
v1,v2… and never overwritten -f gifor-f webmwhen an mp4 does not fit where it is going- One config per project, and it starts signed in from then on
/webapp-evidence:vision — read a video instead of watching it. Tiles it into sheets, one frame
every couple of seconds, each stamped mm:ss, so a finding comes back as a time you can check.
/webapp-evidence:feedback — report a problem or ask for something missing, on this tracker.
Strips the URLs, names and frames of your application before anything is drafted, and posts nothing
until you approve the text.
Platforms
Claude Code, Cursor, Codex, Gemini CLI, Antigravity. Recordings stay out of Git; attaching them is
yours to do.