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

page-steer

v0.9.0

Published

AI-Powered Browser Assistant - add intelligent automation to any webpage with a single script

Readme

Page Steer

License: MIT TypeScript GitHub stars

AI-Powered Browser Assistant — Control any web interface with natural language, with a built-in Skill system for platform-specific precision automation.

🌐 English | 中文

📖 Docs | 💻 Source


✨ What is Page Steer?

Page Steer is a browser extension + JS library that lets AI directly operate web pages. Instead of taking screenshots and guessing, it reads the live DOM, understands the page structure, and executes precise actions.

What makes it different:

  • Skill System — Platform-specific recipes (like Twitter/X, Google Trends) that bypass DOM guesswork. Skills use stable selectors (data-testid, aria-label) for reliable, token-efficient automation.
  • No screenshots, no vision models — Pure text-based DOM understanding. Works with any LLM.
  • Three ways, one engine — Chrome extension (sidepanel chat) for everyday users, MCP server for Cursor/Claude Desktop, or embed as JS for your own app.
  • Learns from use — AI records successful runs and replays them as reusable skills. Import/export to share.

🧩 Skill System

Skills are platform-specific automation recipes that give the AI precise, reliable actions instead of relying on DOM parsing every time.

┌─────────────────────────────────────────────┐
│  User: "Post a tweet saying hello world"    │
│                                             │
│  Agent detects: x.com → twitter skill       │
│  Agent calls: twitter_post_tweet({          │
│    text: "hello world"                      │
│  })                                         │
│                                             │
│  Skill executes via data-testid selectors   │
│  → Reliable, fast, no DOM guessing          │
└─────────────────────────────────────────────┘

Three Sources of Skills

| Source | Description | | ------------- | ---------------------------------------------------------------- | | Built-in | Ships with the extension (Twitter/X, Google Trends) | | Learned | AI records successful interactions and saves as reusable recipes | | Community | Import/export skills, share via the project repo |

Built-in Skills

| Skill | Actions | | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | | Twitter/X | get_timeline, post_tweet, like, retweet, reply, search, get_profile, get_tweet_detail | | Google Trends | search_explore, compare_terms, get_page_data, set_location, set_time_period, set_category, get_trending_now, get_trending_detail |

Skills target stable selectors (React data-testid, aria-label) for reliable, CSP-safe automation. More platforms coming — or write your own.

🏗️ Architecture

┌─────────────────────────────────────────────────────┐
│  Chrome Extension                                   │
│  ┌───────────┐  ┌──────────┐  ┌──────────────────┐ │
│  │ Sidepanel │  │   MCP    │  │   Background     │ │
│  │ (Chat UI) │  │  Server  │  │  (Skill Registry │ │
│  │  + Slash  │  │ (Native  │  │   + Executor)    │ │
│  │   Menu    │  │  Host)   │  │                  │ │
│  └─────┬─────┘  └────┬─────┘  └────────┬─────────┘ │
│        │              │                  │           │
│        └──────────────┴──────────────────┘           │
│                       │                              │
│              PageSteerCore (Agent Loop)              │
│              ┌────────┴────────┐                     │
│              │  Skill Tools    │ ← Auto-injected     │
│              │  + DOM Tools    │   based on URL       │
│              └────────┬────────┘                     │
│                       │                              │
│              PageController (DOM Ops)                │
└───────────────────────┼──────────────────────────────┘
                        │
                   Target Tab

Monorepo Packages

| Package | Purpose | | ----------------------------- | ---------------------------------------- | | @page-steer/page-controller | DOM extraction + visual feedback | | @page-steer/llms | LLM client with reflection-before-action | | @page-steer/core | Headless agent core | | @page-steer/ui | Panel UI + i18n | | page-steer | Main entry with UI (JS library) | | packages/mcp | MCP server for external AI clients | | packages/extension | Chrome extension (WXT + React) |

🚀 Quick Start

Chrome Extension

  1. Clone and build:
git clone https://github.com/cookiebody/PageSteer.git
cd page-steer
npm install
npm run build:ext
  1. Load in Chrome:

    • Go to chrome://extensions
    • Enable Developer mode
    • Click "Load unpacked" → select packages/extension/.output/chrome-mv3
  2. Open sidepanel, configure your LLM endpoint, and start chatting.

MCP Server (for Cursor / Claude Desktop)

cd packages/mcp
node src/install.js

Then add to your MCP client config. See MCP docs.

JS Library (embed in your app)

npm install page-steer
import { PageSteer } from 'page-steer'

const agent = new PageSteer({
    model: 'your-model',
    baseURL: 'https://your-api-endpoint/v1',
    apiKey: 'YOUR_API_KEY',
})

await agent.execute('Fill in the contact form with test data')

💡 Use Cases

  • Browser Automation — "Check my timeline" / "Post a tweet" / "Search AI agents"
  • SaaS AI Copilot — Embed in your product, ship AI copilot in lines of code
  • Smart Form Filling — Turn 20-click workflows into one sentence
  • Multi-tab Operations — Agent works across browser tabs via the extension
  • MCP Integration — Let Cursor/Claude Desktop control your browser

🛠️ Development

npm run dev:ext         # Extension dev mode
npm run dev:demo        # Demo dev server
npm run build           # Build all packages
npm run build:ext       # Build + zip extension
npm run typecheck       # Type check
npm run test            # Run tests

🤝 Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

⚖️ License

MIT License

👏 Acknowledgments

DOM processing components derived from browser-use (MIT License, Copyright (c) 2024 Gregor Zunic).


⭐ Star this repo if you find Page Steer useful!