scr

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese
Capture terminal screenshots by running commands through ttyd + headless Chrome, executing scripted keypresses, saving PNG sequences.
通过ttyd + 无头Chrome运行命令、执行脚本化按键操作、保存PNG序列来捕获终端截图。

Syntax

语法

scr [flags] <command> [script]
scr [flags] <command> [script]

Flags

标志参数

FlagDefaultPurpose
-o
./screenshots
Output directory
-i
500ms
Screenshot interval
-t
60s
Timeout
-p
7681
ttyd port
-v
false
Verbose
标志默认值用途
-o
./screenshots
输出目录
-i
500ms
截图间隔
-t
60s
超时时间
-p
7681
ttyd 端口
-v
false
详细日志模式

Script Actions

脚本操作

ActionSyntaxBehavior
Type
Type 'text'
Type text (50ms/char default); supports spaces + ASCII punctuation
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
操作语法格式行为说明
输入文本
Type 'text'
输入文本(默认50ms/字符);支持空格和ASCII标点符号
自定义输入速度
Type@30ms 'text'
按自定义的单字符延迟输入文本
暂停
Sleep 500ms
暂停指定时长(支持ms或s单位)
按键
Enter
按下指定按键一次
重复按键
Down 3
按下指定按键N次
延迟按键
Enter@200ms
延迟指定时长后按下按键
Ctrl组合键
Ctrl+C
发送控制字符

Supported Keys

支持的按键

Enter
Tab
Escape
Space
Backspace
Delete
Up
Down
Left
Right
Home
End
PageUp
PageDown

Enter
Tab
Escape
Space
Backspace
Delete
Up
Down
Left
Right
Home
End
PageUp
PageDown

Common Patterns

常见使用场景

Static capture (no interaction)

静态捕获(无交互)

bash
scr "ls -la"
scr "git status"
scr "cat README.md"
bash
scr "ls -la"
scr "git status"
scr "cat README.md"

Type and execute

输入并执行命令

bash
scr bash "Type 'echo hello' Enter"
scr bash "Type \"echo 'hello / ?'\" Enter"
scr bash "Type 'npm test' Enter Sleep 5s"
bash
scr bash "Type 'echo hello' Enter"
scr bash "Type \"echo 'hello / ?'\" Enter"
scr bash "Type 'npm test' Enter Sleep 5s"

Menu navigation (fzf, gum, etc.)

菜单导航(fzf、gum等工具)

bash
scr "seq 1 20 | fzf" "Down 5 Enter"
scr "gum choose A B C" "Down Down Enter"
bash
scr "seq 1 20 | fzf" "Down 5 Enter"
scr "gum choose A B C" "Down Down Enter"

Editors

编辑器操作

bash
scr vim "Type 'i' Type 'Hello' Escape Type ':wq' Enter"
scr nano "Type 'Hello' Ctrl+X Type 'y' Enter"
bash
scr vim "Type 'i' Type 'Hello' Escape Type ':wq' Enter"
scr nano "Type 'Hello' Ctrl+X Type 'y' Enter"

REPLs

交互式解释器(REPL)

bash
scr python3 "Type 'print(1+1)' Enter Sleep 500ms Ctrl+D"
scr node "Type '2+2' Enter Sleep 300ms Type '.exit' Enter"
bash
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

长时间运行的进程

bash
scr htop "Sleep 3s Ctrl+C"
scr -t 120s "npm run build" "Sleep 60s"
bash
scr htop "Sleep 3s Ctrl+C"
scr -t 120s "npm run build" "Sleep 60s"

Custom output

自定义输出设置

bash
scr -o ./docs/images "git log --oneline"
scr -i 200ms bash "Type 'ls' Enter"

bash
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, ...
解析错误会包含位置信息:
Error: parse script: position 23: expected quoted string after Type
未知按键错误:
Error: unknown key 'Foo' at position 15; valid keys: Enter, Tab, ...

Prerequisites

前置要求

Requires
ttyd
in PATH. If installed via Homebrew,
ttyd
is installed automatically as a dependency; otherwise install
ttyd
separately.
Chrome/Chromium must be available (chromedp auto-detects).
系统PATH中需要包含
ttyd
。如果通过Homebrew安装,
ttyd
会作为依赖自动安装;否则需要单独安装
ttyd
必须安装Chrome/Chromium(chromedp会自动检测)。

Output

输出结果

Screenshots saved as
screenshot_001.png
,
screenshot_002.png
, etc.
Capture sequence:
  1. Initial terminal state
  2. Periodic snapshots (per
    --interval
    )
  3. Final state after script completes
截图将保存为
screenshot_001.png
screenshot_002.png
等格式。
捕获序列:
  1. 初始终端状态
  2. 按指定间隔定期截图
  3. 脚本完成后的最终状态