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.mp4API
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