Humor Mode
Human-like behavior system — Bezier curves, hesitation, idle movements.
Humor mode replaces Playwright's robotic methods with humanized versions. Mouse movements follow Bezier curves, clicks have cognitive hesitation, and idle moments include micro-movements.
Enable Humor
const session = await strike({ humor: true });Or per-action:
await session.click("#btn", {
humor: { hesitation: 0.9, precision: 0.99 },
});
await session.type("#input", "text", {
humor: { latency: "sluggish" },
});Behaviors
strikeMove
Mouse movements follow Bezier curves with 15% distraction drift. The cursor doesn't move in straight lines — it curves, overshoots, and corrects.
await session.click("#btn");
// Cursor follows a natural curve to the buttoncognitiveHesitation
Pause before actions, proportional to page complexity. Complex pages trigger longer pauses as if the user is reading.
await session.click("#submit");
// Brief pause while "reading" the formidleMicroMovement
Tiny cursor jitter between actions. Real users don't hold the mouse perfectly still.
// Between actions, cursor makes small random movementscoffeeBreak
8% chance of a 2-7 second idle with micro-movements. Mimics a user pausing to think or sip coffee.
// Occasionally, the session pauses for a few secondsLatency Profiles
| Profile | Speed | Description |
|---|---|---|
human | Normal | Default human-like timing |
sluggish | Slow | Longer pauses, slower typing |
organic | Variable | Mixed speeds, more natural |
robotic | Fast | Minimal delays (less stealthy) |
Per-Action Override
// Fast click, slow type
await session.click("#btn", { humor: { latency: "robotic" } });
await session.type("#input", "text", { humor: { latency: "sluggish" } });Without Humor
Without humor: true, methods use standard Playwright behavior — fast, precise, detectable.
const session = await strike(); // no humor
await session.click("#btn"); // instant, straight-line movement