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

link-proxy

v0.1.7

Published

Non-MCP CLI proxy for LinkedIn — 16 flat RPC actions over LinkedIn REST v2 API

Readme

link-proxy

Non-MCP CLI proxy for LinkedIn — 10 flat JSON-RPC actions over official LinkedIn REST v2 API (openid profile email w_member_social). Follows the exact proxy architecture of whats-proxy and tick-proxy.

Built with Bun + TypeScript + Zod: meta+data envelope, do/admin namespaces, --format json|table, --output-file, autosave, declarative mandatory HITL, and destructive preflight identity locks.

Why

linkedin-mcp is an MCP server — useful inside MCP hosts, useless in a shell. link-proxy turns the same catalog into a solo CLI:

link-proxy do post-create '{"text":"Hello from the shell!","visibility":"PUBLIC"}'
link-proxy do profile-get
link-proxy do post-create-article '{"text":"Good read","url":"https://bun.sh"}'

No MCP runtime required. One binary, full catalog.

Install

make install

Requires Bun >= 1.1.

First run — pairing / authentication

link-proxy admin auth login          # Interactive HITL web form (credentials, client ID/secret, OAuth consent)
link-proxy admin auth status         # Check token status, days remaining, member details
link-proxy admin auth logout         # Clear stored token (HITL-confirmed)
link-proxy admin status              # System status, reachability probes, permissions check
link-proxy admin doctor              # Auto-fix permissions (0700 dir, 0600 token file)
link-proxy admin purge               # Delete config and token directory (HITL-confirmed)

Session credentials live in ~/.config/link-proxy/token.json — protected with 0600 permissions.

Usage

link-proxy do <action> [payload|file] [-o file] [-f json|table] [-h]
link-proxy admin auth login | status | logout
link-proxy admin status
link-proxy admin doctor
link-proxy admin purge
link-proxy --version
  • do — dispatch an action. payload is a JSON string or a path to a JSON file.
  • do <action> -h -f json — machine-readable per-action help (Zod schema from registry).
  • admin — auth lifecycle and diagnostics. Always JSON output; refuses -f/-o (exit 2).
  • Every response is an envelope: { "meta": { "status": "ok"|"error", "comment": "", "edited": false }, "data": {...} }.
  • Errors exit 1 with the envelope on stderr. Autosave writes each call to /tmp/link-proxy-autosave/.

Table format

link-proxy do profile-get -f table
+-------------------+----------------------------+
| Field             | Value                      |
+-------------------+----------------------------+
| name              | Ivann KAMDEM               |
| email             | [email protected]         |
| sub               | urn:li:person:abcdef1234   |
+-------------------+----------------------------+

Actions (10 — 6 impossible ones disabled 2026-09-05, code kept in place)

| Category | Count | Actions | |---|---:|---| | Profile | 2 | profile-get, profile-status | | Posts | 4 | post-create, post-create-image, post-create-article, post-create-full | | Social | 3 | post-like, comment-create, comment-reply | | Raw API | 1 | raw | | TOTAL | 10 | |

🚫 Disabled (commented, not deleted): post-delete (preflight GET 403), post-get (GET 403), post-list (FINDER 403), post-react (typed reactions rejected), comment-list (GET_ALL 403), comment-delete (DELETE 404). See CONTRACT.md § Known Limitations.

Run link-proxy do --help for the live catalog; link-proxy do <action> -h for per-action help.

Development

bun install
make check       # tsc --noEmit + bun test + smoke
make test        # unit tests only
make smoke       # end-to-end isolated smoke

Contract

CONTRACT.md is the authoritative implementation contract — safety, envelope, OAuth lifecycle, and catalog surface.

License

MIT