Back to News
Advertisement
cccheshirecat about 5 hours ago 10 commentsRead Article on mochijs.com
Hi HN,

I’m sharing mochi.js (https://github.com/0xchasercat/mochi), a Bun-native, raw-CDP browser automation framework. It's designed to make programmatic browser use more effective by focusing on consistency and measured parity with regular traffic, purely from the JS layer, against stock Chromium.

The most common forms of browser automation focus heavily on client-side line by line probes, which are mostly cosmetic. This makes people feel better but it doesn't have much relevance to actual WAF or anti-automation defences.

Mochi.js focuses on what actually matters, allowing you to get past captchas, WAF's and most defence mechanisms. In fact, in some cases it actually outperforms chromium forks simply by virtue of not having to lie.

The foundation is built on a probe manifest based on analyzing several WAF's and trying to cover most of the ground that matters, and from there building upwards while ensuring every decision is backed by data. Solves turnstile/interstitial automatically, single digit fpjs suspect score, very good client-side results, though browserscan and a few others are known limitations that are fundamentally conflicting with what WAF's probe for.

I'll be here if anyone wants to discuss the details, check out the docs and github. It's completely free and open source, MIT, strictly no relationship to any proprietary products whatsoever. No affiliation to patched chromium forks, or SaaS.

But I also want to talk about why I built this, because the current paradigm of "bot detection" is fundamentally broken.

Traditionally they would probably try to label my repository a malicious tool, or at best, a grey hat one.

Let's take Turnstile for example, If you attach a debugger to see what data they are extracting from your hardware, their script intentionally self-destructs. When they try to extract your data—acting as a guest on your silicon, using your electricity, without asking, the industry calls it "Security."

But if you write a script to control exactly what data your own hardware emits, refusing to provide the data they have no right to ask for, you are suddenly labeled a "Malicious Actor" engaged in "Bot Evasion."

I find it absurd we let ourselves put up with this, and the stance of the bot-evasion community only makes them feel more able to take a higher moral ground.

I have built a library that respects my hardware's reality. If that breaks your security model, that's because your security model relies on trespassing and secrecy. I stopped apologizing. Who's next?

Mochi is the exact opposite of WAF opacity. It is a glass box. It is MIT-licensed. The entire DAG, fingerprint manifest schema, harvesting process, is documented. We even commit our live benchmarks to the public record (mochi on a Linux datacenter IP scored a suspect_score: 8 and bot: not_detected against FingerprintJS Pro v4).

We don't even lie unnecessarily. We default to host-OS matching. If you run mochi on a Linux server, it uses privacy-sensible fingerprints for Linux, not Windows, because Linux is a real-user signal. It proves that WAFs aren't actually blocking what most people think they are, which begs the question of what they are really doing in that obfuscated payload.

The legitimacy argument is exactly how they captured the narrative. And nobody challenged it because the people on the other side were too busy acting like they were doing something wrong.

Is this a conspiracy theory? For sure, but only because they allow it to be. Try make a conspiracy theory about the sticky riceball.

Advertisement

⚡ Community Insights

Discussion Sentiment

100% Positive

Analyzed from 281 words in the discussion.

Trending Topics

#llm#fingerprint#mobile#going#crumbs#along#tool#mochi#native#browser

Discussion (10 Comments)Read Original on HackerNews

bastawhizabout 2 hours ago
It's worth flagging that the homepage and the docs are both nearly unreadable on mobile. If you're going to have cheeky rhetoric like "no crumbs" please take the time to actually test the pages your LLM made for you in a bunch of different ways.
jarymabout 2 hours ago
Reads fine for me. I’m getting a bit worn out with the number of ‘if you’re going to use an LLM then take the time to …’ posts. I’ve looked at plenty of HN submissions that don’t render at all on mobile and yes I found it frustrating but didn’t just attribute it to an LLM.
ramon156about 1 hour ago
Check the cards that are wrapped, along with the footer
ccheshirecat14 minutes ago
bruh
ccheshirecat12 minutes ago
llm recommends using a desktop to view the site as typically that's also the form factor required to use the tool!
SwellJoe8 minutes ago
"mochi.js is a Bun-native, raw-CDP browser automation framework. Pass a seed and a profile; get a relationally-coherent fingerprint that survives a getParameter(0x9245) probe. JIT-friendly inject payload, Chromium-native fetch (real Chrome JA4 by definition), behavioral synth on top of Bezier+Fitts. Leaves no crumbs. "

WTF are you talking about? This is incoherent?

wavemode32 minutes ago
Forget all the fancy fingerprinting - sites that really care about blocking bots will detect that, in the first place, you are running a browser in debug mode. Does this tool prevent that?
ccheshirecat9 minutes ago
Not this but I do have something along those lines if you're interested!
hmokiguessabout 2 hours ago
> The entire DAG, fingerprint manifest schema, harvesting process, is documented. We even commit our live benchmarks to the public record (mochi on a Linux datacenter IP scored a suspect_score: 8 and bot: not_detected against FingerprintJS Pro v4).

Doesn't this defeats the purpose? Essentially giving away the mechanism to the ones implementing fingerprint so they can learn how to detect you and starting a cat/mouse chase in the open

There's a reason why some kinds of technology stay opaque, not always publishing these things help in the way you think they do

ccheshirecat4 minutes ago
it's not that much of a black box when you can literally see the API's they call(albeit some with more effort than others), but i prefer not to engage in theatre..