HumanTyping

v1.0.2

Type text into a browser like a real human with adjacent-key typos, immediate and deferred corrections, French accent omissions fixed later, thinking pauses,...

1· 174·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for luke2day/human-typing-simulator.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "HumanTyping" (luke2day/human-typing-simulator) from ClawHub.
Skill page: https://clawhub.ai/luke2day/human-typing-simulator
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required binaries: node
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install human-typing-simulator

ClawHub CLI

Package manager switcher

npx clawhub@latest install human-typing-simulator
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description (human-like typing) match the packaged code and CLI: engine.js builds keystroke event scripts, human-type.js exposes run/generate/play/inspect, and player.js replays events via Playwright connected to a Chromium CDP URL. Declared binary requirement (node) and dependency (playwright-core) are appropriate for browser automation.
Instruction Scope
SKILL.md instructs the agent to start and use the OpenClaw browser and to connect to a CDP URL; the runtime code reads OPENCLAW_CDP_URL if provided, and otherwise uses the local default. The instructions and code focus on generating/replaying keystrokes and do not reference unrelated system files, credentials, or external endpoints beyond the browser CDP host.
Install Mechanism
No remote download/install spec is included (instruction-only install guidance and a package.json). Dependencies are standard (playwright-core from npm). There are no hardcoded remote URLs, extract steps, or unusual install actions that would write arbitrary code from external hosts during install.
Credentials
The skill requests no secrets or credential environment variables; it optionally honors OPENCLAW_CDP_URL to locate the browser. The number and type of env/config requirements are proportionate to a CDP-attaching typing tool.
Persistence & Privilege
The skill does not request always:true and does not attempt to modify other skills or system-wide configuration. It runs on-demand, and autonomous invocation is the platform default (not a special privilege here).
Assessment
This package appears internally consistent with its stated goal: it generates keystroke scripts and uses playwright-core to replay them against a Chromium browser via a Chrome DevTools Protocol URL. Before installing, consider: 1) Source trust: the skill has no homepage and an unknown owner—inspect the included JS files yourself or run in an isolated environment. 2) Safety: the tool will type into any page you point it at; it could be misused to automate actions that should be manual. Use --dry-run or generate to preview scripts and verify behavior before actual playback. 3) Requirements: Node >=20 and playwright-core are required; ensure the OpenClaw-managed browser (or another Chromium accessible via CDP) is the intended target. 4) Least privilege: there are no credentials requested, but be careful not to point the CDP URL at browsers with elevated sessions you don't intend to automate. If you want higher assurance, run the provided tests (node engine.test.js) and review player.js's CDP connect logic and page interactions.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

⌨️ Clawdis
Binsnode
latestvk97b9h0se0sg8hj99mntvegdwx83g2nf
174downloads
1stars
3versions
Updated 1mo ago
v1.0.2
MIT-0

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 e instead of é, fix later (French mode)
  • Thinking pauses — random hesitation gaps
  • Speed jitter — each keystroke has independent timing noise
  • Seeded reproducibility--seed gives 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 "<final text>" \
  --duration <seconds> \
  [--mistakes <0-100>] \
  [--pauses <0-100>] \
  [--defer <0-100>] \
  [--french] \
  [--accent-omit <0-100>] \
  [--selector "<css>"] \
  [--seed <n>] \
  [--dry-run]

All flags

FlagDefaultDescription
--text(required)Final text to produce
--duration10Total time in seconds
--mistakes20Immediate typo rate %
--pauses15Pause frequency %
--defer35% of typos deferred (fixed after paragraph)
--frenchoffEnable French accent omission mode
--accent-omit60% of accented chars omitted initially (French mode)
--selectorCSS selector to click/focus before typing
--delay-start500Ms to wait before first keystroke
--seedrandomFix RNG for reproducible output
--dry-runoffPrint script without typing
--cdp-urlhttp://127.0.0.1:18800Chrome 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

StyleWPMDuration for 100 chars
Fast typist70+~9s
Average adult50~12s
Slow / careful30~20s
Hunt-and-peck15~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 start before opening the page.
  • In OpenClaw, prefer node "{baseDir}/human-type.js" so the workspace skill works without any global install.
  • Always prefer --selector over clicking manually before running because the CLI works directly through CDP, not OpenClaw ref IDs.
  • Use --dry-run first when the duration or behavior is uncertain.
  • For multi-field forms, call human-type run once per field with the appropriate --selector.
  • For French text, --french without --accent-omit uses the 60% default — adjust if you want more or fewer accent omissions.
  • --defer 0 means all typos are fixed immediately (backspace-and-retype). --defer 100 means 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 standard openclaw browser profile.
  • --seed values 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.

Comments

Loading comments...