Open source · MIT · No telemetry
Your product changed.
Your demo already knows.
AutoDemo turns a running web app into demo videos, interactive walkthroughs, and marketing captures — from one command. Author scenarios in plain English with any LLM, or deterministically in YAML. Re-generate everything in CI on every merge.
curl -fsSL https://raw.githubusercontent.com/praveen-palanisamy/autodemo/main/install.sh | bash
or zero-install: bunx @praveen-palanisamy/autodemo demo "Sign up and open the dashboard" --url http://localhost:3000
Watch it work — this video was generated by AutoDemo, in CI, about this site
Every deploy of this page re-records its own demo. That is the whole point: demos that can never go stale.
How it works
1 · Describe
Plain English or YAML
autodemo demo "Sign up, create a project, open the dashboard" — or commit a
deterministic .autodemo.yml scenario next to your code.
2 · Run
Real browser, real app
Playwright drives your actual product — local dev, preview deploy, or production — with a
visible cursor, click rings, human-paced typing, and auth state support.
3 · Ship
Every artifact, one run
video.mp4 · interactive index.html walkthrough ·
named assets/*.png marketing captures · reproducible run.json.
Built for humans and AI agents
Bring any LLM
Claude, OpenAI, Gemini, Groq, or fully local via Ollama/vLLM. Auto-detected from your env —
and optional: deterministic scenarios need no LLM at all.
CI-native
A 5-line GitHub Action regenerates demos on every merge. A failing demo run is a failing
user flow — your demo doubles as a smoke test.
MCP for agents
autodemo mcp lets Cursor, Claude Code, and Codex agents generate and run demos
to show their work — videos on every PR.
Versioned with your code
Scenarios live in git, get code-reviewed, and diff like code. No browser extensions, no
vendor cloud, no per-seat pricing. Ever.
Authenticated flows
Reusable browser storage state means logged-in demos run against emulators, previews, or
production without manual logins.
Marketing-grade output
Dev overlays hidden, loading noise trimmed, named region captures for your homepage and
launch posts — straight from the real UI.
Demos as code
# .autodemo.yml — committed next to your app
scenarios:
signup:
description: "Signup → first project"
steps:
- type: goto
url: /signup
- type: act # AI step (any LLM)
instruction: "Sign up with a new email and password"
- type: click # deterministic step
selector: "[data-testid=new-project]"
- type: waitFor
text: "Dashboard"
- type: screenshot # named marketing capture
name: dashboard-hero
selector: "[data-testid=dashboard]"
# Run locally
autodemo run signup --url http://localhost:3000
# Or in CI (.github/workflows/demos.yml)
- uses: praveen-palanisamy/autodemo@v0
with:
url: http://localhost:3000
Why not a demo SaaS or a screen recorder?
| AutoDemo | Demo SaaS | Screen recorder | |
|---|---|---|---|
| Price | Free, OSS | $300–500/mo for HTML capture, per-seat | $10–30/mo |
| Stays current after UI changes | Re-runs in CI automatically | Manual re-capture | Manual re-record |
| Video + walkthrough + stills | One run, all three | Usually one format | Video only |
| Versioned in git / code review | Yes | No | No |
| Usable by AI agents | MCP + JSON CLI | No | No |
| Your data stays yours | Runs on your machine/CI | Vendor cloud | Local |
Need hosted analytics, branching demos, and a no-code editor? The SaaS tools are great at that — AutoDemo is for teams who want demos to be build artifacts.
Get started in 60 seconds
# 1. Install (macOS / Linux / WSL)
curl -fsSL https://raw.githubusercontent.com/praveen-palanisamy/autodemo/main/install.sh | bash
# 2. Point it at any running web app
autodemo demo "Show the signup flow" --url http://localhost:3000
# 3. Open the artifacts
# .autodemo-out/demo/latest/video.mp4
# .autodemo-out/demo/latest/index.html