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

@clawminer/local

v0.2.4

Published

Clawminer local sidecar — a tiny localhost HTTP proxy that lets any AI agent activate and run Clawminer skills in the current conversation without restarting its MCP runtime. Writes ~/.clawminer/local.json for service discovery.

Readme

@clawminer/local

Tiny localhost sidecar that lets any AI agent activate and use Clawminer in the current conversation, without restarting its MCP runtime.

Why this exists

The MCP spec has a hole: most MCP clients (Claude Code, Claude Desktop, Cursor, Cherry Studio) read their server list once at startup and freeze it. Adding a new MCP server means restarting the runtime and starting a fresh conversation — a dealbreaker for IM-hosted agents (OpenClaw on DingTalk/WeChat) where there is only one persistent chat window.

This package sidesteps the problem: instead of asking the agent to install a new MCP server, it spawns a minimal HTTP server on 127.0.0.1 and writes ~/.clawminer/local.json so the agent can discover it. The agent uses its existing fetch / bash / HTTP capability — no MCP machinery, no restart, no new session.

Install and run

npx -y @clawminer/local@latest start

Output is a single line of JSON the agent can parse:

{"ok":true,"url":"http://127.0.0.1:19821","pid":12345,"settings_file":"/Users/you/.clawminer/local.json","activated":false,"hint_for_agent":"clawminer-local is running at http://127.0.0.1:19821. Not yet activated — POST http://127.0.0.1:19821/activate/request {\"email\":\"<user email>\"} to start the flow."}

The sidecar binds to loopback only. Kill it with clawminer-local stop or by sending SIGTERM to the pid.

Service discovery

Agents discover the sidecar by reading ~/.clawminer/local.json:

{
  "version": 1,
  "url": "http://127.0.0.1:19821",
  "pid": 12345,
  "started_at": "2026-04-15T10:30:00.000Z",
  "api_base_url": "https://api.clawminer.network/api/v1",
  "package": "@clawminer/local",
  "package_version": "0.1.0"
}

A stale pid (process gone) is cleaned up automatically on the next start.

Endpoints

All endpoints return JSON and include a hint_for_agent field on errors so the model knows exactly what to do next.

| Method | Path | Description | |---|---|---| | GET | /health | Liveness check | | GET | /status | Activation state, pid, started_at, hint_for_agent | | POST | /activate/request | Start the email+code bootstrap. Body: {email, locale?} | | POST | /activate/verify | Verify the 6-digit code. Body: {bootstrap_id, code} | | GET | /skills | List skills available to the activated user | | POST | /brain/run | Execute a skill. Body: {skill, input} |

On successful /activate/verify, the brain_key is persisted to ~/.clawminer/config.json (shared with @clawminer/mcp-server). Next start picks it up automatically and reports activated: true.

Agent-native flow in plain words

  1. Agent spawns the sidecar: npx -y @clawminer/local@latest start &
  2. Agent reads ~/.clawminer/local.json to get the URL.
  3. Agent asks the user for their email and POSTs /activate/request.
  4. The backend emails a 6-digit code. Agent asks the user for the code.
  5. Agent POSTs /activate/verify with the code. Backend returns a brain_key, sidecar stores it.
  6. Agent runs Clawminer skills via POST /brain/run with {skill, input}.

All of this happens in a single conversation turn sequence. No MCP client reload, no runtime restart, no new session.

Security model

  • Loopback only: the HTTP server rejects any connection whose remote address is not 127.0.0.1 / ::1 / ::ffff:127.0.0.1. It is not reachable from the network.
  • No credentials in flight: the sidecar proxies to api.clawminer.network over HTTPS. brain_key is stored in ~/.clawminer/config.json with 0600 permissions.
  • Zero runtime dependencies: only Node built-ins (http, fs, os, crypto). The entire source is ~400 lines in one file. Audit it yourself: sdk/clawminer-local/src/index.ts.
  • Kill switch: clawminer-local stop, or just kill <pid>. The settings file is removed on exit.

Relationship to @clawminer/mcp-server

This package is the fast-path activation companion to @clawminer/mcp-server. They are complementary, not competing:

  • @clawminer/local (this package) — immediate use in the current conversation via localhost HTTP. Runs in seconds, no config file edits, no runtime restart.
  • @clawminer/mcp-server — proper MCP integration with schema-validated tools. Installed via claude mcp add or equivalent, activates after the next runtime cold start for a permanent upgrade.

Both share ~/.clawminer/config.json so once you activate via @clawminer/local, the next time you restart your MCP runtime the MCP path picks up the same brain_key and the 7 MCP tools just work.

License

MIT