{"slug": "portless", "name": "portless", "category": "terminal", "category_name": "Terminal and shell", "description": "", "recommenders": 3, "commenters": 7, "warners": 1, "score": 2.572, "rising": -0.98, "first": "2026-03-20", "latest": "2026-05-22", "why": "Portless is a great tool for this! I use it for all my apps now. Zero config + built in HTTPS locally.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 3, "compare": 0, "warn": 1}, "spark": [0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "Portless is a great tool for this! I use it for all my apps now. Zero config + built in HTTPS locally.", "kind": "", "icon": true, "domain": "portless.sh", "github_repo": null, "official_url": "https://portless.sh/", "pricing": "", "aliases": ["portless", "Portless"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 771917954, "item_id": 48244872, "url": "https://news.ycombinator.com/item?id=48244872", "by": "chrisvenum", "date": "2026-05-22", "version": null, "stance": "recommend", "quote": "I use Vercels open source package portless to spin up a dev server with unique ports", "excerpt": "I have this issue at work, I asked CC to create a very simple bun CLI tool that can be hard to create, destroy and list worktrees. The CLI seeds the .env file with a url, db for that worktree and I use Vercels open source package portless to spin up a dev server with unique ports so I get a url per worktree", "context": "", "use_case": "", "switched_from": "", "story": "Open source Kanban desktop app that runs parallel agents on every card"}, {"id": 767600032, "item_id": 47975002, "url": "https://news.ycombinator.com/item?id=47975002", "by": "vlucas", "date": "2026-05-01", "version": null, "stance": "recommend", "quote": "Portless is a great tool for this! I use it for all my apps now. Zero config + built in HTTPS locally.", "excerpt": "Portless is a great tool for this! I use it for all my apps now. Zero config + built in HTTPS locally. https://portless.sh/ Example from the website: - \"dev\": \"next dev\" # http://localhost:3000 + \"dev\": \"portless myapp next dev\" # https://myapp.localhost", "context": "", "use_case": "local dev hostnames instead of ports", "switched_from": "", "story": "I Got Sick of Remembering Port Numbers"}, {"id": 759377664, "item_id": 47461104, "url": "https://news.ycombinator.com/item?id=47461104", "by": "msdz", "date": "2026-03-20", "version": null, "stance": "recommend", "quote": "something like portless[1] which literally maps ports to human- (and language model-)readable, named .localhost URLs.", "excerpt": "> that they're unable to [manage and] kill child processes they themselves spawn makes it seem like they have zero clue about what they're doing. Yeah, at the bare minimum these projects could also use something like portless[1] which literally maps ports to human- (and language model-)readable, named .localhost URLs. Which _should_ heavily alleviate assignment of processes to projects and vice versa, since at that p", "context": "", "use_case": "Named localhost URLs", "switched_from": "", "story": "Show HN: Sonar \u2013 A tiny CLI to see and kill whatever's running on localhost"}]}], "caveats": [], "who": [], "tags": [], "use_cases": ["local dev hostnames instead of ports", "named localhost urls"], "compared": [], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=47939246", "title": "I Got Sick of Remembering Port Numbers", "mentions": 5}, {"url": "https://news.ycombinator.com/item?id=48239413", "title": "Open source Kanban desktop app that runs parallel agents on every card", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47452515", "title": "Show HN: Sonar \u2013 A tiny CLI to see and kill whatever's running on localhost", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {}, "2026-01": {}, "2026-02": {}, "2026-03": {"recommend": 1}, "2026-04": {"warn": 1}, "2026-05": {"neutral": 3, "recommend": 2}, "2026-06": {}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 771917954, "item_id": 48244872, "url": "https://news.ycombinator.com/item?id=48244872", "by": "chrisvenum", "date": "2026-05-22", "version": null, "stance": "recommend", "quote": "I use Vercels open source package portless to spin up a dev server with unique ports", "excerpt": "I have this issue at work, I asked CC to create a very simple bun CLI tool that can be hard to create, destroy and list worktrees. The CLI seeds the .env file with a url, db for that worktree and I use Vercels open source package portless to spin up a dev server with unique ports so I get a url per worktree", "context": "", "use_case": "", "switched_from": "", "story": "Open source Kanban desktop app that runs parallel agents on every card"}, {"id": 767606096, "item_id": 47975381, "url": "https://news.ycombinator.com/item?id=47975381", "by": "OriPekelman", "date": "2026-05-01", "version": null, "stance": "neutral", "quote": "Vercel later  did https://github.com/vercel-labs/portless", "excerpt": "This is really amusing. Because absolutly eveyrone I know vibe-coded this thing. I think the first one was https://github.com/ralt/dns-to-port possibly mine is second (but it is very much a joke so I am not linking it) .. Vercel later did https://github.com/vercel-labs/portless and I would imagine quite a few others. Zeitgeist. Also this does probably mean its kinda useful. And that none of us can get bothered to \"Go", "context": "", "use_case": "", "switched_from": "", "story": "I Got Sick of Remembering Port Numbers"}, {"id": 767605024, "item_id": 47975314, "url": "https://news.ycombinator.com/item?id=47975314", "by": "BrandiATMuhkuh", "date": "2026-05-01", "version": null, "stance": "neutral", "quote": "Just yesterday I looked at https://portless.sh/", "excerpt": "Cool project. Just yesterday I looked at https://portless.sh/ which is vercels take.", "context": "", "use_case": "", "switched_from": "", "story": "I Got Sick of Remembering Port Numbers"}, {"id": 767600032, "item_id": 47975002, "url": "https://news.ycombinator.com/item?id=47975002", "by": "vlucas", "date": "2026-05-01", "version": null, "stance": "recommend", "quote": "Portless is a great tool for this! I use it for all my apps now. Zero config + built in HTTPS locally.", "excerpt": "Portless is a great tool for this! I use it for all my apps now. Zero config + built in HTTPS locally. https://portless.sh/ Example from the website: - \"dev\": \"next dev\" # http://localhost:3000 + \"dev\": \"portless myapp next dev\" # https://myapp.localhost", "context": "", "use_case": "local dev hostnames instead of ports", "switched_from": "", "story": "I Got Sick of Remembering Port Numbers"}, {"id": 767556560, "item_id": 47972285, "url": "https://news.ycombinator.com/item?id=47972285", "by": "bennett_dev", "date": "2026-05-01", "version": null, "stance": "neutral", "quote": "Sounds similar to Vercel\u2018s portless CLI", "excerpt": "Sounds similar to Vercel\u2018s portless CLI (https://portless.sh/)", "context": "", "use_case": "", "switched_from": "", "story": "I Got Sick of Remembering Port Numbers"}, {"id": 767543729, "item_id": 47971483, "url": "https://news.ycombinator.com/item?id=47971483", "by": "hotfixguru", "date": "2026-04-30", "version": null, "stance": "warn", "quote": "", "excerpt": "Vercel\u2019s portless is a great alternative, but unfortunately it doesn\u2019t work well with oauth flows. I\u2019ve built portmap[0] to solve that. Also comes with skills which makes it work really great with coding agents (instructions in the readme). [0] https://github.com/JonasKs/portmap", "context": "", "use_case": "", "switched_from": "", "story": "I Got Sick of Remembering Port Numbers"}, {"id": 759377664, "item_id": 47461104, "url": "https://news.ycombinator.com/item?id=47461104", "by": "msdz", "date": "2026-03-20", "version": null, "stance": "recommend", "quote": "something like portless[1] which literally maps ports to human- (and language model-)readable, named .localhost URLs.", "excerpt": "> that they're unable to [manage and] kill child processes they themselves spawn makes it seem like they have zero clue about what they're doing. Yeah, at the bare minimum these projects could also use something like portless[1] which literally maps ports to human- (and language model-)readable, named .localhost URLs. Which _should_ heavily alleviate assignment of processes to projects and vice versa, since at that p", "context": "", "use_case": "Named localhost URLs", "switched_from": "", "story": "Show HN: Sonar \u2013 A tiny CLI to see and kill whatever's running on localhost"}]}