AutoDemo
Demos as code
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
PriceFree, OSS$300–500/mo for HTML capture, per-seat$10–30/mo
Stays current after UI changesRe-runs in CI automaticallyManual re-captureManual re-record
Video + walkthrough + stillsOne run, all threeUsually one formatVideo only
Versioned in git / code reviewYesNoNo
Usable by AI agentsMCP + JSON CLINoNo
Your data stays yoursRuns on your machine/CIVendor cloudLocal

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