@spark-apps/quickpeek 1.2.3 → 1.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,8 +1,7 @@
1
1
  [license-link]: ./LICENSE
2
2
  [privacy-link]: ./PRIVACY.md
3
3
  [discord-link]: https://discord.gg/mAjHWE3mSp
4
- [stars-link]: ../../stargazers
5
- [issues-link]: ../../issues
4
+ [coffee-link]: https://buymeacoffee.com/spark88
6
5
 
7
6
  <div align="center">
8
7
 
@@ -15,7 +14,8 @@
15
14
  [![npm](https://img.shields.io/npm/v/@spark-apps/quickpeek?style=flat-square&logo=npm&logoColor=white&color=crimson)](https://www.npmjs.com/package/@spark-apps/quickpeek)
16
15
  [![MIT](https://img.shields.io/badge/License-MIT-blueviolet?style=flat-square)][license-link]
17
16
  [![Discord](https://img.shields.io/badge/Discord-Join-5865F2?style=flat-square&logo=discord&logoColor=white)][discord-link]
18
- [![GitHub Stars](https://img.shields.io/github/stars/muammar-yacoob/quickpeek?style=flat-square)][stars-link]
17
+
18
+ [![Listed on Sellular](https://sellular.online/badge/quickpeek.svg)](https://sellular.online/badge/quickpeek/go)
19
19
 
20
20
  </div>
21
21
 
@@ -23,18 +23,37 @@
23
23
 
24
24
  ## Quick Start
25
25
 
26
+ Nothing to install:
27
+
28
+ ```bash
29
+ npx @spark-apps/quickpeek https://your-app.com
30
+ ```
31
+
32
+ Or install it for repeat use:
33
+
26
34
  ```bash
27
35
  npm install -g @spark-apps/quickpeek
28
36
  qp localhost:3000
29
37
  ```
30
38
 
31
- **Requirements:** [ffmpeg](https://ffmpeg.org/download.html), [Groq API key](https://console.groq.com/keys) (free)
39
+ **Requirements:** [ffmpeg](https://ffmpeg.org/download.html). Nothing else. The AI
40
+ runs through QuickPeek's hosted relay, so there is no API key to get.
41
+
42
+ **Free tier:** 5 videos on an unconfirmed email, then 10 a day once you confirm
43
+ it. No card either way. The CLI asks for an address on the first run because the
44
+ AI planner runs on our servers and is metered per account; over
45
+ [MCP](#mcp-server) no account is needed at all, because your own model does the
46
+ writing. A free video of 20 seconds or under comes out clean; a longer free video
47
+ carries a QuickPeek watermark. The hosted web recorder at quickpeek.co is
48
+ deliberately different: there, free videos are capped at 20 seconds and are
49
+ always watermarked. [docs/plans-and-pricing.md](docs/plans-and-pricing.md) sets
50
+ the two side by side.
32
51
 
33
52
  ## Features
34
53
 
35
54
  | Feature | Description |
36
55
  |---------|-------------|
37
- | **AI Planning** | Groq AI analyzes your app and generates demo steps |
56
+ | **AI Planning** | AI analyzes your app and generates demo steps |
38
57
  | **Script Mode** | Provide your own narration script, AI maps it to UI actions |
39
58
  | **Capture Mode** | Record your own interactions → replayable plan.json |
40
59
  | **Voice Over** | Free Edge TTS narration in 60+ languages |
@@ -45,13 +64,13 @@ qp localhost:3000
45
64
 
46
65
  ## Examples
47
66
 
48
- ### Basic — AI generates the plan
67
+ ### Basic: AI generates the plan
49
68
 
50
69
  ```bash
51
70
  qp localhost:3000
52
71
  ```
53
72
 
54
- ### Script mode — you write the narration
73
+ ### Script mode: you write the narration
55
74
 
56
75
  ```bash
57
76
  qp localhost:3000 --script narration.txt
@@ -61,12 +80,12 @@ Script file format (one caption per line, `#` for comments):
61
80
 
62
81
  ```
63
82
  # My app demo
64
- We start on the dashboard — your main workspace.
83
+ We start on the dashboard, your main workspace.
65
84
  Let's search for a customer by typing their name.
66
85
  Click the result to open their profile.
67
86
  ```
68
87
 
69
- ### Capture mode — record your own interactions
88
+ ### Capture mode: record your own interactions
70
89
 
71
90
  ```bash
72
91
  qp capture localhost:3000
@@ -175,6 +194,40 @@ Edit `demo/plan.json` to customize your demo. Each step uses one of these action
175
194
 
176
195
  **Target shortcuts:** For buttons and links, use simplified text like `"download"` or `"extract frame"` instead of CSS selectors.
177
196
 
197
+ ## MCP Server
198
+
199
+ QuickPeek ships an MCP server (`quickpeek-mcp`) so an AI agent can record a demo
200
+ directly, with no shelling out to the CLI.
201
+
202
+ ```bash
203
+ claude mcp add quickpeek -- npx -y --package=@spark-apps/quickpeek quickpeek-mcp
204
+ ```
205
+
206
+ Or add it by hand, for any MCP client:
207
+
208
+ ```json
209
+ {
210
+ "mcpServers": {
211
+ "quickpeek": {
212
+ "command": "npx",
213
+ "args": ["-y", "--package=@spark-apps/quickpeek", "quickpeek-mcp"]
214
+ }
215
+ }
216
+ }
217
+ ```
218
+
219
+ Published on the [official MCP registry](https://registry.modelcontextprotocol.io)
220
+ as `co.quickpeek/quickpeek`.
221
+
222
+ **9 tools:** `generate_demo`, `generate_demo_from_script`, `list_demos`,
223
+ `get_demo_config`, `list_voices`, `open_in_editor`, `check_account`, and the
224
+ `start_auth` / `finish_auth` pair for recording an app you have to log into.
225
+
226
+ The server never calls an AI itself. It hands the planning and narration prompts
227
+ back to you, the calling model, and takes your answer as a parameter, so a demo
228
+ costs you no QuickPeek quota and no second-rate model. That is also why this path
229
+ needs no account at all for the first 5 videos, where the CLI asks for an email.
230
+
178
231
  ## Output
179
232
 
180
233
  | File | Description |
@@ -188,12 +241,10 @@ Edit `demo/plan.json` to customize your demo. Each step uses one of these action
188
241
 
189
242
  ## 🌱 Support & Contributions
190
243
 
191
- ⭐ **Star the repo** & I power up like Mario 🍄
192
244
  ☕ **Devs run on coffee** - [Buy me one?][coffee-link]
193
- 💖 **Sponsor** [Your support][stars-link] helps maintain and improve the tool<br>
194
245
  💰 **Crypto tips welcome** - [Tip in crypto](https://tip.md/muammar-yacoob)
195
- 🤝 **Contributions are welcome** - [🍴 Fork][fork-link], improve, PR!
196
- 🎥 **Need help?** <img src="https://img.icons8.com/color/20/youtube-play.png" alt="YouTube" width="20" height="20" style="vertical-align: middle;"> [Setup Tutorial][vid-link] • <img src="https://img.icons8.com/color/20/discord--v2.png" alt="Discord" width="20" height="20" style="vertical-align: middle;"> [Join Discord][discord-link]
246
+ 🎬 **See it work** - [Watch a demo](https://www.youtube.com/shorts/HaibrNvJknY)
247
+ 🐛 **Found a bug or want a feature?** <img src="https://img.icons8.com/color/20/discord--v2.png" alt="Discord" width="20" height="20" style="vertical-align: middle;"> [Join Discord][discord-link] - the repo is private, so Discord is the way in.
197
248
 
198
249
  <div align="center">
199
250
 
@@ -0,0 +1,32 @@
1
+ {
2
+ "_comment": "Every track here must be CC0 / public domain: QuickPeek redistributes these inside the published package, so any attribution or share-alike condition would propagate to every user of the tool. Record provenance for anything added. Sourced from VidLet's vetted set (assets/music), same artist, same licence.",
3
+ "tracks": [
4
+ {
5
+ "file": "calm-drifting-piano.mp3",
6
+ "title": "Drifting Piano",
7
+ "artist": "HoliznaCC0",
8
+ "license": "CC0 1.0 Universal",
9
+ "source": "https://freemusicarchive.org/music/holiznacc0/background-music",
10
+ "mood": "calm",
11
+ "duration": 110.473
12
+ },
13
+ {
14
+ "file": "upbeat-spring-on-the-horizon.mp3",
15
+ "title": "Spring On The Horizon",
16
+ "artist": "HoliznaCC0",
17
+ "license": "CC0 1.0 Universal",
18
+ "source": "https://freemusicarchive.org/music/holiznacc0/background-music",
19
+ "mood": "corporate",
20
+ "duration": 91.777
21
+ },
22
+ {
23
+ "file": "lofi-roof-tops.mp3",
24
+ "title": "Roof Tops",
25
+ "artist": "HoliznaCC0",
26
+ "license": "CC0 1.0 Universal",
27
+ "source": "https://freemusicarchive.org/music/holiznacc0/summer-air-lo-fi",
28
+ "mood": "lofi",
29
+ "duration": 214.441
30
+ }
31
+ ]
32
+ }
@@ -6,10 +6,11 @@
6
6
  pointer-events: none;
7
7
  }
8
8
 
9
- [data-qp-highlight] {
10
- position: relative !important;
11
- z-index: 999999 !important;
12
- outline: 3px solid #ffd700 !important;
13
- outline-offset: 2px !important;
14
- border-radius: 8px !important;
15
- }
9
+ /*
10
+ * The ring itself is drawn as a body-level element by applyHighlight, sized
11
+ * to the target's card rather than to the words inside it. Styling the target
12
+ * element directly is deliberately NOT done any more: an ancestor with
13
+ * overflow:hidden clipped it away on exactly the card lists it was meant for,
14
+ * and where it did survive it drew a second ring on top of the floating one,
15
+ * which is what made the highlight look thick and cramped.
16
+ */