portless-local
Simplifies local development by replacing port numbers with stable, named .localhost URLs for easier access and management.
Install this skill
Security score
The portless-local skill was audited on May 28, 2026 and we found 26 security issues across 3 threat categories, including 1 high-severity. Review the findings below before installing.
Categories Tested
Security Issues
Ngrok tunnel reference
| 429 | | ngrok | Public tunnel | `https://random.ngrok.io` | Share with others | |
Access to hidden dotfiles in home directory
| 161 | Stops the proxy, removes the CA from OS trust store, deletes allowlisted files under `~/.portless`, the system state directory, and removes the portless block from `/etc/hosts`. May prompt for elevate |
Access to hidden dotfiles in home directory
| 380 | | Port 1024+ (no sudo) | `~/.portless` | |
Access to hidden dotfiles in home directory
| 381 | | Windows (any port) | `~/.portless` | |
Access to .env file
| 31 | | **Hardcoded config** | CORS, OAuth, .env break when ports change | URLs are stable across restarts | |
Access to .env file
| 324 | echo "VITE_API_URL=$BACKEND_URL" > .env.local |
External URL reference
| 17 | > **Note:** By default, use HTTP (`http://myapp.localhost`). Only enable HTTPS (`--https` or `PORTLESS_HTTPS=1`) if the user specifically requests it (e.g., for OAuth, secure cookies, or HTTPS-only fe |
External URL reference
| 26 | | **Memorizing ports** | "Was the API on 3001 or 8080?" | Always `http://api.localhost` | |
External URL reference
| 29 | | **Agent confusion** | AI agents guess/hardcode wrong ports | `http://myapp.localhost` is deterministic | |
External URL reference
| 111 | portless alias my-postgres 5432 # -> http://my-postgres.localhost |
External URL reference
| 112 | portless alias redis 6379 # -> http://redis.localhost |
External URL reference
| 238 | # -> http://myapp.localhost |
External URL reference
| 242 | # -> http://myapp.localhost |
External URL reference
| 246 | # -> http://api.localhost |
External URL reference
| 254 | # -> http://api.myapp.localhost |
External URL reference
| 262 | # -> http://admin.myapp.localhost |
External URL reference
| 283 | # -> http://myapp.localhost |
External URL reference
| 287 | # -> http://fix-ui.myapp.localhost |
External URL reference
| 298 | # -> http://myapp.test |
External URL reference
| 312 | # -> http://my-postgres.localhost |
External URL reference
| 316 | # -> http://redis.localhost |
External URL reference
| 336 | 3. Requests to `http://<name>.localhost` are proxied to the app |
External URL reference
| 428 | | **portless** | Local proxy | `http://myapp.localhost` | Clean local dev URLs | |
External URL reference
| 429 | | ngrok | Public tunnel | `https://random.ngrok.io` | Share with others | |
External URL reference
| 430 | | cloudflared | Public tunnel | `https://myapp.trycloudflare.com` | Share with others | |
External URL reference
| 434 | - [portless.sh](https://portless.sh/) - Official documentation |