Fetching from the wire…
Public story · 2026-08-23 · high
Hands drives a real Chrome profile with OS SendInput clicks on Bezier paths, sidestepping the CDP fingerprinting most anti-bot detection relies on.
Why now: It's a fresh Show HN post with just 3 points and one source as of Aug. 23, so nobody's stress-tested the claim against real bot-detection stacks yet.
Hands drives Chrome through OS-level mouse events instead of the DevTools protocol scrapers and bots normally rely on, per a Show HN post. It's a Rust MCP server exposing four tools, observe, click, type and scroll, to any AI harness that speaks MCP.
That gap matters for scraper operators and the bot-detection vendors trying to catch them. Playwright and Puppeteer both talk to Chrome over the DevTools Protocol, and that's the exact signal most bot-detection vendors check for. Hands skips CDP entirely, so a fingerprint check built around that protocol finds nothing to flag.
It launches your actual daily Chrome profile with no extra flags. There's no remote debugging port open for a scanner to find.
The tool set stays narrow. Observe returns a screenshot path plus a short element list pulled from Windows UIA, with Chrome DOM ids as an optional extra. Click isn't a DevTools click call. It's a real OS SendInput event traced along a Bezier path.
This is a Show HN post with 3 points, one source, no independent testing yet.
The CDP fingerprint most bot-detection vendors check for isn't a technical requirement of browser automation. It's an artifact of using Playwright or Puppeteer specifically. Hands is a working demonstration that the check is optional. If OS-level input automation like this spreads, CDP fingerprinting alone stops being a reliable signal.
Each link below shares sources, entities, or timing with this story.
Hands uses Chrome / Shared entities / Shared topic / Earlier coverage
Linked by a graph relationship (Hands uses Chrome); both cover Chrome, DevTools; overlapping topics (chrome, debugging, devtool).
Hands supports Claude Code / Shared entity: Puppeteer / Shared topic / Earlier coverage
Linked by a graph relationship (Hands supports Claude Code); both cover Puppeteer; overlapping topics (chrome, debugging, devtool).
Hands supports OpenCode / Shared entity: Show HN / Same source domain / Earlier coverage
Linked by a graph relationship (Hands supports OpenCode); both cover Show HN; reported by the same outlet (news.ycombinator.com).
Hands supports Codex / Shared entity: Show HN / Same source domain / Earlier coverage
Linked by a graph relationship (Hands supports Codex); both cover Show HN; reported by the same outlet (news.ycombinator.com).
Hands uses Chrome / Shared entity: Chrome / Shared topic / Earlier coverage
Linked by a graph relationship (Hands uses Chrome); both cover Chrome; overlapping topics (chrome, click).
Linked by a graph relationship (Hands uses Chrome); both cover Chrome; overlapping topics (chrome, devtool).
Hands uses Chrome / Shared entity: Chrome / Same source domain / Earlier coverage
Linked by a graph relationship (Hands uses Chrome); both cover Chrome; reported by the same outlet (news.ycombinator.com).
Google released Chrome / Shared entity: Puppeteer / Shared topic / Earlier coverage
Linked by a graph relationship (Google released Chrome); both cover Puppeteer; overlapping topics (chrome, devtool).