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

aindrive

v0.2.1

Published

Local agent for aindrive — connects any folder to a running aindrive web server (local or remote) via an outbound WebSocket. No inbound ports opened on your machine.

Readme

aindrive

Local agent for aindrive — connects any folder on your machine to an aindrive web server through an outbound WebSocket. No inbound ports are opened. Bytes never leave your machine unless requested over a signed RPC.

npm i -g aindrive
cd ~/Documents
aindrive
# first run: opens browser → click Authorize → folder is served at
# https://aindrive.ainetwork.ai/d/<drive-id>

aindrive will sign you in on first use. If you prefer to do it explicitly, aindrive login does the same thing — it opens https://aindrive.ainetwork.ai/cli-login/<linkId>, polls for your approval, and then immediately starts serving the current folder. Each pairing link is single-use and expires in 10 minutes.

Commands

aindrive [folder]          serve a folder (default: current dir; logs in on first use)
aindrive login             sign in and serve the current folder
aindrive status [folder]   show drive id, server URL, connection state
aindrive rotate-token      rotate the per-drive agent token
aindrive mcp               run a Model Context Protocol stdio server

MCP integration

aindrive mcp exposes every drive operation (list/read/write/share/grant /ask-agent/x402-resolve) to MCP-aware AI assistants — Claude Code, Claude Desktop, Cursor, etc. The same single npm install enables it; no extra package needed.

// claude_desktop_config.json or .mcp.json
{
  "mcpServers": {
    "aindrive": { "command": "aindrive", "args": ["mcp"] }
  }
}

Auth precedence:

  1. AINDRIVE_SESSION env (raw aindrive_session=... cookie)
  2. AINDRIVE_WALLET_COOKIE env (raw aindrive_wallet=... cookie)
  3. ~/.aindrive/credentials.json from aindrive login.

AINDRIVE_CAP env attaches a Meadowcap cap to every request; useful for agents that paid via x402 and want to reuse the cap from another box.

Flags

--server <url>   server URL (default: $AINDRIVE_SERVER or https://aindrive.ainetwork.ai)
--name <name>    name for this drive on first pairing
--no-open        do not open the browser
--version        print version

How it works

aindrive dials out to the configured server over WSS and waits for signed RPC calls (list, read, write, mkdir, …). Each request carries an HMAC built from a per-drive secret negotiated at pairing time; the server cannot read or write files without a valid signature. The server is a relay — it never touches your disk.

State lives in two places:

  • ~/.aindrive/credentials.json — login session for the configured server.
  • <folder>/.aindrive/config.json — per-folder drive id, secret, and agent token. Same directory also holds <folder>/.aindrive/willow.db (Y.Doc updates) and <folder>/.aindrive/yjs/<docId>.bin (latest snapshots) once the agent runs.

Pair a new folder with aindrive (uses your global login), or re-attach an existing drive by running aindrive inside a folder that already has .aindrive/config.json.

Self-hosting

Point at your own server with --server or AINDRIVE_SERVER:

AINDRIVE_SERVER=https://drive.example.com aindrive login
AINDRIVE_SERVER=https://drive.example.com aindrive ~/work

Requirements

  • Node.js ≥ 20

License

MIT