scr
3
总安装量
1
周安装量
#58189
全站排名
安装命令
npx skills add https://github.com/yarlson/scr --skill scr
Agent 安装分布
opencode
1
codex
1
claude-code
1
Skill 文档
Capture terminal screenshots by running commands through ttyd + headless Chrome, executing scripted keypresses, saving PNG sequences.
Syntax
scr [flags] <command> [script]
Flags
| Flag | Default | Purpose |
|---|---|---|
-o |
./screenshots |
Output directory |
-i |
500ms |
Screenshot interval |
-t |
60s |
Timeout |
-p |
7681 |
ttyd port |
-v |
false |
Verbose |
Script Actions
| Action | Syntax | Behavior |
|---|---|---|
| Type | Type 'text' |
Type text (50ms/char default) |
| Type speed | Type@30ms 'text' |
Type with custom per-char delay |
| Sleep | Sleep 500ms |
Pause for duration (ms or s) |
| Key | Enter |
Press key once |
| Key repeat | Down 3 |
Press key N times |
| Key delay | Enter@200ms |
Delay before keypress |
| Ctrl combo | Ctrl+C |
Send control character |
Supported Keys
Enter Tab Escape Space Backspace Delete Up Down Left Right Home End PageUp PageDown
Common Patterns
Static capture (no interaction)
scr "ls -la"
scr "git status"
scr "cat README.md"
Type and execute
scr bash "Type 'echo hello' Enter"
scr bash "Type 'npm test' Enter Sleep 5s"
Menu navigation (fzf, gum, etc.)
scr "seq 1 20 | fzf" "Down 5 Enter"
scr "gum choose A B C" "Down Down Enter"
Editors
scr vim "Type 'i' Type 'Hello' Escape Type ':wq' Enter"
scr nano "Type 'Hello' Ctrl+X Type 'y' Enter"
REPLs
scr python3 "Type 'print(1+1)' Enter Sleep 500ms Ctrl+D"
scr node "Type '2+2' Enter Sleep 300ms Type '.exit' Enter"
Long-running processes
scr htop "Sleep 3s Ctrl+C"
scr -t 120s "npm run build" "Sleep 60s"
Custom output
scr -o ./docs/images "git log --oneline"
scr -i 200ms bash "Type 'ls' Enter"
Error Handling
Parse errors include position:
Error: parse script: position 23: expected quoted string after Type
Unknown key:
Error: unknown key 'Foo' at position 15; valid keys: Enter, Tab, ...
Prerequisites
Requires ttyd in PATH:
# macOS
brew install ttyd
# Linux
apt-get install ttyd
Chrome/Chromium must be available (chromedp auto-detects).
Output
Screenshots saved as screenshot_001.png, screenshot_002.png, etc.
Capture sequence:
- Initial terminal state
- Periodic snapshots (per
--interval) - Final state after script completes