with one click
record-video
Record and upload a short browser interaction video artifact
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Record and upload a short browser interaction video artifact
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Deploy your own Open-Inspect instance. Use when the user wants to set up, deploy, or onboard to Open-Inspect. Guides through repository setup, credential collection, Terraform deployment, and verification with user handoffs.
Upload an existing screenshot, chart, or generated image to the Open-Inspect session
Verify application UI changes with uploaded screenshot or video artifacts
| name | record-video |
| description | Record and upload a short browser interaction video artifact |
Use this skill when a UI verification depends on interaction over time: opening menus, clicking through flows, dragging, typing, navigation, loading states, transitions, or animation.
Use agent-browser record as the primary recorder. Record directly to an .mp4 path so
agent-browser encodes the recording as a silent MP4 that can be uploaded with upload-media.
agent-browser open.agent-browser snapshot -i to inspect accessible names/selectors before recording.agent-browser record start <path>.mp4.agent-browser record stop.ffprobe to read actual encoded dimensions and duration before upload.artifactId and what interaction was verified.set -e
agent-browser open "$URL"
agent-browser set viewport 1512 982
agent-browser snapshot -i
STARTED_AT_MS=$(date +%s%3N)
agent-browser record start /tmp/opencode/demo.mp4
recording_started=1
cleanup_recording() {
if [ "${recording_started:-0}" = "1" ]; then
agent-browser record stop || true
fi
}
trap cleanup_recording EXIT
interaction_exit_code=0
agent-browser click "[data-testid=settings]" || interaction_exit_code=$?
agent-browser wait 1000 || interaction_exit_code=$?
agent-browser record stop
recording_started=0
trap - EXIT
ENDED_AT_MS=$(date +%s%3N)
PROBE_JSON=$(ffprobe -v error -print_format json -show_streams -show_format /tmp/opencode/demo.mp4)
DURATION_MS=$(node -e 'const p=JSON.parse(process.argv[1]); const v=(p.streams||[]).find((s)=>s.codec_type==="video")||{}; const d=Number(v.duration ?? p.format?.duration); console.log(Math.max(1, Math.round(d * 1000)));' "$PROBE_JSON")
DIMENSIONS=$(node -e 'const p=JSON.parse(process.argv[1]); const v=(p.streams||[]).find((s)=>s.codec_type==="video")||{}; console.log(JSON.stringify({width:Number(v.width),height:Number(v.height)}));' "$PROBE_JSON")
upload-media /tmp/opencode/demo.mp4 \
--artifact-type video \
--caption "What this recording verifies" \
--source-url "$URL" \
--duration-ms "$DURATION_MS" \
--recording-started-at "$STARTED_AT_MS" \
--recording-ended-at "$ENDED_AT_MS" \
--dimensions "$DIMENSIONS" \
--truncated false \
--has-audio false
exit "$interaction_exit_code"
agent-browser record stop after starting.upload-media returned an artifact ID.[data-testid=...], [data-clear-completed], or #todo-title.
Avoid fragile text selectors when labels contain apostrophes or dynamic text.ffprobe metadata from the
encoded MP4.agent-browser record stop to clear any active recording, then
upload any available MP4.