Where Portless has a real edge
A focused proxy with several useful networking modes.
- Serve the same route under multiple local TLDs simultaneously.
- Use built-in LAN and mDNS support for testing on nearby devices.
Portless alternative
Both products replace fragile localhost ports with stable HTTPS names. The meaningful difference is how much of the surrounding development lifecycle the tool owns.
Last verified: July 16, 2026
npm install -g @ulpi/lokei && lokei setupThe fastest way to understand the product boundary.
Scroll horizontally to see every column.
| Capability | lokei | Portless | Official evidence |
|---|---|---|---|
| Default local URL | https://project.test with one active machine-wide local TLD | https://project.localhost with optional simultaneous custom TLDs | |
| Zero-argument startup | Detects the current project's development command and framework | Runs the package.json dev script and discovers workspace packages | |
| Public sharing | Built-in project-aware share sessions through lokei cloud | External integration through Tailscale, Funnel, or ngrok | |
| Traffic inspection | Built-in local capture, filtering, replay, and HAR export | No built-in request inspector is documented in the reviewed command surface | |
| Container workflow | Discovers Docker Compose and Laravel Sail, allocates ports, and routes public HTTP services | Persistent aliases can route an externally managed container port | |
| Runtime requirement | Node.js 22.12 or newer | Node.js 24 or newer | |
| Local use and account | Local development is free without an account; hosted sharing requires one | The local proxy is installed directly; public sharing relies on the selected external provider |
Built in means the capability is owned by the product. External integration means another service provides it.
Scroll horizontally to see every column.
| Capability | lokei | Portless | Official evidence |
|---|---|---|---|
| Trusted TLS and HTTP/2 | Built in through a locally trusted CA and local HTTPS proxy | Built in and enabled by default | |
| Name resolution | Local DNS resolves the active development TLD without one hosts entry per route | .localhost resolves natively; custom TLD routes are synchronized through /etc/hosts | |
| Git worktrees | Branch-derived subdomain prefixes are built in | Branch-derived subdomain prefixes are built in | |
| LAN device testing | Not documented as a dedicated discovery mode | Built-in LAN mode publishes .local names through mDNS |
Scroll horizontally to see every column.
| Capability | lokei | Portless | Official evidence |
|---|---|---|---|
| Framework-aware startup | Detects 30+ frontend and backend stacks, unwraps package runners, and injects framework-specific settings | Runs package scripts and documents automatic PORT, host, and flag injection for common JavaScript frameworks | |
| Monorepo startup | lokei.yaml defines public services, dependencies, workers, routes, and health checks | Workspace discovery starts packages with the selected script and supports per-app overrides | |
| Docker Compose and Laravel Sail | First-class discovery and lifecycle with private databases and caches kept internal | Static aliases can route a port, but Compose or Sail lifecycle is not documented as built in | |
| Application URL injection | Injects framework-specific application URL variables as well as the port | Provides PORT, HOST, PORTLESS_URL, and PORTLESS_TLD configuration |
Scroll horizontally to see every column.
| Capability | lokei | Portless | Official evidence |
|---|---|---|---|
| Local request inspector | Built in at the active inspect domain with replay and export | No equivalent is documented in the reviewed commands | |
| Share the current project | lokei share resolves the project context, starts it if needed, and manages one share session | Sharing flags pass the route to Tailscale, Funnel, or ngrok | |
| Public access controls | Named URLs, passwords, and bearer-token controls are available through lokei cloud plans | Access behavior depends on the selected external sharing provider |
Both products solve the port-number problem. Their strengths diverge after that first step.
A focused proxy with several useful networking modes.
A broader development lifecycle around the proxy.
Choose based on the job you want the tool to own.
The project files do not need to be rewritten. The only hard conflict is that both proxies normally own the standard HTTPS port.
Do not run both default HTTPS proxies on port 443 at the same time. You can return to Portless by stopping the lokei service before starting the Portless proxy.
Direct answers to the differences most likely to affect a local setup.
Yes. Both create and trust a local certificate authority and serve applications over HTTPS with HTTP/2. Their default names and resolution strategies differ.
Yes. Portless discovers npm-style workspaces and can start packages that expose the selected script. lokei additionally models service dependencies, internal workers, path routes, and health checks through lokei.yaml.
Yes, through documented integrations with Tailscale, Tailscale Funnel, or ngrok. lokei provides its own project-aware share session and hosted relay.
Yes, but their default HTTPS proxies cannot both bind port 443 simultaneously. Stop one proxy or service before starting the other.
lokei is designed for that case: run lokei run from the project directory and it detects the command, framework, and port. Portless can run package scripts and inject a port, but its direct route commands remain organized around an explicit route name or script.
lokei has first-class Compose and Sail discovery, starts the stack, identifies public HTTP services, and keeps databases, caches, and workers private. Portless can persist a domain-to-port alias, but its public documentation does not describe ownership of the Compose or Sail lifecycle.
Not simultaneously. lokei uses one active machine-wide development TLD, with .test as the default, and supports changing that TLD. Portless can serve the same route under several configured TLDs at once, which is a real advantage when a project must be exercised under multiple local suffixes.
Competitor claims use Portless's official documentation. lokei claims use the public website and published npm package documentation.
Verified July 16, 2026. Product capabilities can change. Portless is a trademark of its respective owner. lokei is not affiliated with or endorsed by Portless. Where the reviewed documentation does not describe a capability, this page says “not documented” rather than claiming the capability does not exist.
$ lokei run
Install lokei, complete the one-time machine setup, then run it from an existing project directory.
npm install -g @ulpi/lokei && lokei setup