← Back to Skills Marketplace
luke2day

HumanTyping

by luke2day · GitHub ↗ · v1.0.2 · MIT-0
cross-platform ✓ Security Clean
182
Downloads
1
Stars
0
Active Installs
3
Versions
Install in OpenClaw
/install human-typing-simulator
Description
Type text into a browser like a real human with adjacent-key typos, immediate and deferred corrections, French accent omissions fixed later, thinking pauses,...
README (SKILL.md)

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 "\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 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.

Usage Guidance
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.
Capability Analysis
Type: OpenClaw Skill Name: human-typing-simulator Version: 1.0.2 The 'human-typing-simulator' skill is a well-implemented utility for simulating realistic human keystrokes in a browser via the Chrome DevTools Protocol (CDP). The core logic in `engine.js` correctly models adjacent-key typos, thinking pauses, and deferred corrections (including a specialized mode for French accents), while `player.js` uses `playwright-core` to execute these events. The code is professional, includes comprehensive unit tests (`engine.test.js`), and its behavior is strictly aligned with the documentation in `SKILL.md` and `README.md`. No evidence of data exfiltration, malicious command execution, or harmful prompt injection was found.
Capability Assessment
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).
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install human-typing-simulator
  3. After installation, invoke the skill by name or use /human-typing-simulator
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.2
- Updated documentation to clarify that the OpenClaw browser tool must always be used for browser startup, navigation, and inspection. - Added explicit instructions to never use macOS open or any shell browser launch commands in the workflow. - Updated the workflow steps and rule list to emphasize correct OpenClaw usage and startup order. - No code or functionality changes in this release; documentation only.
v1.0.1
- Now references the runnable script as human-type.js in {baseDir} instead of requiring a global install. - Updated installation and usage instructions for improved integration with OpenClaw (including standard CDP URL and command names). - Clarified that --selector should always be preferred for focusing fields; direct OpenClaw ref IDs are no longer supported. - Minor workflow and rules adjustments to reflect standard OpenClaw practices and typical local usage. - Metadata updated to remove direct install instructions.
v1.0.0
Major update: Adds advanced human-like typing simulation to browser automation. - Simulates human typing with typos, immediate and deferred corrections, thinking pauses, accent omissions (French), and random keystroke timing. - Precisely matches the target text while introducing realistic typing mistakes and behaviors. - Offers CLI with tunable flags for mistake rate, pauses, deferred corrections, accent behavior, duration, and seedable runs for reproducibility. - Supports saving, replaying, and inspecting keystroke event scripts. - Includes workflows, usage tips, and best practices for browser automation tasks. - Detailed documentation for advanced use (selectors, multi-field forms, WPM reference).
Metadata
Slug human-typing-simulator
Version 1.0.2
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 3
Frequently Asked Questions

What is 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,... It is an AI Agent Skill for Claude Code / OpenClaw, with 182 downloads so far.

How do I install HumanTyping?

Run "/install human-typing-simulator" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is HumanTyping free?

Yes, HumanTyping is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does HumanTyping support?

HumanTyping is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created HumanTyping?

It is built and maintained by luke2day (@luke2day); the current version is v1.0.2.

💬 Comments