Skip to main content
Glama

Record a UI walkthrough (screen recording)

vivid_record_ui
Destructive

Records scripted browser interactions as a screen-capture video with visible cursor, then uploads the result to VIVID as a video asset for editor projects and timelines.

Instructions

Record a screen-capture video of vividai.tv (or any site) by driving a local Chromium with Playwright: a scripted list of steps (navigate, move, click, type, scroll, wait) is executed with a visible cursor, smooth mouse moves and click ripples, and the result is uploaded to VIVID as a video asset ready for vivid_create_editor_project / vivid_edit_timeline (pass the returned durationMs as media[].durationMs). On VIVID sites the browser is logged into the account of VIVID_API_KEY automatically (login=true), so app pages open directly; other sites never receive the session. Runs on THIS machine: needs Google Chrome (or npx playwright install chromium) and, for mp4 output, ffmpeg (otherwise webm, which the editor handles). Default site: https://vividai.tv. Tips: onboarding on /create can be skipped with click "[data-testid=onboarding-skip]"; keep clips short (one feature per recording) and slow the pace with waitMs. Costs no credits.

Input Schema

NameRequiredDescriptionDefault
urlNoStart URL or site path (default "/dashboard").
nameNoAsset file name (without extension).
siteNoSite origin to record and log into (default vividai.tv; use https://stage.vividai.tv for staging).
loginNoSeed the browser with a session of the API-key account before opening the site (VIVID sites only; ignored elsewhere).
scaleNoDevice scale factor: 2 records 1440×900 as a crisp 2880×1800.
stepsYes
cursorNoDraw a cursor with click ripples.
formatNoauto = mp4 when ffmpeg is installed, else webm.auto
localeNoit-IT
tailMsNoStill time before stopping.
uploadNoUpload to VIVID as a permanent video asset.
headlessNofalse shows the browser window while recording.
leadInMsNoStill time after the first page loads.
viewportNoCSS viewport (default 1440×900). Use 390×844 for a phone.
outputPathNoAlso save the video to this absolute local path.
colorSchemeNodark
hideSelectorsNoCSS selectors hidden for the whole recording (banners, chat widgets).
stepTimeoutMsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.36.0

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses a lot beyond the annotations: local execution requirements (Chrome/Chromium, ffmpeg for mp4 vs webm fallback), auto-login on VIVID sites only with the session never leaked to other origins, upload-to-VIVID behavior, zero credit cost, and output format resolution. Given destructiveHint=true, it is silent on the fact that clicks/types/evaluate run for real against the target site and can cause irreversible changes there — a meaningful omission but not a contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose and mechanism, then environment requirements, then tips — a sensible order. It is a dense single block and the tips section is slightly crammed, but nearly every clause carries information an agent needs before calling a 18-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 18-parameter tool with a nested step array and no output schema, it covers runtime prerequisites, output container choice, upload/no-upload behavior, and downstream consumption of durationMs. It leaves the concrete response shape mostly implicit (only durationMs is named) and does not describe failure behavior when a non-optional step's selector never appears.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 78%, and the description still adds value: it frames steps as an action vocabulary, explains pacing via waitMs, explains login seeding semantics for VIVID vs other sites, and calls out the durationMs return the agent must reuse. A few params (locale, stepTimeoutMs, tailMs/leadInMs tuning) get no extra meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("Record a screen-capture video") plus the exact mechanism (local Chromium driven by Playwright with a scripted step list). It also names the downstream consumers (vivid_create_editor_project / vivid_edit_timeline) and the return value to pass (durationMs), which separates it cleanly from every sibling generator in the list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage context: one feature per recording, slow pace with waitMs, skip onboarding via a specific testid, and handing durationMs to the editor tools. It never states when NOT to use it (e.g. versus vivid_generate_video for synthetic footage), so it stops short of full alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.