npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

anemone-browser

v1.0.1

Published

Managed headful Chrome with anti-detection, VNC takeover, and auto-recovery for OpenClaw agents

Readme

🌊 Anemone


The Problem

OpenClaw agents need a browser. But getting one that reliably works is harder than it should be:

  • Mac/Desktop — Browser Relay extension disconnects, requires manual re-attach
  • Docker/VPS — Headless Chrome gets blocked by Google, Cloudflare, CAPTCHA walls
  • Remote servers — No GUI, no way for humans to intervene when things go wrong

You shouldn't have to fight your browser. You should be building agents.

The Solution

Anemone gives OpenClaw a managed Chrome that runs anywhere — Mac, Docker, Ubuntu, VPS — with:

  • 🐟 Anti-detection — Headful Chrome, clean fingerprint, no "HeadlessChrome" leaks
  • 🖥️ Remote access — Web-based VNC (noVNC) so you can see and control the browser from anywhere
  • 🤖 Agent-native — CDP integration, OpenClaw controls Chrome directly
  • 🔒 Secure — SSL, password auth, Chrome Policy locks down file access and extensions
  • 🔄 Persistent — Cookies and login sessions survive restarts
  • 👤 Human-in-the-loop — When CAPTCHA hits, open VNC in your browser and solve it. Done.

No more relay disconnects. No more blocked searches. No more blind headless Chrome.

Quick Start

Install via npm

npm install -g anemone-browser

Linux / Docker / VPS

# 1. Install dependencies (once)
anemone setup

# 2. Start everything (Chrome + VNC + auto-recovery)
anemone start --password mypass --port 6080

# 3. Check status
anemone status

# 4. Get noVNC URL to share
anemone url

macOS

anemone setup    # Configures OpenClaw to use managed Chrome
# Then use: openclaw browser start

No VNC needed on Mac (you have a display).

Without npm (bash scripts)

bash scripts/setup.sh
bash scripts/start.sh [password] [novnc_port] [cdp_port] [resolution]

How It Works

 You (any browser, anywhere)           OpenClaw Agent
      │                                      │
      │ HTTPS + password                     │ CDP (localhost)
      ▼                                      ▼
 ┌──────────────────────────────────────────────────┐
 │                   Anemone                        │
 │                                                  │
 │   noVNC ──► x11vnc ──► Xvfb (virtual display)   │
 │                              │                   │
 │                     Chrome (headful, real)        │
 │                        CDP :9222                  │
 │                              │                   │
 │                  ~/.chrome-profile                │
 │                (persistent cookies)               │
 └──────────────────────────────────────────────────┘

Human-in-the-loop flow:

  1. Agent browses normally via CDP
  2. Hits a CAPTCHA or login wall
  3. Agent sends you the VNC link
  4. You open it in your browser, solve the CAPTCHA
  5. Agent continues automatically

Configuration

bash start.sh [password] [novnc_port] [cdp_port] [resolution]

# Random password (default):
bash start.sh

# Fixed password:
bash start.sh "my-secure-password"

# Custom ports + resolution:
bash start.sh "my-password" 6080 9222 1920x1080x24

OpenClaw Integration

Add to your OpenClaw config (~/.openclaw/openclaw.json):

{
  "browser": {
    "headless": false,
    "noSandbox": true,
    "executablePath": "/usr/bin/google-chrome-stable"
  }
}

Then use browser tool normally. No relay needed.

Security

| Layer | Protection | |-------|-----------| | Network | SSL/TLS encryption (self-signed cert) | | Auth | Random 14-char password (or custom) | | CDP | Localhost only — not exposed to network | | Chrome Policy | file:// blocked, extensions blocked, DevTools disabled, data:text/html blocked | | Isolation | Docker container separation from host |

Tested

| Environment | IP Type | Google | Scholar | Cloudflare | |-------------|---------|:------:|:-------:|:----------:| | Docker (home server, Taiwan) | Residential | ✅ | ✅ | ✅ | | Docker (OVH, France) | Datacenter | ✅ | ✅ | ✅ |

CLI Reference

anemone setup              # Install deps (Chrome, Xvfb, VNC)
anemone start [options]    # Start Chrome + VNC + healthcheck cron
anemone stop               # Stop all services
anemone restart [options]  # Stop + start
anemone status             # Check all components
anemone healthcheck        # Run auto-recovery manually
anemone url                # Print noVNC URL

Options:
  --password <pass>        VNC password (random if omitted)
  --port <port>            noVNC port (default: 6080)
  --cdp-port <port>        CDP port (default: 9222)
  --resolution <WxHxD>     Display (default: 1920x1080x24)

Files

| File | Purpose | |------|---------| | bin/anemone.mjs | CLI entry point | | scripts/setup.sh | Linux dependency installer | | scripts/setup-mac.sh | macOS setup | | scripts/start.sh | Start all services | | scripts/healthcheck.sh | Auto-recovery monitor | | scripts/test.py | Google/Scholar access test |

Why "Anemone"?

Sea anemones and crabs are natural symbionts — the anemone protects the crab, the crab carries the anemone. Just like Anemone protects OpenClaw's browser from detection. And yes, it sounds a bit like "anonymous" 🌊

License

MIT