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

proxlens

v1.2.2

Published

Share your localhost with clients. Built-in feedback widget + password protection.

Readme

Proxlens

Share your localhost with clients instantly. Built-in feedback widget, optional password protection, zero setup.

Proxlens is an open-source Electron desktop app. It wraps your local dev server in a public HTTPS URL via Cloudflare Tunnel, injects a feedback widget into every page your client sees, and saves their feedback locally on your machine — no accounts, no hosting, no cost.


What makes it different

Most tunnel tools just give you a URL. Proxlens adds a layer that's actually useful for client work:

  • Feedback widget — automatically injected into every page. Clients click any element, leave a comment, hit Send. No browser extensions, no separate tool, no client setup required.
  • Local feedback storage — every submission is saved to a JSON file on your machine, visible in the Feedback tab, persistent across sessions. Works with zero configuration.
  • GitHub Issues sync — optional. If you configure a GitHub token and repo, feedback is also posted as Issues in a private repo you own. Useful for keeping a permanent record per project.
  • Password protection — optional. Set a password in Settings; clients see a branded password page before accessing the preview.

Installation

Requirements: Node.js 18+, npm

Recommended — install globally via npm

npm install -g proxlens

Then launch it any time from any directory:

proxlens

That's it. No cloning, no project folder, no configuration. The app opens and works immediately.


Alternative — clone and run from source

If you want to contribute or inspect the code locally:

git clone https://github.com/Chiarinze/proxlens.git
cd proxlens
npm install
npm start

How feedback works

Default (no configuration needed)

  1. Start a tunnel on any port
  2. Send the URL to your client
  3. Client sees your site with a Feedback button in the bottom-right corner
  4. They click it, click any element on the page, type a comment, press Send
  5. You get a desktop notification immediately
  6. The feedback appears in the Feedback tab of the app
  7. It's saved permanently to your machine — still there the next time you open Proxlens

With GitHub Issues (optional upgrade)

When you configure a GitHub token and private repo in Settings:

  • Feedback is saved locally and posted as a GitHub Issue in the background
  • The Issue includes the page URL, the element selector, and the client's comment
  • The feedback card in the app updates to show a link to the Issue
  • If GitHub fails for any reason, the local save is unaffected — the client never sees an error

To set up GitHub sync:

  1. Create a private GitHub repo to collect feedback (e.g. yourname/client-feedback)
  2. Go to github.com/settings/tokens/new, select the repo scope, generate the token
  3. In Proxlens → Settings, enter the token and repo name, click Test, then Save

GitHub tokens expire. When yours expires, feedback will continue saving locally without interruption — you just won't get new Issues until you generate a fresh token and update Settings.


Password protection

  1. Open Settings in the app
  2. Toggle Require a password on
  3. Type any password you want your client to use
  4. Click Save

Clients see a simple password page before accessing the preview. The check happens locally in the proxy — the password never leaves your machine.


Architecture

Client Browser
     │  HTTPS
     ▼
Cloudflare Quick Tunnel  (free, temporary *.trycloudflare.com URL)
     │
     ▼
Proxlens Proxy  (localhost:51xxx — runs silently on your machine)
  ├─ Password gate (if enabled)
  ├─ Injects feedback widget into all HTML responses
  ├─ Handles /feedback submissions:
  │    1. Saves to local JSON file immediately
  │    2. Posts to GitHub Issues in background (if configured)
  └─ Tracks visits → desktop + in-app notifications
     │
     ▼
Your Dev Server  (localhost:3000 or whichever port you set)

Privacy & security

  • Settings (password, GitHub token) are stored in your OS user data folder via Electron's app.getPath('userData'). They are never uploaded anywhere.
  • Feedback is stored locally in the same folder as a plain JSON file.
  • Your GitHub token is only ever used to call POST /repos/{owner}/{repo}/issues on the repo you specify. It is never logged or transmitted to any Proxlens server (there is no Proxlens server).
  • The tunnel URL changes on every session. When you click Stop, the URL is dead instantly.

Exporting feedback

In the Feedback tab, click Export JSON. This opens the raw proxlens-feedback.json file from your user data folder. You can copy it, import it into a spreadsheet, or share it with a client directly.


Contributing

Contributions are welcome. To keep the codebase stable, all changes go through Pull Requests.

How to contribute:

  1. Fork the repo
  2. Create a branch: git checkout -b feature/your-feature-name
  3. Make your changes
  4. Commit with a clear message: git commit -m "add: description of what you did"
  5. Push to your fork: git push origin feature/your-feature-name
  6. Open a Pull Request describing what you changed and why

Before submitting a PR:

  • Open an issue first for anything beyond small bug fixes, so we can discuss it before you invest time building it
  • Keep PRs focused — one change per PR is easier to review than many changes bundled together
  • Test that npm start runs cleanly before submitting

License

MIT