Open source · Free forever

Start local HTTPS
in seconds

pugloo gives you clean HTTPS URLs for local development. Automatic SSL, path routing, WebSockets, and public tunnels in a single CLI.

Free · No account required · macOS & Linux

Terminal
$ npm i -g pugloo $ pugloo map myapp.test 3000 Mapping myapp.test → localhost:3000 Mapping saved Hosts entry added TLS certificate ready Proxy reloaded Done! Visit https://myapp.test
1 command
To go from localhost to HTTPS
Auto SSL
Trusted certificates, zero config
WebSocket
HMR support out of the box
How it works

Three steps. Zero config.

Go from localhost to a clean HTTPS domain in under 10 seconds.

1

Map your domain

Run pugloo map myapp.test 3000 to connect a .test domain to your local server.

2

Automatic setup

pugloo generates trusted SSL certs and updates your hosts file. Nothing manual.

3

Open in your browser

Visit https://myapp.test and get the full HTTPS experience locally.

No code? No problem

HTTPS that just works. Locally.

pugloo generates a local Certificate Authority on first run and creates per-domain certificates signed by it. Trust the CA once and every .test domain gets a green lock.

  • Auto-generated SSL certificates per domain
  • Wildcard support (*.myapp.test)
  • One-time pugloo trust to install the CA
  • Works in Chrome, Firefox, Safari, and curl
$ pugloo trust Trusting pugloo root CA... CA path: ~/.pugloo/ca/rootCA.pem CA trusted in system keychain $ pugloo map shop.test 4000 TLS certificate ready Done! Visit https://shop.test 🔒
For developers

Path-based routing for microservices

Route different paths to different ports on the same domain. Perfect for frontend + API setups, or any multi-service architecture.

  • Longest-prefix matching (/api/v2 before /api)
  • WebSocket proxying for HMR
  • Works with Vite, Next.js, webpack, and more
  • Hot reload without extra config
$ pugloo map app.test 3000 $ pugloo map app.test/api 8080 $ pugloo map app.test/ws 9090 $ pugloo list DOMAIN TARGET app.test → localhost:3000 app.test/api → localhost:8080 app.test/ws → localhost:9090
Team workflows

One config file for your whole stack

Drop a .pugloo.yaml in your repo. Define all domains, ports, and startup commands. Then run pugloo up to start everything.

Commit it to your repo so every teammate gets the same local setup.

.pugloo.yaml
domain: myapp.test services: /: port: 3000 command: npm run dev /api: port: 8080 command: npm run api /docs: port: 4000 command: npm run docs
Features

Everything you need. Nothing you don't.

Professional local development, without the professional headaches.

🔒

HTTPS Everywhere

Auto SSL certs with a locally trusted CA. Green lock in every browser. Zero manual setup.

🔀

Path-Based Routing

Route /api to one port and / to another. One domain, as many services as you want.

WebSocket Support

HMR works out of the box with Vite, Next.js, webpack. No proxy quirks to debug.

📄

Project Config

Define your whole stack in .pugloo.yaml. Commit it. Everyone gets the same local setup.

🌐

Public Sharing

Run pugloo share to get a public URL. Perfect for demos, testing webhooks, or quick feedback.

👻

Background Daemon

Runs quietly. Mappings persist across restarts. Start it and forget about it.

Changelog

Recent updates

The latest 5 release points. See the full changelog for complete history.

March 11, 2026
5:30 PM Released v0.1.5
Published v0.1.5 with local routing and forwarding reliability fixes.
5:10 PM Fixed hanging .test routes
Normalized `{ port }` mappings into upstream proxy targets so mapped domains load correctly.
4:50 PM Stabilized macOS forwarding
Switched PF rule setup to a dedicated anchor instead of replacing the main ruleset.
4:25 PM Improved CLI flow
`start`, `map`, and `up` now consistently attempt forwarding setup for cleaner first-run behavior.
4:00 PM Added regression coverage
Added tests for route normalization to prevent regressions in proxy target resolution.
View full changelog Read Stacktrace

Start a free trial.
Just kidding. It's free forever.

Install pugloo in one command and start mapping domains.

$ npm install -g pugloo

Works on macOS & Linux · Requires Node.js 18+