npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@spark-apps/quickpeek-cli

v1.0.5

Published

Auto-generate demo videos for your web app with AI

Readme

QuickPeek CLI

Auto-generate demo videos for your web app with AI

npm MIT Discord


Quick Start

npx @spark-apps/quickpeek-cli localhost:3000

Or install globally:

npm install -g @spark-apps/quickpeek-cli
qp localhost:3000

Requirements: ffmpeg, Groq API key (free)

Features

| Feature | Description | |---------|-------------| | AI Planning | Groq AI analyzes your app and generates demo steps | | Voice Over | Free Edge TTS narration in 60+ languages | | Karaoke Captions | Word-by-word highlighted subtitles | | Background Music | Optional music with fade in/out | | Smart Zoom | Per-step zoom for focused demos | | Media Steps | Insert custom images/videos as intro slides | | Show Downloads | Display downloaded files in the demo |

Examples

Basic

qp localhost:3000

With Options

qp localhost:3000 lang=es -d "A todo app for managing daily tasks"

| Option | Description | |--------|-------------| | lang | Voice language (en, es, ar, zh...) | | -d, --description | App description to guide AI | | --skip-voice | Reuse existing voiceover |

Configuration

Config is auto-generated on first run. Edit quickpeek.config.json to customize:

| Option | Description | Default | |--------|-------------|---------| | plan.maxSteps | Max demo steps | 8 | | video.width/height | Resolution | 1080x1920 | | video.quality | Quality 0-1 | 0.5 | | video.cursor | Show mouse cursor | true | | video.fadeIn/fadeOut | Fade duration | 0.3s | | music.path | Background music file | - | | music.volume | Music volume 0-1 | 0.3 | | output.dir | Output directory | ./demo |

Output

| File | Description | |------|-------------| | demo/demo.mp4 | Final video | | demo/plan.json | Editable script (re-run to apply changes) |

Plan Actions

Edit plan.json to customize the demo steps:

| Action | Description | Example | |--------|-------------|---------| | click | Click an element | { "action": "click", "target": "button:has-text(\"Submit\")" } | | type | Type text into input | { "action": "type", "target": "input[name='email']", "value": "[email protected]" } | | upload | Upload a file | { "action": "upload", "target": "input[type='file']", "value": "/path/to/file.png" } | | scroll | Scroll the page | { "action": "scroll", "value": "80%" } | | drag | Drag a slider | { "action": "drag", "target": "input[type='range']", "value": "50" } | | wait | Pause (no caption needed) | { "action": "wait" } | | media | Show image/video slide | { "action": "media", "target": "scale", "value": "./cover.png" } | | showDownload | Display last download | { "action": "showDownload" } |

Media Step

Insert custom images or videos as intro/outro slides:

{
  "action": "media",
  "target": "scale",
  "value": "./my-intro.png",
  "caption": "Welcome to our app demo!"
}
  • target: "scale" (fill viewport) or "center" (original size)
  • value: Path to image (png, jpg, gif, webp) or video (mp4, webm, mov)
  • Displays with dark background (#1a1a2e)

Show Download

Display the last downloaded file in the demo:

{
  "action": "showDownload",
  "caption": "Here's your generated file!"
}

Automatically captures files downloaded during previous steps.

Supported Languages

| Code | Language | Code | Language | |------|----------|------|----------| | en | English | ar | Arabic | | es | Spanish | fr | French | | de | German | zh | Chinese | | ja | Japanese | ko | Korean | | pt | Portuguese | hi | Hindi |

60+ languages supported via Edge TTS.

Caption Styling

Edit captions.css (auto-generated) to customize:

.caption {
  font-family: Arial, sans-serif;
  -webkit-text-stroke: 3px #000000;
}
.caption .regular {
  font-size: 56px;
  color: #FFFFFF;
}
.caption .highlight {
  font-size: 64px;
  color: #FFFF00;
}

MIT License - Made with ☕ by Spark Apps