Chrome Devtools Mcp
MCP server for Chrome DevTools
Agentic video generation with byte-stable local rendering, scene-linked narration, and reviewed capability plugins.
Agentic video generation. Feed a skill URL to your AI agent — it captures, authors a spec, runs the gates, and renders a pixel-perfect MP4. The core runs fully locally with no keys; reviewed plugins can opt into explicitly declared external services.
Same spec + same machine = byte-identical MP4, every time.
Part of CosmicStack.AI.
Paste the raw Markdown skill URL into your AI agent:
https://lazy-frames.cosmicstack.ai/skill.md
For example: Read this skill, then make a promo video for https://example.com.
npm install lazy-frames
Then run any command via npx:
npx lazy doctor npx lazy capture https://example.com projects/acme npx lazy render projects/acme
git clone https://github.com/cosmicstack-labs/lazy-frames.git cd lazy-frames npm install && npm run build node packages/cli/dist/index.js doctor
| Dependency | Required for | Check |
|---|---|---|
| Node.js ≥ 20 | CLI + engine | node --version |
| ffmpeg + ffprobe | encoding + audio | ffmpeg -version |
| Google Chrome | headless rendering | lazy doctor (Windows: Chrome/Edge in Program Files, or CHROME_PATH) |
| Python 3 | audio sidecar (music, TTS, SFX) | python3 --version or python --version; override with LAZY_PYTHON |
| Local TTS | narration (say or Windows SAPI) |
lazy doctor |
ELEVENLABS_API_KEY |
Optional ElevenLabs plugin | lazy doctor |
Run npx lazy doctor to verify all providers and see your hardware tier.
npx lazy capture https://example.com projects/acme npx lazy snapshot projects/acme --update npx lazy check projects/acme npx lazy preview projects/acme # review in browser # ... approve ... npx lazy render projects/acme # byte-stable MP4
lazy capture writes screenshots @2x, palette, copy blocks, fonts, logo, and a starter spec.json.
npx lazy gen image -p projects/cine --seed 21 --style ridge --name r01 npx lazy gen music -p projects/cine --mood calm --bpm 90 --seed 21 --name bgm # write spec.json referencing assets/gen/r01.png + r01.depth.png npx lazy render projects/cine
The Lazy Frames Plugin Marketplace indexes folder-owned, schema-validated extensions and their exact permissions. ElevenLabs is the only plugin included by default; running install grants project-scoped approval for external access:
npx lazy plugin install elevenlabs -p projects/cine export ELEVENLABS_API_KEY="your-key" npx lazy script projects/cine --provider elevenlabs --voice YOUR_VOICE_ID --apply npx lazy render projects/cine
Each narration beat is anchored with sceneId and offsetMs, so the spoken line starts on the intended screen. Generated audio is normalized to canonical WAV and cached; the API key is never written to project files. Plugin dependencies are fingerprint-locked in the project, while consent is stored separately as a user-local, project-scoped approval.
Browse 16 plugins across voice, storytelling, visuals, audio, captions, and delivery, or run npx lazy plugin search. The other integrations are installable scaffolds: their manifests and permission locks work now, while execution remains blocked until a reviewed adapter ships.
Contributors add one self-contained plugins/<id>/manifest.json folder and run npm run plugins:build; the CLI registry, machine index, marketplace card, and detail page are generated from that folder.
| Command | What it does |
|---|---|
lazy doctor |
Environment + provider capability report |
lazy capture <url> [project] |
Capture a website → screenshots, palette, copy, starter spec |
lazy gen image |
Generate procedural still + matching depth map |
lazy gen music |
Generate procedural music WAV |
lazy gen tts |
Generate TTS narration WAV (macOS say or Windows SAPI) |
lazy script <project> |
Draft editable, scene-linked narration beats |
lazy plugin search |
Search reviewed plugins by name or capability |
lazy plugin info <id> |
Inspect status, provider, permissions, and detail URL |
lazy plugin install <id> |
Install a fingerprinted plugin into a project |
lazy check <project> |
Validate spec + run snapshot & determinism gates |
lazy snapshot <project> --update |
Establish/refresh the regression baseline |
lazy render <project> |
Render to MP4 (byte-stable, with audio) |
lazy preview <project> |
Scrubbable timeline preview at localhost:4173, with mixed audio when the spec has it |
| Type | What it does |
|---|---|
typography |
Text reveals: titles, quotes, lockups (4 reveal styles) |
stat-hit |
Count-up numbers, labels, bars |
browser-frame |
Screenshot in a browser chrome mockup with cursor |
ui-callout |
Screenshot with dimmed mask, hotspot spotlight, label |
atmosphere |
Drifting gradient blobs — ambient backdrops |
parallax |
2.5D camera move over a still (flat or depth-map mode) |
video-layer |
Footage playback with trim, speed, grade |
three-scene |
Deterministic 3D: cube/ico/grid/particles (canvas 2D) |
Plus: 7 transitions (cut, fade, dissolve, whip-pan, light-leak, dip-to-black, luma-wipe), stage-level CSS grade presets, output-level 3D LUT pipeline, and declarative audio (narration + music + SFX).
Lazy Frames ships with a complete agent skill. Point any coding agent at skill/SKILL.md — it contains the full routing rules, agent contract, and reference docs. The agent reads the skill (not the source code) and knows how to capture, author, check, preview, and render.
skill/
SKILL.md ← entry point + routing + agent contract
references/
spec-format.md ← full spec schema
scene-types.md ← all 8 scene types
workflows.md ← website-promo / cinematic / edit
cli.md ← every CLI command
gates.md ← determinism + snapshot gates
Same spec + same machine = byte-identical MP4 (SHA-256 verified). Enforced by:
--jitless — V8 interpreter only (no JIT nondeterminism)--use-angle=swiftshader — software rendering (no GPU variance)putImageData for canvas scenes (no skia compositing nondeterminism)+bitexact, fixed threads)examples/demo — typography + stat-hit (engine proof)examples/cinematic — depth-parallax + video-layer + narration + musicexamples/showreel — grade + LUT + transitions + SFX + 3D + beatsprojects/web-demo — website capture → promonpm run verify:demo # byte-stability (two renders, sha256 compare) npm run verify:cinematic # gen assets + gates + audio determinism
spec.json (typed JSON) ├─ @lazy/engine compile spec → HTML composition + channel data ├─ @lazy/renderer headless Chrome (jitless + swiftshader) → frames → ffmpeg → MP4 ├─ @lazy/capture site screenshots + palette/copy/font/logo extraction ├─ @lazy/gen-sidecar Python: procedural music, TTS (say), SFX synthesis └─ @lazy/cli lazy capture | gen | check | snapshot | render | preview | doctor
MIT © CosmicStack Labs
MCP server for Chrome DevTools
Open-source browser automation MCP server. Control your real Chrome from any AI agent.
Reverse engineer anything from your terminal or agent with one CLI and MCP server.
Matt Pocock's agent skills for real engineering
Neue Version verfügbar.