
Company News
Socket Joins New OpenJS Program to Fund Node.js Security Work
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.
@spark-apps/quickpeak
Advanced tools
Auto-generate demo videos for your web app with AI.
npm install -g @spark-apps/quickpeak
qp http://localhost:3000
# Install dependencies
npx playwright install chromium
apt install ffmpeg # Linux
brew install ffmpeg # macOS
Add GOOGLE_API_KEY to your .env — get one free at aistudio.google.com/apikey
qp <url> [lang=xx]
| Command | Description |
|---|---|
qp http://localhost:3000 | Record demo (English) |
qp http://localhost:3000 lang=ar | Record demo (Arabic) |
qp http://localhost:3000 lang=es | Record demo (Spanish) |
qp --help | Show help |
qp http://localhost:3000
demo/plan.jsondemo/demo.mp4Optionally create quickpeak.config.json (YouTube Shorts example):
{
"lang": "en",
"video": {
"width": 1080,
"height": 1920,
"fps": 30,
"cursor": true,
"highlight": false,
"fadeIn": 0.5,
"fadeOut": 0.5,
"transition": "none",
"format": "mp4",
"preset": "fast",
"quality": 23
},
"timing": {
"minStepDuration": 1500,
"audioPadding": 500
},
"output": {
"dir": "./demo"
}
}
| Option | Default | Description |
|---|---|---|
lang | en | Language code (auto-selects voice) |
video.width | 1080 | Video width in pixels |
video.height | 1920 | Video height in pixels |
video.fps | 30 | Frames per second |
video.cursor | true | Show mouse cursor |
video.highlight | false | Dim background, highlight active element |
video.fadeIn | 0.5 | Fade in duration at video start (seconds, 0 to disable) |
video.fadeOut | 0.5 | Fade out duration at video end (seconds, 0 to disable) |
video.transition | none | Step transition effect (none or fade) |
video.format | mp4 | Output format |
video.preset | fast | FFmpeg preset (fast/medium/slow) |
video.quality | 23 | CRF (18=best, 28=smallest, 23=balanced) |
music.path | - | Path to background music MP3 |
music.volume | 0.3 | Music volume (0.0-1.0) |
music.fadeIn | 2 | Music fade in duration (seconds) |
music.fadeOut | 2 | Music fade out duration (seconds) |
Set lang in config to auto-select the best voice for that language:
| Code | Language | Voice |
|---|---|---|
en | English | en-US-AvaMultilingualNeural |
ar | Arabic | ar-LB-LaylaNeural |
es | Spanish | es-ES-ElviraNeural |
fr | French | fr-FR-DeniseNeural |
de | German | de-DE-KatjaNeural |
zh | Chinese | zh-CN-XiaoxiaoNeural |
ja | Japanese | ja-JP-NanamiNeural |
ko | Korean | ko-KR-SunHiNeural |
pt | Portuguese | pt-BR-FranciscaNeural |
ru | Russian | ru-RU-SvetlanaNeural |
hi | Hindi | hi-IN-SwaraNeural |
tr | Turkish | tr-TR-EmelNeural |
See src/voices.ts for all 60+ supported languages.
Uses Microsoft Edge TTS (free, no API key). Full voice list
| Option | Default | Description |
|---|---|---|
timing.minStepDuration | 1500 | Minimum step duration (ms) |
timing.audioPadding | 500 | Padding after audio (ms) |
output.dir | ./demo | Output directory |
Style captions by creating captions.css in your project root:
.caption {
font-family: "Arial Black", Impact, sans-serif;
font-size: 64px;
font-weight: bold;
color: #FFFF00;
-qp-highlight: #FFFFFF;
-webkit-text-stroke: 2px rgba(0, 0, 0, 0.5);
text-shadow: 3px 3px 6px rgba(0, 0, 0, 0.4);
margin-bottom: 100px;
}
| Property | Description |
|---|---|
font-family | Font face |
font-size | Size in pixels |
font-weight | bold or normal |
color | Text color (hex) |
-qp-highlight | Karaoke highlight color |
-webkit-text-stroke | Outline width and color |
text-shadow | Shadow offset |
margin-bottom | Distance from bottom |
Edit demo/plan.json before recording to customize steps:
{
"steps": [
{
"id": 1,
"action": "click",
"target": "#submit-btn",
"caption": "Click submit to save",
"duration": 2000,
"zoom": 1.2
}
]
}
| Step Property | Description |
|---|---|
action | navigate, click, type, select, check, wait, scroll |
target | CSS selector (prefer [data-testid="..."]) |
value | Text to type or option to select |
caption | Voiceover narration |
duration | Step duration in ms (auto-calculated from audio) |
zoom | Zoom factor for this step (e.g., 1.2 = 20% zoom in) |
| File | Description |
|---|---|
demo/demo.mp4 | Final video |
demo/plan.json | Editable script |
captions.css | Caption styling (project root) |
MIT
FAQs
Auto-generate demo videos for your web app with AI
The npm package @spark-apps/quickpeak receives a total of 4 weekly downloads. As such, @spark-apps/quickpeak popularity was classified as not popular.
We found that @spark-apps/quickpeak demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Company News
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.

Research
/Security News
A malicious Firefox extension fetches its payload after installation to evade detection, steal Google session cookies, and automate account takeover.