proxlens
v1.2.2
Published
Share your localhost with clients. Built-in feedback widget + password protection.
Maintainers
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 proxlensThen launch it any time from any directory:
proxlensThat'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 startHow feedback works
Default (no configuration needed)
- Start a tunnel on any port
- Send the URL to your client
- Client sees your site with a Feedback button in the bottom-right corner
- They click it, click any element on the page, type a comment, press Send
- You get a desktop notification immediately
- The feedback appears in the Feedback tab of the app
- 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:
- Create a private GitHub repo to collect feedback (e.g.
yourname/client-feedback) - Go to github.com/settings/tokens/new, select the
reposcope, generate the token - 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
- Open Settings in the app
- Toggle Require a password on
- Type any password you want your client to use
- 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}/issueson 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:
- Fork the repo
- Create a branch:
git checkout -b feature/your-feature-name - Make your changes
- Commit with a clear message:
git commit -m "add: description of what you did" - Push to your fork:
git push origin feature/your-feature-name - 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 startruns cleanly before submitting
License
MIT
