What problem does it solve?
This Skill solves common local development pain points caused by port-based URLs: port conflicts (EADDRINUSE) when multiple projects use the same default port, the need to memorize which service runs on which port, stale browser tabs showing the wrong app after restarting a server on a reused port, scaled issues in monorepos with multiple services, AI agents guessing or hardcoding incorrect ports, cookie and localStorage clashes across apps on localhost, broken hardcoded ports in CORS allowlists, OAuth redirects, and .env files, the hassle of sharing URLs with teammates, and useless mixed browser history for unrelated localhost projects.
Core Features & Use Cases
- Stable named .localhost URLs: Replace port numbers with memorable, consistent URLs like http://myapp.localhost instead of http://localhost:3000, eliminating port guesswork and conflicts.
- Multi-service and worktree support: Assign unique named URLs to multiple services in a monorepo, with automatic subdomain prefixes for git worktree branches so each worktree gets a distinct address without extra configuration.
- Framework and browser compatibility: Auto-injects correct port flags for frameworks that ignore the PORT environment variable (Vite, Astro, React Router, etc.), supports HTTP/2 and HTTPS with auto-generated local CA, and syncs /etc/hosts to fix Safari .localhost subdomain resolution issues.
- Use Case: For a team working on a monorepo with a Next.js frontend, Express API, and documentation site, use portless to assign each service a unique named URL, so team members never have to ask which port a service runs on, and AI agents reliably hit the correct endpoint when testing or debugging.
Quick Start
Use the portless skill to set up stable named .localhost URLs for your local development servers, eliminating port conflicts and making service access consistent for your team and AI tools.