Version 0.5.2
Released: RecentDocumentation
- Add git worktree documentation to README, docs site, and agent skill.
portless runautomatically detects linked worktrees and prefixes the URL with the branch name (e.g.fix-ui.myapp.localhost). - Document worktree support in 0.5.0 changelog entry.
Version 0.5.1
Bug Fixes
- npm README: Copy root
README.mdinto the package at publish time so it appears on npmjs.com. - homepage: Point npm homepage to https://port1355.dev.
Version 0.5.0
Major release with worktree support, alias command, and more.Features
-
portless runsubcommand: Automatically infer the project name frompackage.json, git root, or directory name instead of specifying it manually. In git worktrees, the branch name is prepended as a subdomain prefix (e.g.fix-ui.myapp.localhost) so each worktree gets a unique URL with no config changes. #55, #68 -
portless aliascommand: Register routes for services not spawned by portless (e.g. Docker containers with published ports). Aliases persist across stale-route cleanup. #73 -
PORTLESS_URLenv var: Child processes now receivePORTLESS_URLcontaining the public.localhostURL (e.g.http://myapp.localhost:1355) so apps can self-reference their own URL. #56 -
--app-portflag: Specify a fixed port for the app instead of automatic assignment. Also configurable viaPORTLESS_APP_PORTenv var. Useful when integrating with tools that provide their own port. #72 -
Wildcard subdomain routing: Subdomains now match registered hostnames (e.g.
tenant.myapp.localhostmatchesmyapp.localhost). Exact matches take priority over wildcard matches. #71 -
/etc/hostssync: Automatically sync.localhosthostnames to/etc/hostsfor environments where.localhostdoes not resolve to127.0.0.1by default (Safari fix). #74 -
Multi-distro Linux CA trust:
portless trustnow supports Arch, Fedora/RHEL/CentOS, and openSUSE in addition to Debian/Ubuntu. Falls back to command probing when/etc/os-releasedetection fails. #45 -
Expo and React Native support: Auto-inject
--portand--hostflags forexpo startandreact-native start. #42 - Branded error and status pages: The proxy now renders styled HTML pages for 404, 502, 508, and other status codes instead of plain text. #70
Bug Fixes
- Stream errors: Handle proxy stream errors gracefully to prevent unhandled exceptions from crashing the proxy. #57
Version 0.4.2
Bug Fixes
-
spawn ENOENT: Use
/bin/sh -cfor command execution so shell scripts and version-manager shims (nvm, fnm, mise) are resolved correctly. Prependnode_modules/.bintoPATHso local project binaries (e.g.next,vite) are found without a global install. #21, #29 -
Sudo state directory permissions: System state directory (
/tmp/portless) now uses world-writable + sticky-bit permissions (1777) so non-root processes can register routes after a sudo proxy start. Route and state files created under sudo are chowned back to the real user. #16 -
Duplicate route names:
addRoutenow checks for an existing live route and throwsRouteConflictErrorif the hostname is already registered by a running process. Use--forceto override. #38 -
TLS SHA-1 rejection: Force SHA-256 for all CA and server certificate generation. Detect and regenerate existing SHA-1 certificates automatically. Uses the
opensslCLI for signature algorithm checks to maintain compatibility with Node.js < 24.9. #36 -
Per-hostname certs for
.localhostsubdomains: Issue a per-hostname certificate with an exact SAN for every.localhostsubdomain (including single-level likemyapp.localhost).*.localhostwildcard certs are invalid because.localhostis a reserved TLD per RFC 2606 section 2. #18 -
Terminal left in raw mode: Reset
stdin.setRawMode(false)on process exit so the terminal is not left in raw mode after SIGINT. #51
Features
-
Proxy loop detection: Detect forwarding loops (e.g. a Vite dev server proxying back through portless without
changeOrigin: true) using theX-Portless-Hopsheader. Respond with508 Loop Detectedand a message explaining the fix. Also detects loops on WebSocket upgrades. #48, #52 -
--forceflag: Override a route registered by another process withportless <name> --force <cmd>.
Version 0.4.1
Bug Fixes
- Fix Vite support and add e2e tests for 11 frameworks. #32
Version 0.4.0
Features
- HTTP/2 + HTTPS support: Auto-generated local CA and per-hostname TLS certificates for faster dev server page loads via HTTP/2 multiplexing. #10
Version 0.3.0
Bug Fixes
- Fix proxy routing issues. #4
Version 0.2.2
Improvements
Version 0.2.1
Bug Fixes
- Fix proxy routing issue.
Version 0.2.0
Features
- Add
--port/-pflag to the proxy command.
Version 0.1.0
Initial release.- Replace port numbers with stable, named
.localhostURLs - Auto-start proxy on first use
- Support for all major frameworks (Next.js, Vite, Express, etc.)
- Subdomain support
- Auto-inject
--portflag for frameworks that ignorePORTenv var