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

browsernode

v0.4.5

Published

A powerful browser automation library with AI agent capabilities

Readme

🌐 Browsernode is the easiest way to connect your AI agents with the browser. ✅ Browsernode is compatible with all of Browser-use APIs and features.

Quick start

with Node.js (v20.19.4 or higher) and npm

❌ Bun environment , has a Playwright bug.

npm install browsernode

Install Playwright: Installation | Playwright

npm init playwright@latest
playwright install chromium

Add your API keys for the provider you want to use to your .env file.

mv .env.example .env
OPENAI_API_KEY=

For other settings, models, and more, check out the documentation 📕.

Spin up your agent:

Commonjs style

const { Agent } = require("browsernode");
const { ChatOpenAI } = require("browsernode/llm");

(async () => {
  const llm = new ChatOpenAI({
    model: "gpt-4.1",
    temperature: 0.0,
    apiKey: process.env.OPENAI_API_KEY,
  });

  const task = "Search for the latest tesla stock price";
  const agent = new Agent({
    task,
    llm,
  });

  const history = await agent.run();
  console.log(history.usage);
})();

ESM style

package.json

{
  // ... other properties
  "type": "module"
  // ... other properties
}
import { Agent } from "browsernode";
import { ChatOpenAI } from "browsernode/llm";

const llm = new ChatOpenAI({
	model: "gpt-4.1",
	temperature: 0.0,
	apiKey: process.env.OPENAI_API_KEY,
});

const task = "Search for the latest tesla stock price";
const agent = new Agent({
	task: task,
	llm: llm,
});
agent.run();

run

npx tsx quickstart.ts

Test with UI

You can test browsernode using gadio_demo

Test with an interactive CLI

You can also use our browsernode-cli

Demos

Task:look up the world's most valuable companies, save top 5 companies and their value to companies.txt.

AI Did Search And Save

output: companies.txt

1. Microsoft: $3.530 T
2. NVIDIA: $3.462 T
3. Apple: $2.934 T
4. Amazon: $2.251 T
5. Alphabet (Google): $2.125 T

Task:Write a letter in Google Docs to my Papa, thanking him for everything, and save the document as a PDF.

Write google doc And Save pdf

Task:go to https://en.wikipedia.org/wiki/Banana and click on buttons on the wikipedia page to go as fast as possible from banna to Quantum mechanics

from banana to Quantum mechanics result:

// ... previous actions
🛠️ Action 1/1: {
  "clickElement": {
    "index": 41
  }
}
// ... more actions
 🛠️ Action 1/1: {
"done": {
    "success": false,
    "text": "I navigated through the Banana Wikipedia page, reaching the section on Fusarium wilt TR4. However, I did not complete the task of reaching Quantum mechanics."
  }
}
// ... final result
📄 Result: I navigated through the Banana Wikipedia page, reaching the section on Fusarium wilt TR4. However, I did not complete the task of reaching Quantum mechanics.

More examples

For more examples see the examples folder

Contributing

We love contributions! Feel free to open issues for bugs or feature requests. To contribute to the docs, check out the /docs folder.