demo.movie

Docs

Command line

The CLI signs in through your browser and keeps a rotating token. No key to paste.

npm install -g @profullstack/demomovie

mkdemo login
mkdemo make https://your.app --brief "sign up and create a project"
mkdemo list
mkdemo get <id> --download demo.mp4

API

Every surface uses this same API. Send an API key or a CLI token as a bearer token.

curl -X POST https://demo.movie/api/v1/demos \
  -H "authorization: Bearer $DEMO_MOVIE_TOKEN" \
  -H "content-type: application/json" \
  -d '{"url":"https://your.app","aspect":"16:9"}'

# Then poll, or stream progress:
curl -N https://demo.movie/api/v1/demos/<id>/events \
  -H "authorization: Bearer $DEMO_MOVIE_TOKEN"

MCP

Point an agent at the MCP server and it can film the feature it just shipped.

{
  "mcpServers": {
    "demo-movie": {
      "command": "npx",
      "args": ["-y", "@profullstack/demomovie-mcp"]
    }
  }
}

Signing in to your own product

A demo can sign in before it films. The password is encrypted at rest and deleted the moment the film is cut. Use a throwaway demo account, never a real one.

Self hosting

It runs with no model keys at all, on heuristics, and renders a film either way. Add an Anthropic key for the script and an ElevenLabs key for the narration.

DATABASE_URL=postgres://...
SITE_URL=https://demo.movie
APP_SECRET=<32+ random bytes>
ANTHROPIC_API_KEY=   # optional, writes the script
ELEVENLABS_API_KEY=  # optional, narrates it