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

@ogulcancelik/pi-web-browse

v1.0.5

Published

Web search and content extraction skill for pi-coding-agent. Search the web and fetch pages via a real headless browser (CDP). Works on Linux, macOS, and Windows.

Readme

pi-web-browse

Web search and content extraction skill for pi. Search the web and fetch pages via a real headless browser (CDP).

Works on Linux, macOS, and Windows.

Features

  • 🔍 Web Search - Search via Google (falls back to DuckDuckGo if blocked)
  • 🌐 Page Fetching - Extract readable content from any URL
  • 🤖 Bot Protection Bypass - Handles JS challenges, Cloudflare, etc.
  • 🚀 Persistent Daemon - Warm browser session for fast subsequent requests
  • 🖥️ Cross-Platform - Auto-detects Chrome, Brave, Edge, Chromium

Install

pi install npm:@ogulcancelik/pi-web-browse

Or via git:

pi install github.com/ogulcancelik/pi-web-browse

(Optional, try without installing):

pi -e npm:@ogulcancelik/pi-web-browse

After first use, the agent will guide you through setup.

Usage

The agent will automatically use this skill when you ask it to search the web or fetch page content.

You can also invoke it directly:

/skill:web-browse "rust async runtime"

Configuration

Environment variables (all optional):

| Variable | Description | Default | |----------|-------------|---------| | WEB_BROWSE_BROWSER_BIN | Browser binary path | Auto-detected, prefers Chrome | | WEB_BROWSE_USER_AGENT | Override User-Agent string | Auto-derived from detected browser + OS | | WEB_BROWSE_DAEMON_PORT | Daemon HTTP port | 9377 | | WEB_BROWSE_CDP_PORT | Chrome DevTools port | 9225 | | WEB_BROWSE_DEBUG_DUMP | Save debug files on failure | off |

By default, the hidden profile is browser-specific (for example ~/.config/web-browse-cdp-profile-chrome or ~/.config/web-browse-cdp-profile-brave) so updates do not try to reuse the same hidden profile across different Chromium-family browsers.

Browser Detection

The skill auto-detects browsers in common locations and now prefers Chrome first, because Google Search is less likely to challenge headless Chrome than headless Brave on some setups.

  • Linux: google-chrome, google-chrome-stable, brave, brave-browser, chromium (from PATH)
  • macOS: Google Chrome, Google Chrome Canary, Brave Browser, Edge, Chromium (in /Applications)
  • Windows: Chrome, Brave, Edge, Chromium (Program Files, LocalAppData)

If you want Brave anyway, set WEB_BROWSE_BROWSER_BIN or pass --browser-bin.

How It Works

  1. Search - Uses Google via a persistent headless browser session. If Google blocks the request, it fails fast and falls back to DuckDuckGo.
  2. Fetch - Opens URLs in the same hidden browser session, waits for JS, and extracts readable content.
  3. Daemon - Keeps a warm, browser-specific hidden profile/session alive for speed and bot-protection resilience without touching your normal browser profile.

License

MIT