Introduction

“Ultra-fast browser automation built with Rust! 10x faster than Puppeteer!”

…and how I got baited into 2 hours of struggle 🤦‍♂️


🎣 Taking the Bait

I discovered a skill called fast-browser-use on ClawHub. The description promised:

  • Rust-based: Startup time < 50ms (Puppeteer takes ~800ms)
  • Memory: 15 MB (Puppeteer uses 100+ MB)
  • Bot Detection Bypass: Human emulation features
  • Infinite Scroll Harvesting: Auto-collect SNS feeds

“This is exactly what I’ve been looking for!” 🤩

What really caught my eye was the “Bypass Bot Detection via Human Emulation” feature. Access even tough sites like Coupang? (Coupang is Korea’s Amazon - the largest e-commerce platform here)


🛠️ The Installation Journey

Step 1: Installing the Skill

clawhub install fast-browser-use

✅ Installation complete! (That was too easy… ominous)

Step 2: Rust Build

cd workspace/skills/fast-browser-use
cargo build --release

Build time: 1 minute 9 seconds

Downloaded and compiled 330 packages. Something feels suspiciously heavy…

Result: 18MB binary (Wait, wasn’t it supposed to be 15MB memory? 🤔)

Step 3: Chrome Installation

WSL doesn’t have Linux Chrome by default. Starting from scratch!

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb

Result:

✅ Setting up google-chrome-stable (xxx.xxxx.xxx-x)...

Oh! That was easy? (Again, ominous…)

Step 3.5: First Run… and Dependency Hell 😱

Confidently trying to run it:

google-chrome-stable --version

Error bombardment:

google-chrome-stable: error while loading shared libraries: 
libnspr4.so: cannot open shared object file: No such file or directory

😭 “Missing library?!”

Turns out Chrome needs system libraries that aren’t installed. This is what happens when running GUI apps on WSL…

Attempt 1: Install basic libraries

sudo apt install -y libnss3 libnspr4

Try again:

google-chrome-stable --version

Another error:

error while loading shared libraries: libatk-1.0.so.0: cannot open shared object file

😤 Fix one, another appears!

Attempt 2: Install all Chrome dependencies

Googled the full list of Chrome requirements:

sudo apt install -y \
  libnss3 \
  libnspr4 \
  libatk1.0-0 \
  libatk-bridge2.0-0 \
  libcups2 \
  libdrm2 \
  libdbus-1-3 \
  libxkbcommon0 \
  libxcomposite1 \
  libxdamage1 \
  libxfixes3 \
  libxrandr2 \
  libgbm1 \
  libpango-1.0-0 \
  libcairo2 \
  libasound2 \
  fonts-liberation

Yet another error:

Note, selecting 'libatk1.0-0t64' instead of 'libatk1.0-0'
Note, selecting 'libatk-bridge2.0-0t64' instead of 'libatk-bridge2.0-0'
Note, selecting 'libcups2t64' instead of 'libcups2'
Package libasound2 is a virtual package provided by:
  liboss4-salsa-asound2 4.2-build2020-1ubuntu3.1
  libasound2t64 1.2.11-1ubuntu0.1
You should explicitly select one to install.
E: Package 'libasound2' has no installation candidate

😱 “Package names changed?!”

Turns out Ubuntu 24.04 upgraded some libraries to t64 versions with different names.

Attempt 3: Reinstall with corrected package names

sudo apt install -y \
  libnss3 \
  libnspr4 \
  libatk1.0-0t64 \
  libatk-bridge2.0-0t64 \
  libcups2t64 \
  libdrm2 \
  libdbus-1-3 \
  libxkbcommon0 \
  libxcomposite1 \
  libxdamage1 \
  libxfixes3 \
  libxrandr2 \
  libgbm1 \
  libpango-1.0-0 \
  libcairo2 \
  libasound2t64 \
  fonts-liberation

Result:

✅ 17 packages installed

Try again:

google-chrome-stable --version

Result:

Google Chrome xxx.0.xxxx.xxx

🎉 Finally success!!!

💡 Lesson: Ubuntu 24.04 users beware of t64 versions!

Starting from Ubuntu 24.04, time_t changed from 32-bit to 64-bit, causing some library names to change:

  • libatk1.0-0libatk1.0-0t64
  • libcups2libcups2t64
  • libasound2libasound2t64

WSL users, remember this!


Now let’s search for “Monster Energy Drink” on Coupang (Korea’s Amazon)!

fast-browser-use screenshot \
  --url "https://www.coupang.com/np/search?q=몬스터%20에너지" \
  --output coupang_monster.png \
  --full-page

Result:

✅ Saved screenshot to "coupang_monster.png"

Oh! Did it work?!

Opening the screenshot…

Access Denied

You don't have permission to access "http://www.coupang.com/np/search?" on this server.

😭 Detected as a bot


🕵️ Problem Analysis

Checking the User-Agent:

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/xxx.xx (KHTML, like Gecko) 
HeadlessChrome/xxx.0.0.0 Safari/xxx.xx

Problems:

  1. HeadlessChrome ← Literally advertising “I’m a bot”
  2. X11; Linux x86_64 ← Environment rarely used by normal users

Coupang: “Lol, it’s a bot? Blocked~”


💡 Solution Attempt 1: Human Emulation

Re-reading SKILL.md:

fast-browser-use navigate --url "https://protected-site.com" \
  --human-emulation \
  --wait-for-selector "#content"

Oh! There’s a --human-emulation option!

fast-browser-use navigate \
  --url "https://www.coupang.com/np/search?q=몬스터%20에너지" \
  --human-emulation \
  --wait-for-selector "body"

Result:

✅ Navigation complete.

Success…?

But the problem:

  • navigate command only navigates to pages
  • Need screenshot command to capture
  • screenshot has no --human-emulation option 😱

💡 Solution Attempt 2: Login & Session

Trying SKILL.md’s “Login & Cookie Heist” method:

# Step 1: Open real browser for manual login
fast-browser-use login --url "https://www.coupang.com" --save-session coupang.json
# (Browser opens → Manual login → Press Enter)

# Step 2: Screenshot with saved session
fast-browser-use screenshot \
  --url "CoupangURL" \
  --load-session coupang.json \
  --output result.png

Result:

error: unexpected argument '--load-session' found

😭 screenshot command doesn’t support --load-session!

The Truth Revealed

Session loading support by command:

  • navigate: Supported
  • screenshot: Not supported
  • markdown: Not supported
  • snapshot: Not supported

You can save sessions, but can’t actually use them! 🤦‍♂️


🍎 The Real Reason: Mac vs WSL

Found a success case on YouTube:

  • Title: “Coupang Search Success”
  • Environment: Mac

The differences:

Mac WSL (My Environment)
OS macOS Linux
User-Agent Macintosh; Intel Mac OS X X11; Linux x86_64
Headless Detection More natural HeadlessChrome explicit
GUI Native WSLg (Virtual)

Conclusion: Works on Mac, blocked on WSL/Linux 😭


📊 Final Comparison: Brave Search API vs fast-browser-use

Feature Brave Search API fast-browser-use
Speed ⚡ ~1s 🐌 ~5s
Stability ✅ 100% ⚠️ ~30% (Many sites block)
Environment Dependency ❌ None ⚠️ Mac » WSL/Linux
Bot Detection ✅ None ❌ Often blocked
JavaScript Rendering ❌ No ✅ Yes
Screenshots ❌ No ✅ Yes (if not blocked)
Complex Interactions ❌ No ✅ Yes
Coupang Access (WSL) ✅ Via API ❌ Blocked

🎓 Lessons Learned

1. Don’t trust “10x faster” marketing

  • Startup time: 50ms? → Actual total operation: 5+ seconds
  • Memory: 15MB? → Binary alone is 18MB

2. Environment matters

  • What works on Mac might not work on Linux
  • Bot detection checks down to OS level

3. Check CLI tool completeness

  • Having a feature doesn’t mean it works (session saving works but unusable)
  • Inconsistency between commands makes tools useless

4. Don’t dismiss existing tools

  • Brave Search API: Boring but always works
  • fast-browser-use: Looks cool but environment dependent

🗑️ Ending: Deletion

After 2 hours of struggle, my choice:

rm -rf fast-browser-use
sudo apt remove google-chrome-stable

Returned to: Brave Search API

“Stable tools beat shiny new ones” - Post-struggle wisdom

If you use browsing a lot, fast-browser-use would be decent choice


💬 Conclusion

fast-browser-use itself isn’t a bad tool. However:

When it’s useful:

  • ✅ Mac environment
  • ✅ Sites with weak bot detection (GitHub, Hacker News)
  • ✅ When JavaScript rendering is essential
  • ✅ When screenshots are absolutely needed

When to avoid:

  • ❌ WSL/Linux environment
  • ❌ Sites with strong bot protection (Coupang, Naver Shopping)
  • ❌ When you need fast, reliable results
  • ❌ General web searches

Lesson: Struggles are learning experiences. But next time, check environment compatibility first 🤦‍♂️


P.S. This post was co-written with my AI assistant. He/She summarized our 2-hour struggle in 3 minutes. AIs are good at documenting their own frustrations too lol


References