demofly
v0.2.11
Published
CLI for demofly — automated demo video generation
Readme
demofly
Automated demo video generation from the command line. Record browser interactions, generate narration with text-to-speech, and assemble polished demo videos — all in one workflow.
Installation
npm install -g demoflyRequires Node.js 22 or later.
Quick Start
# Initialize prerequisites (Playwright, ffmpeg, TTS models)
demofly init
# Generate a demo (record + narrate + assemble)
demofly generate my-demo --record
# Push to the cloud
demofly push my-demoCommands
Core Workflow
| Command | Description |
|---------|-------------|
| demofly init | Install prerequisites (Playwright, ffmpeg, Kokoro TTS model) |
| demofly generate <demo> | Record, narrate, and assemble a demo video |
| demofly push <demo> | Push a completed demo to the demofly cloud |
| demofly status | Check prerequisite status without installing |
Generate Options
--record Record browser interactions with Playwright
--audio Generate narration audio only
--video Record video only (skip audio)
--assemble Full intelligent assembly (align + retiming)
--scene <id> Generate audio for a specific scene
--voice <name> TTS voice (e.g., "heart", "aria")
--provider <provider> TTS provider (kokoro, elevenlabs, openai)
--speed <multiplier> TTS speed multiplier (default: 1.0)
--no-audio Skip TTS generation
--verbose Show detailed debug outputAuthentication
demofly auth login # Device code flow (default)
demofly auth login --browser # OAuth browser flow
demofly auth login --otp # Email OTP
demofly auth logout # Clear credentials
demofly auth status # Check login stateDemo Management
demofly demos list # List local and cloud demos
demofly demos get <name> # Get demo details
demofly demos update <name> # Update demo metadata
demofly demos delete <name> # Delete a demo
demofly demos open <name> # Open demo in browserVoice Selection
demofly voices list # List available TTS voices
demofly voices select # Choose a default voice interactivelyUtilities
demofly version # Print CLI version
demofly update # Update to latest version
demofly update --check # Check for updates without installingVoices
Local (free, always available)
Powered by Kokoro — runs entirely on your machine, no API key needed.
| Voice | Gender | |-------|--------| | heart | Female | | bella | Female | | nicole | Female | | nova | Female | | sarah | Female | | adam | Male | | michael | Male |
Cloud (Pro)
With a Pro subscription, access premium voices from ElevenLabs and OpenAI. Run demofly voices list to see all available options.
Project Structure
After running demofly init, a demofly/ directory is created in your project root. Each demo gets its own subdirectory:
demofly/
└── my-demo/
├── demo.spec.ts # Playwright test script
├── playwright.config.ts # Playwright configuration
├── proposal.md # Demo proposal and metadata
├── script.md # Demo script outline
├── narration.md # Scene-by-scene narration for TTS
├── demofly.json # Demo config (cloud sync ID)
├── audio/ # Generated TTS audio per scene
└── recordings/ # Recorded video, timing data, final output
├── video.webm
├── timing.json
└── final.mp4Claude Code Integration
Demofly works with Claude Code to create demos conversationally. Running demofly init installs the Playwright MCP plugin so Claude Code can drive the browser and record demos for you.
Configuration
Default Voice
Set with demofly voices select or pass --voice and --provider flags per command. Stored in ~/.config/demofly/config.json.
Credentials
Authentication tokens are stored in ~/.demofly/credentials with restricted file permissions.
Environment Variables
| Variable | Description |
|----------|-------------|
| DEMOFLY_URL | Override the API base URL (default: https://app.demofly.ai) |
Links
- Website: demofly.ai
- Issues: GitHub Issues
License
MIT
