/install human-typing-simulator
What this skill does
human-type generates a keystroke event script from a desired final text
and plays it back in the focused browser element. The script includes:
- Adjacent-key typos — wrong chars from QWERTY neighbors
- Immediate fixes — backspace and retype on the spot
- Deferred fixes — finish typing the paragraph, then navigate back to fix
- French accent omissions — type
einstead ofé, fix later (French mode) - Thinking pauses — random hesitation gaps
- Speed jitter — each keystroke has independent timing noise
- Seeded reproducibility —
--seedgives identical replays
The final text produced is always exactly the target string.
Installation check
node "{baseDir}/human-type.js" --version
Optional global install:
npm install -g human-type-cli
Core command
node "{baseDir}/human-type.js" run \
--text "\x3Cfinal text>" \
--duration \x3Cseconds> \
[--mistakes \x3C0-100>] \
[--pauses \x3C0-100>] \
[--defer \x3C0-100>] \
[--french] \
[--accent-omit \x3C0-100>] \
[--selector "\x3Ccss>"] \
[--seed \x3Cn>] \
[--dry-run]
All flags
| Flag | Default | Description |
|---|---|---|
--text |
(required) | Final text to produce |
--duration |
10 |
Total time in seconds |
--mistakes |
20 |
Immediate typo rate % |
--pauses |
15 |
Pause frequency % |
--defer |
35 |
% of typos deferred (fixed after paragraph) |
--french |
off | Enable French accent omission mode |
--accent-omit |
60 |
% of accented chars omitted initially (French mode) |
--selector |
— | CSS selector to click/focus before typing |
--delay-start |
500 |
Ms to wait before first keystroke |
--seed |
random | Fix RNG for reproducible output |
--dry-run |
off | Print script without typing |
--cdp-url |
http://127.0.0.1:18800 |
Chrome DevTools Protocol URL |
Workflow
# 1. Start and use the OpenClaw browser tool
# Never use macOS `open` or any shell browser launch command for this workflow.
openclaw browser start
# 2. Navigate to target page
openclaw browser open https://example.com
# 3. Get element refs
openclaw browser snapshot --interactive
# 4. Type like a human into a specific element
# Prefer --selector so the CLI can focus the field itself.
# 5. Type like a human
node "{baseDir}/human-type.js" run \
--text "Hello, I'd like to ask about your services." \
--duration 10 \
--mistakes 20 \
--defer 40 \
--selector "textarea"
# 6. Verify
openclaw browser snapshot --interactive
Common patterns
Natural English paragraph
node "{baseDir}/human-type.js" run \
--text "The meeting went well. I think we aligned on the key points." \
--duration 15 \
--mistakes 25 \
--defer 40 \
--pauses 20
French text (accent omissions fixed later)
node "{baseDir}/human-type.js" run \
--text "Être ou ne pas être, voilà la question." \
--duration 15 \
--french \
--accent-omit 70 \
--defer 30
Reproducible (for testing / demo recording)
node "{baseDir}/human-type.js" run \
--text "Exact same every time." \
--duration 8 \
--seed 42
Preview before running
node "{baseDir}/human-type.js" run --text "Check this first" --duration 6 --dry-run
Save and replay a script
# Generate and save
node "{baseDir}/human-type.js" generate \
--text "Reuse this exact sequence." \
--duration 8 --seed 42 \
--output ./my-script.json
# Replay later
node "{baseDir}/human-type.js" play ./my-script.json --selector "#comment"
# Inspect stats
node "{baseDir}/human-type.js" inspect ./my-script.json
WPM reference
| Style | WPM | Duration for 100 chars |
|---|---|---|
| Fast typist | 70+ | ~9s |
| Average adult | 50 | ~12s |
| Slow / careful | 30 | ~20s |
| Hunt-and-peck | 15 | ~40s |
Rules
- Always use the OpenClaw browser tool for browser startup, navigation, and inspection before typing.
- Never use macOS
open, shell browser launch commands, or any non-OpenClaw browser startup path for this workflow. - If the OpenClaw browser is not running yet, start it with
openclaw browser startbefore opening the page. - In OpenClaw, prefer
node "{baseDir}/human-type.js"so the workspace skill works without any global install. - Always prefer
--selectorover clicking manually before running because the CLI works directly through CDP, not OpenClaw ref IDs. - Use
--dry-runfirst when the duration or behavior is uncertain. - For multi-field forms, call
human-type runonce per field with the appropriate--selector. - For French text,
--frenchwithout--accent-omituses the 60% default — adjust if you want more or fewer accent omissions. --defer 0means all typos are fixed immediately (backspace-and-retype).--defer 100means all typos are left in place and fixed after the paragraph.- The browser must already be open in OpenClaw before running. By default the CLI connects to
http://127.0.0.1:18800, which matches the standardopenclawbrowser profile. --seedvalues are fully deterministic — the same seed + same text + same options always produces an identical keystroke sequence.
Event format (JSON script)
Each event in the generated script has:
{ "type": "type", "ch": "H", "time": 0, "duration": 195 }
{ "type": "delete", "time": 195, "duration": 140 }
{ "type": "pause", "time": 335, "duration": 480 }
{ "type": "arrow", "dir": "Left", "n": 4, "time": 815, "duration": 320 }
{ "type": "select-back", "n": 1, "time": 1135,"duration": 110 }
{ "type": "select-replace", "ch": "é", "time": 1245,"duration": 200 }
time is ms offset from start. duration is gap until next event.
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install human-typing-simulator - 安装完成后,直接呼叫该 Skill 的名称或使用
/human-typing-simulator触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
HumanTyping 是什么?
Type text into a browser like a real human with adjacent-key typos, immediate and deferred corrections, French accent omissions fixed later, thinking pauses,... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 182 次。
如何安装 HumanTyping?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install human-typing-simulator」即可一键安装,无需额外配置。
HumanTyping 是免费的吗?
是的,HumanTyping 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
HumanTyping 支持哪些平台?
HumanTyping 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 HumanTyping?
由 luke2day(@luke2day)开发并维护,当前版本 v1.0.2。