clickcast
Playwright browser automation, screenshots, and GIF/MP4/WebP recording for AI agents — a machine-readable JSON sidecar (selectors, timing, console errors, page state) plus a live MCP server for step-by-step browser control.
Install / Use
claude mcp add AlexKay28 -- npx -y github:AlexKay28/clickcastIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
AutomationSupported Platforms
Our assessment of clickcast
clickcast scores 83/100 on our quality scale, 2198th of 2,863 Automation skills we index.
Its MCP Server is 29 KB long, well organised into 36 sections with 34 code examples: a thorough specification that gives an agent plenty to work with.
It has 3 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated 44 days ago, so clickcast is actively maintained.
- Our last check on 2026-10-19 found the source still online.
- It is released under the Apache-2.0 license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 92/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.
AI review by kimi-k2.7-code on 2026-09-24. Automated pattern scan on 2026-09-24. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
clickcast compared with similar skills
All 4 of these similar skills score higher than clickcast; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| clickcast (this skill)by AlexKay28 | 83 | 3 | 44d ago | MCP Server |
| Agent-Reachby Panniantong | 100 | 105.7k | 4d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 78.2k | today | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.7k | today | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 90.2k | 1d ago | MCP Server |
Frequently asked questions
- How do I install clickcast?
- Run
claude mcp add AlexKay28 -- npx -y github:AlexKay28/clickcast. The install tabs above show the steps for each supported agent. - Which AI agents does clickcast work with?
- It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
- Is clickcast safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It is Apache-2.0-licensed and scores 92/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is clickcast still maintained?
- The repository was last updated 44 days ago, so clickcast is actively maintained.
Skill content
View source on GitHub🎞️ clickcast — Playwright browser automation, screenshots, and GIF/MP4/WebP recording for AI agents
Give AI agents visual + structured feedback about live web UIs — and give humans deterministic demo reels while you're at it.
What's new (v0.3.0) — live agent control via a new MCP server, pixel-level
clickcast diff, accessibility semantics fused with the pixel-grid overlay, an official CI GitHub Action, day-one Homebrew/apt packaging, and a self-healing first run. SeeCHANGELOG.mdfor the full notes.

See
docs/ONE_PAGE_NAVIGATION_ORDER_TIPS.mdfor the nine principles behind why this reel reads as legibly as it does — and the scenario template you can copy for your own reels.
clickcast drives a real browser through a website and hands back two things:
- A watchable reel — GIF / MP4 / WebP / raw frames.
- A machine-readable JSON sidecar — every step's selector, timings, per-step frame paths, discovered elements, and post-action page state (title, URL, console errors, failed requests). Versioned. See
docs/feedback-schema.md.
Point it at a URL and it will auto-discover the interactive elements and build a tour for you, or hand it a small YAML scenario for a scripted, repeatable walkthrough.
Install
One line, ready to run immediately after:
pip install clickcast && clickcast install --with-deps chromium && clickcast doctor
Broken down — pip install clickcast (requires Python ≥ 3.10) gets you the
CLI; clickcast install downloads Chromium (~one-time, ~180MB — kept out of
the pip package itself since it's versioned independently and every project
doesn't need every engine); --with-deps also pulls the system libraries
Chromium needs (Linux only, may prompt for sudo); clickcast doctor
confirms everything above actually worked.
Forgot the second step? Any command that needs a browser (auto, run,
shot, elements, mcp) detects a missing engine itself and offers to
install it right then instead of failing — say yes once and it retries
automatically. That prompt only fires in an interactive terminal; CI/scripted
runs fail fast with the exact fix command instead of hanging on stdin.
Homebrew (macOS/Linux)
brew install --build-from-source ./Formula/clickcast.rb # works today, clone this repo first
brew install AlexKay28/clickcast/clickcast # tap not bootstrapped yet -- see docs/packaging/homebrew.md
apt (Debian/Ubuntu, .deb)
bash scripts/build_deb.sh 0.2.9 && sudo dpkg -i dist-deb/clickcast_0.2.9_amd64.deb # works today, clone this repo first
sudo apt install clickcast # hosted repo not bootstrapped yet -- see docs/packaging/apt.md
Both native packages skip the Chromium download (~180MB, versioned
independently of clickcast) and never install a second ffmpeg (clickcast
already bundles one via imageio[ffmpeg]) -- run clickcast install --with-deps chromium once after either install path. Full design rationale,
what's live today vs. what needs one-time bootstrapping, and the exact
bootstrap steps: docs/packaging/homebrew.md,
docs/packaging/apt.md.
npm (clickcast + clickcast-mcp)
Two npm packages -- thin Node wrappers whose postinstall provisions an
isolated Python venv and pip-installs the pinned PyPI clickcast, since
there's no way to ship clickcast's Playwright/Pillow/ffmpeg runtime as pure
JS. Built specifically because the MCP ecosystem's install pattern is
npx <package>, not pip install:
npx -y clickcast-mcp # MCP entry point -- execs `clickcast mcp`
npx clickcast --version # general CLI wrapper
Both are published on the npm registry. To run against your working copy instead of the published version:
cd npm/clickcast-mcp && npm pack && npm install -g ./clickcast-mcp-*.tgz && clickcast-mcp --help
cd npm/clickcast && npm pack && npm install -g ./clickcast-*.tgz && clickcast --version
Full design rationale
(including why the shared provisioning code is a vendored copy rather than
a file: dependency), what's live today vs. what needs bootstrapping, and
the exact bootstrap steps: docs/packaging/npm.md.
For AI agents — copy this prompt into your chat
Paste the block below into your coding agent (Claude Code, Cursor, Copilot Chat, Codex, etc.) to teach it clickcast in one message. The agent will install the tool, verify the environment, generate a visual + machine-readable report for your project, and know how to gate CI on the results.
You are going to use `clickcast` (https://pypi.org/project/clickcast/) to visually verify
this project's frontend. It produces a watchable GIF reel + a JSON sidecar with
per-step selectors, timings, page state, error codes, and a graph of the app's
pages. Follow this exact sequence:
1. INSTALL
pip install clickcast
clickcast install --with-deps chromium # first time only, ~180 MB
clickcast doctor # bail out if this fails
2. LOAD FULL CAPABILITIES
Run `clickcast skill --json` and read the output. It lists every subcommand,
flag, docs URL, and sidecar schema pointer. Prefer this over guessing.
3. RUN A QUICK TOUR OF THE APP
If we have a running URL (dev server / staging / production):
clickcast auto <URL> --for-humans --emit-events --out tour.gif
If we have a specific flow to verify, write a YAML scenario and run:
clickcast run tour.yml --emit-events --out tour.gif
`--for-humans` gives a legible reel for the user to watch;
`--emit-events` prints a machine-readable JSONL line you can parse.
4. READ THE SIDECAR (JSON at `<gif>.json`, schema v3)
For each step, gate on the structured fields — NOT regex over prose:
- `status` : "ok" | "failed" | "skipped"
- `error_code` : "timeout" | "locator_missing" | "cross_origin" |
"navigation_error" | "selector_ambiguous" | "other"
- `skip_reason` : "optional_no_reaction" | "pre_action_failed" |
"element_vanished" | "cross_origin_bounce"
- `page_state` : title, url_after, console_errors, page_errors,
network_failed
The top-level `graph` block gives page nodes + navigation edges you can
use to reason about the app's shape, not just the sequence you ran.
5. WATCH STDERR FOR ADVISORIES
clickcast prints `⚠ <message> — see <docs-url>` lines for known anti-
patterns (nav-heavy tour, click without DOM reaction, very short reel,
cross-origin bounce, incoherent cursor styling). Each has a stable
kebab-case id you can dedupe or gate on.
6. FOR CI REGRESSION GATES
`clickcast assertions <sidecar>.json --baseline golden.json` diffs the
run against a committed baseline; nonzero exit on drift. Byte-identical
across runs (timestamps, frame paths, and URL query strings excluded).
Reference docs (all in-repo, load lazily as needed):
- Sidecar shape: https://github.com/AlexKay28/clickcast/blob/main/docs/feedback-schema.md
- Human-legible reel authoring: https://github.com/AlexKay28/clickcast/blob/main/docs/ONE_PAGE_NAVIGATION_ORDER_TIPS.md
- Agent integration: https://github.com/AlexKay28/clickcast/blob/main/docs/ai-integration.md
If something is unclear, run `clickcast <subcommand> --help` before asking me.
Once the agent has this, ask it something concrete like "run clickcast auto against http://localhost:3000 and tell me which clicks had DOM reactions" — it now has everything it needs.
Live agent control (MCP)
<!-- mcp-name: io.github.AlexKay28/clickcast -->Everything above is batch mode: record a whole tour, then read back a GIF + sidecar. clickcast mcp is the live counterpart — an MCP server that drives one action at a time (goto/click/type/scroll/...) and hands back clickcast's richer per-call payload (annotated frame, page_state, grid coordinates, an enumerated error_code) instead of a bare screenshot, so an agent can react before deciding the next step.
pip install 'clickcast[mcp]'
{
"mcpServers": {
"clickcast": { "command": "clickcast", "args": ["mcp"] }
}
}
Reach for mcp when an agent needs to explore and react live; reach for auto/run for a repeatable, one-shot artifact (CI, docs, release notes). Full tool reference, client config for Claude Code / Claude Desktop, and the schema doc: docs/mcp.md · docs/mcp-tool-schema.md.
First run — 30 seconds
clickcast auto https://example.com --out tour.gif
Produces two files:
tour.gif— the reeltour.gif.json— the AI-consumable sidecar (schema_version: 1, spec atdocs/feedback-schema.md)
For a walkthrough of how an LLM agent consumes both, see docs/ai-integration.md.
Three modes
| Mode | Command | When |
|---|---|---|
| Auto | clickcast auto <url> | Quick tour of a site; you don't care about the exact script. |
| Scenario | clickcast run tour.yml | Precise, repeatable walkthrough. Docs, release notes, CI. |
| Shot | clickcast shot <url> | One screenshot, viewport or full-page. |
All three are deterministic, headless-by-default, and CI-friendly.
Commands
auto <url>
Discover interactive elements and record a click-tour.
| Flag | Default | Notes |
|---|---|---|
| --out PATH | reel.gif | Extension picks the format. |
| --max-steps N / -N | 10 | Cap on discovered elements to click. |
| --dwell SEC | 1.0 | Hold time after each action. |
| --initial-wait SEC | 2.0 | Post-networkidle hold to let SPAs hydrate. |
| --viewport WxH | 1280x800 | |
| --device NAME | – | Playwright preset (e.g. "iPhone 15", "Pixel 8"). |
| --engine E | chromium | chromium / firefox / webkit. |
| --headful | off | Show a real browser window. |
| --lang LOCALE | – | e.g. en-US. |
| --dark | off | Emulate prefers-color-scheme: dark. |
| --fps N | 12 | |
| --format F | – | Override extension-derived format. |
| --quality 1..30 | 8 | Lower = better (higher fidelity, bigger file). |
| --loop N | 0 | 0 = infinite. |
| --no-sidecar | off | Skip the JSON. |
| -v / --verbose | – | Repeatable. |
run <scenario.yml>
Execute a YAML scenario. See Scenario format.
clickcast run docs/scenarios/spa.yml \
--out release-notes.mp4 --format mp4 \
--var base_url=https://staging.example.com
Flags: --out, --format, --headful, --slowmo MS, --url URL (retarget the first goto step — see below), --var key=value (repeatable — substitute {{ key }} inside the scenario), --no-sidecar.
CLI flags override the scenario's meta: block.
Point an existing scenario at a different environment with --url — no YAML edits, no {{ URL }} templating:
clickcast run tour.yml --url https://staging.example.com/app
--url rewrites the first goto step's URL and wins over --var URL=.... Only the first goto is touched — later goto steps are usually intra-app navigation from the entry point,
Truncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
105.7kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
78.2kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
CowAgent
47.7kOpen-source personal AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
Scrapling
90.2k🕷️ The BEST Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
