clipwise 0.6.0 → 0.6.1
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.ko.md +31 -31
- package/README.md +31 -31
- package/package.json +1 -1
- package/skills/clipwise.md +51 -13
package/README.ko.md
CHANGED
|
@@ -80,6 +80,37 @@ const frames = await renderer.composeAll(session.frames);
|
|
|
80
80
|
const mp4 = await encodeMp4(frames, scenario.output);
|
|
81
81
|
```
|
|
82
82
|
|
|
83
|
+
## Claude Code 스킬
|
|
84
|
+
|
|
85
|
+
Clipwise에는 [Claude Code](https://claude.com/claude-code) 스킬이 내장되어 있습니다. 설치 후 Claude Code에서 `/clipwise`를 입력하면 자연어로 YAML 시나리오 생성, 검증, 녹화까지 한 번에 할 수 있습니다.
|
|
86
|
+
|
|
87
|
+
### 스킬 설치
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
npx clipwise install-skill
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
`.claude/skills/clipwise.md`에 스킬 파일이 복사됩니다 (`.claude/` 디렉토리가 있으면 프로젝트 레벨, 없으면 `~/.claude/skills/`에 설치).
|
|
94
|
+
|
|
95
|
+
### 사용법
|
|
96
|
+
|
|
97
|
+
Claude Code 세션에서:
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
/clipwise
|
|
101
|
+
> http://localhost:3000 대시보드 데모 녹화해줘
|
|
102
|
+
— 로그인 버튼 클릭, 이메일/비밀번호 입력, 분석 페이지 이동
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Claude가 자동으로:
|
|
106
|
+
1. `clipwise.yaml` 시나리오 생성
|
|
107
|
+
2. `npx clipwise validate`로 검증
|
|
108
|
+
3. `npx clipwise record`로 MP4 녹화
|
|
109
|
+
|
|
110
|
+
### 업데이트
|
|
111
|
+
|
|
112
|
+
clipwise 업그레이드 후 `npx clipwise install-skill`을 다시 실행하면 최신 스킬로 업데이트됩니다.
|
|
113
|
+
|
|
83
114
|
## YAML 시나리오 형식
|
|
84
115
|
|
|
85
116
|
시나리오는 4개 섹션으로 구성됩니다: 메타데이터, 이펙트, 출력, 스텝.
|
|
@@ -403,37 +434,6 @@ VideoToolbox는 런타임에 자동 감지되며, 사용 불가 시 `libx264`로
|
|
|
403
434
|
|
|
404
435
|
[PROMPTS.md](./PROMPTS.md)에 바로 사용할 수 있는 AI 프롬프트 템플릿이 있습니다. ChatGPT나 Claude에 복붙하고 내 사이트 URL만 넣으면 YAML 시나리오를 생성해줍니다.
|
|
405
436
|
|
|
406
|
-
## Claude Code 스킬
|
|
407
|
-
|
|
408
|
-
Clipwise에는 [Claude Code](https://claude.com/claude-code) 스킬이 내장되어 있습니다. 설치 후 Claude Code에서 `/clipwise`를 입력하면 자연어로 YAML 시나리오 생성, 검증, 녹화까지 한 번에 할 수 있습니다.
|
|
409
|
-
|
|
410
|
-
### 스킬 설치
|
|
411
|
-
|
|
412
|
-
```bash
|
|
413
|
-
npx clipwise install-skill
|
|
414
|
-
```
|
|
415
|
-
|
|
416
|
-
`.claude/skills/clipwise.md`에 스킬 파일이 복사됩니다 (`.claude/` 디렉토리가 있으면 프로젝트 레벨, 없으면 `~/.claude/skills/`에 설치).
|
|
417
|
-
|
|
418
|
-
### 사용법
|
|
419
|
-
|
|
420
|
-
Claude Code 세션에서:
|
|
421
|
-
|
|
422
|
-
```
|
|
423
|
-
/clipwise
|
|
424
|
-
> http://localhost:3000 대시보드 데모 녹화해줘
|
|
425
|
-
— 로그인 버튼 클릭, 이메일/비밀번호 입력, 분석 페이지 이동
|
|
426
|
-
```
|
|
427
|
-
|
|
428
|
-
Claude가 자동으로:
|
|
429
|
-
1. `clipwise.yaml` 시나리오 생성
|
|
430
|
-
2. `npx clipwise validate`로 검증
|
|
431
|
-
3. `npx clipwise record`로 MP4 녹화
|
|
432
|
-
|
|
433
|
-
### 업데이트
|
|
434
|
-
|
|
435
|
-
clipwise 업그레이드 후 `npx clipwise install-skill`을 다시 실행하면 최신 스킬로 업데이트됩니다.
|
|
436
|
-
|
|
437
437
|
## GitHub Pages
|
|
438
438
|
|
|
439
439
|
`docs/` 폴더에 문서 사이트와 라이브 데모 대시보드가 포함되어 있습니다:
|
package/README.md
CHANGED
|
@@ -80,6 +80,37 @@ const frames = await renderer.composeAll(session.frames);
|
|
|
80
80
|
const mp4 = await encodeMp4(frames, scenario.output);
|
|
81
81
|
```
|
|
82
82
|
|
|
83
|
+
## Claude Code Skill
|
|
84
|
+
|
|
85
|
+
Clipwise ships a built-in [Claude Code](https://claude.com/claude-code) skill. Once installed, type `/clipwise` in Claude Code to generate YAML scenarios, validate, and record — all through natural language.
|
|
86
|
+
|
|
87
|
+
### Install the skill
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
npx clipwise install-skill
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
This copies the skill file to `.claude/skills/clipwise.md` (project-level if `.claude/` exists, otherwise `~/.claude/skills/`).
|
|
94
|
+
|
|
95
|
+
### Usage
|
|
96
|
+
|
|
97
|
+
In any Claude Code session:
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
/clipwise
|
|
101
|
+
> Record a demo of my dashboard at http://localhost:3000
|
|
102
|
+
— click the login button, type credentials, navigate to analytics
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Claude will:
|
|
106
|
+
1. Generate a complete `clipwise.yaml` scenario
|
|
107
|
+
2. Run `npx clipwise validate` to check for errors
|
|
108
|
+
3. Run `npx clipwise record` to produce the MP4
|
|
109
|
+
|
|
110
|
+
### Update
|
|
111
|
+
|
|
112
|
+
Re-run `npx clipwise install-skill` after upgrading clipwise to get the latest skill.
|
|
113
|
+
|
|
83
114
|
## YAML Scenario Format
|
|
84
115
|
|
|
85
116
|
A scenario has 4 sections: metadata, effects, output, and steps.
|
|
@@ -483,37 +514,6 @@ npx clipwise record my-scenario.yaml -f mp4 -o ./output
|
|
|
483
514
|
|
|
484
515
|
See [PROMPTS.md](./PROMPTS.md) for a ready-to-use prompt template. Copy-paste it to ChatGPT or Claude with your site URL, and get a working YAML scenario back.
|
|
485
516
|
|
|
486
|
-
## Claude Code Skill
|
|
487
|
-
|
|
488
|
-
Clipwise ships a built-in [Claude Code](https://claude.com/claude-code) skill. Once installed, type `/clipwise` in Claude Code to generate YAML scenarios, validate, and record — all through natural language.
|
|
489
|
-
|
|
490
|
-
### Install the skill
|
|
491
|
-
|
|
492
|
-
```bash
|
|
493
|
-
npx clipwise install-skill
|
|
494
|
-
```
|
|
495
|
-
|
|
496
|
-
This copies the skill file to `.claude/skills/clipwise.md` (project-level if `.claude/` exists, otherwise `~/.claude/skills/`).
|
|
497
|
-
|
|
498
|
-
### Usage
|
|
499
|
-
|
|
500
|
-
In any Claude Code session:
|
|
501
|
-
|
|
502
|
-
```
|
|
503
|
-
/clipwise
|
|
504
|
-
> Record a demo of my dashboard at http://localhost:3000
|
|
505
|
-
— click the login button, type credentials, navigate to analytics
|
|
506
|
-
```
|
|
507
|
-
|
|
508
|
-
Claude will:
|
|
509
|
-
1. Generate a complete `clipwise.yaml` scenario
|
|
510
|
-
2. Run `npx clipwise validate` to check for errors
|
|
511
|
-
3. Run `npx clipwise record` to produce the MP4
|
|
512
|
-
|
|
513
|
-
### Update
|
|
514
|
-
|
|
515
|
-
Re-run `npx clipwise install-skill` after upgrading clipwise to get the latest skill.
|
|
516
|
-
|
|
517
517
|
## GitHub Pages
|
|
518
518
|
|
|
519
519
|
Clipwise includes a documentation site and a live demo dashboard in the `docs/` folder. To host it:
|
package/package.json
CHANGED
package/skills/clipwise.md
CHANGED
|
@@ -64,7 +64,10 @@ steps: [] # Array of steps (min 1, first must have navigate)
|
|
|
64
64
|
- name: "Step name" # Optional label
|
|
65
65
|
captureDelay: 50 # ms to wait after actions before capturing (50-100 for snappy)
|
|
66
66
|
holdDuration: 700 # ms to hold on result (500-800 for snappy)
|
|
67
|
-
transition: none # none | fade
|
|
67
|
+
transition: none # none | fade | slide-left | slide-up | blur
|
|
68
|
+
effects: # Per-step effects override (optional)
|
|
69
|
+
zoom:
|
|
70
|
+
enabled: false # Disable zoom for this step only
|
|
68
71
|
actions: [] # Array of actions
|
|
69
72
|
```
|
|
70
73
|
|
|
@@ -168,16 +171,15 @@ steps: [] # Array of steps (min 1, first must have navigate)
|
|
|
168
171
|
|
|
169
172
|
### Effects Configuration
|
|
170
173
|
|
|
171
|
-
#### Zoom — Adaptive zoom follows cursor on clicks
|
|
174
|
+
#### Zoom — Adaptive zoom follows cursor on clicks (smart camera: auto-suppressed during scroll)
|
|
172
175
|
```yaml
|
|
173
176
|
zoom:
|
|
174
177
|
enabled: true
|
|
175
|
-
intensity:
|
|
176
|
-
# scale: 1.
|
|
177
|
-
duration:
|
|
178
|
-
easing: ease-in-out # ease-in-out | ease-in | ease-out | linear
|
|
178
|
+
intensity: light # subtle(1.15x) | light(1.25x) | moderate(1.35x) | strong(1.5x) | dramatic(1.8x)
|
|
179
|
+
# scale: 1.25 # Or use numeric value (overridden by intensity)
|
|
180
|
+
duration: 800 # Zoom animation ms
|
|
179
181
|
autoZoom:
|
|
180
|
-
followCursor: true
|
|
182
|
+
followCursor: true # Viewport pans to follow cursor position
|
|
181
183
|
transitionDuration: 300
|
|
182
184
|
padding: 200
|
|
183
185
|
```
|
|
@@ -188,7 +190,7 @@ cursor:
|
|
|
188
190
|
enabled: true
|
|
189
191
|
size: 20
|
|
190
192
|
color: "#000000"
|
|
191
|
-
speed:
|
|
193
|
+
speed: normal # fast (~72ms) | normal (~144ms) | slow (~288ms)
|
|
192
194
|
smoothing: true
|
|
193
195
|
clickEffect: true
|
|
194
196
|
clickColor: "rgba(59, 130, 246, 0.3)"
|
|
@@ -215,17 +217,16 @@ background:
|
|
|
215
217
|
```yaml
|
|
216
218
|
deviceFrame:
|
|
217
219
|
enabled: true
|
|
218
|
-
type: browser # browser |
|
|
220
|
+
type: browser # browser | iphone | ipad | android | none
|
|
219
221
|
darkMode: true
|
|
220
222
|
```
|
|
221
223
|
|
|
222
224
|
| Type | Description |
|
|
223
225
|
|------|-------------|
|
|
224
226
|
| browser | macOS browser chrome with traffic lights |
|
|
225
|
-
|
|
|
226
|
-
|
|
|
227
|
-
|
|
|
228
|
-
| android | Android with punch-hole camera |
|
|
227
|
+
| iphone | iPhone 15 Pro with Dynamic Island + home bar |
|
|
228
|
+
| ipad | iPad Pro with front camera dot |
|
|
229
|
+
| android | Android generic with punch-hole camera |
|
|
229
230
|
|
|
230
231
|
#### Keystroke HUD — Shows typed keys on screen
|
|
231
232
|
```yaml
|
|
@@ -260,6 +261,39 @@ speedRamp:
|
|
|
260
261
|
transitionFrames: 15
|
|
261
262
|
```
|
|
262
263
|
|
|
264
|
+
#### Audio Narration — Attach audio to MP4 output
|
|
265
|
+
```yaml
|
|
266
|
+
audio:
|
|
267
|
+
file: "./narration.mp3" # MP3, WAV, etc.
|
|
268
|
+
volume: 1.0 # 0.0 - 2.0 (default: 1.0)
|
|
269
|
+
fadeIn: 0 # Fade-in duration in seconds
|
|
270
|
+
fadeOut: 0 # Fade-out duration in seconds
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### Per-Step Effects Override
|
|
274
|
+
|
|
275
|
+
Override global effects on a per-step basis. Unset properties inherit from global config.
|
|
276
|
+
|
|
277
|
+
```yaml
|
|
278
|
+
effects:
|
|
279
|
+
zoom:
|
|
280
|
+
enabled: true
|
|
281
|
+
intensity: light
|
|
282
|
+
|
|
283
|
+
steps:
|
|
284
|
+
- name: "Overview"
|
|
285
|
+
effects:
|
|
286
|
+
zoom:
|
|
287
|
+
enabled: false # No zoom for this step
|
|
288
|
+
actions: [...]
|
|
289
|
+
|
|
290
|
+
- name: "Detail view"
|
|
291
|
+
effects:
|
|
292
|
+
zoom:
|
|
293
|
+
intensity: strong # Extra zoom for this step only
|
|
294
|
+
actions: [...]
|
|
295
|
+
```
|
|
296
|
+
|
|
263
297
|
### Output Presets
|
|
264
298
|
|
|
265
299
|
| Preset | Use case | Approx size (30s) |
|
|
@@ -277,6 +311,10 @@ speedRamp:
|
|
|
277
311
|
5. **Prefer async waits over fixed `wait`**: use `waitForSelector`, `waitForFunction`, `waitForResponse` instead of guessing durations
|
|
278
312
|
6. **Viewport = output**: if viewport and output dimensions differ, output will be scaled (a warning is shown)
|
|
279
313
|
7. **Mobile scenarios**: use `viewport: {width: 390, height: 844}` with `deviceFrame.type: iphone` and `output: {width: 540, height: 1080}`
|
|
314
|
+
8. **Per-step effects**: any effect property can be overridden per step — unset properties inherit from global config
|
|
315
|
+
9. **Smart camera**: zoom is automatically suppressed during scroll actions; `followCursor` pans to cursor position
|
|
316
|
+
10. **Transitions**: use `fade` or `blur` for cinematic cuts between major sections; `slide-left`/`slide-up` for sequential flows
|
|
317
|
+
11. **Audio**: audio file must exist at the specified path; only works with MP4 output format
|
|
280
318
|
|
|
281
319
|
## Timing Presets
|
|
282
320
|
|