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

yadagent

v0.1.2

Published

Yad companion (Part B, the brain). Pairs with the Yad Chrome extension for real-browser automation, or runs standalone with Playwright and your own Ollama instance. No cloud copy of your accounts.

Downloads

42

Readme

yadagent

Part B of Yad, the companion (the brain).

Yad is two separate pieces you install separately:

  • Part A, the hand: the Yad browser extension. Install it from the Chrome Web Store. Also works in Brave.
  • Part B, the brain: this package. It runs locally on your machine and either pairs with Part A to drive your own real, logged-in browser, or runs on its own as a standalone automation server.

Source and full docs: github.com/holistis/al-yad

Two modes, not one

This package does not try to hide that it has two genuinely different modes behind one CLI. Picking the wrong one for what you actually want is worse than reading one extra paragraph first.

npx yadagent pair

Sets up native messaging so this companion can pair with the Yad Chrome extension (Part A) and drive your own real, logged-in browser. Your session, your cookies, your logins, nothing carried anywhere else.

Windows only today for the registration step. macOS and Linux support is an open, tracked task in the project's CONTRIBUTING.md, not a silent gap. Running this on another OS still generates the pairing manifest correctly, it just tells you plainly that the registration step is not there yet for your platform, instead of failing confusingly.

You still need to install the extension itself from the Chrome Web Store separately. This command only sets up the local half of the pairing.

The registration points Chrome at this exact copy of the package, wherever npx happened to install it. If you run pair from a throwaway project and later delete that project, the pairing breaks and needs to be set up again from wherever you keep it. For a pairing that should stick around, install globally first (npm install -g yadagent) and run pair from there instead of through a one-off npx.

npx yadagent serve

Runs a standalone HTTP automation server. No browser extension, no paired session. Headless Chromium via Playwright, your own Ollama instance for the model. Cross-platform.

Every run starts a fresh, empty browser. Nothing from your real browser profile carries over, no saved logins, no cookies. That is a real tradeoff, not a limitation to work around: if you want your own logged-in session, that is what pair is for.

OLLAMA_BASE_URL=http://localhost:11434 npx yadagent serve

Environment variables:

| Variable | Required | Default | What it does | |---|---|---|---| | OLLAMA_BASE_URL | yes | none | Where your Ollama instance is reachable | | OLLAMA_MODEL | no | qwen2.5:7b | Which model to use | | YAD_PORT | no | 3747 | Port to listen on | | YAD_HOST | no | 127.0.0.1 | Interface to bind to. Set this explicitly (e.g. 0.0.0.0) to reach the server from another machine. Non-local requests then still require YAD_EXTERNAL_MODE=1 plus a valid X-API-Key from YAD_API_KEYS — set only YAD_HOST, without those, and remote requests keep getting a 403. |

Endpoints once running: GET /status, POST /goal (body: { goal, url?, domains?, maxSteps?, sync? }).

Built-in guardrails, always on regardless of configuration: a hard concurrency limit, goal text sanitization, a scope guard that blocks actions outside domains you allow, a hard deny-list on payment and checkout paths, a 10 MB request-body cap, and a Host-header check against DNS-rebinding attempts.

What this package will never do

No cloud copy of your browser session. No data leaves your machine except the model calls you already configured (your own Ollama instance, or in pair mode, whatever the extension is set to use). Read the security writeup at yadagent.com for the fuller picture, including the project's own red-team testing results, published rather than just claimed.

MIT licensed.