Tailscale Funnel alternative

lokei vs Tailscale Funnel

Tailscale Funnel publishes a service from a device that already belongs to a tailnet. lokei share publishes the active development project and treats its commands, local routes, service dependencies, and share lifecycle as one unit.

Last verified: July 16, 2026

npm install -g @ulpi/lokei && lokei setup
See the feature comparison

At a glance

Funnel is network-aware; lokei is application- and project-aware.

Scroll horizontally to see every column.

At a glance
CapabilitylokeiTailscale FunnelOfficial evidence
Required contextA configured or detectable project in the current directoryA device joined to a tailnet with MagicDNS, HTTPS, and Funnel policy enabled
Share command inputlokei share needs no port for a single-service projecttailscale funnel receives a target such as port 3000, a file, or a directory
Public hostnameA project-based lokei.dev hostname, with supported custom-domain optionsThe device's DNS name inside the tailnet's ts.net domain
Starting the serviceStarts a stopped framework, script, Compose stack, Sail project, or declared servicesProxies to the supplied target; application startup remains separate
Recipient requirementRecipients need only the URL unless the developer enabled protectionFunnel recipients need only the public URL and do not need to join the tailnet
Private sharingLocal .test routes stay on the development machine; public shares can be protectedTailscale Serve exposes the service only inside the tailnet, while Funnel makes it public

Feature-by-feature comparison

The table distinguishes public Funnel behavior from Tailscale Serve, which stays private to the tailnet.

01

Project and local workflow

Scroll horizontally to see every column.

Project and local workflow
CapabilitylokeiTailscale FunnelOfficial evidence
Named local development URLEvery project can use a trusted .test URL before it is sharedFunnel's documented job is public routing through a ts.net hostname, not local development naming
Framework and Docker awarenessDetects framework commands and discovers Compose, Sail, monorepo services, workers, and dependenciesFramework-neutral proxy from the public Funnel endpoint to the target on the device
Request inspection and replayBuilt-in local capture, filtering, editable replay, retention, and HAR exportNo application request inspector or replay workflow is documented as part of Funnel
02

Public endpoint behavior

Scroll horizontally to see every column.

Public endpoint behavior
CapabilitylokeiTailscale FunnelOfficial evidence
TLS and portsPublic HTTP applications are served over managed HTTPS without selecting a Funnel listener portFunnel is TLS-only and listens on ports 443, 8443, or 10000
Bandwidth and statusSharing behavior follows the selected lokei cloud plan and project share sessionFunnel is documented as beta and traffic is subject to non-configurable bandwidth limits
Custom public domainSupports custom-domain controls through lokei cloud capabilitiesFunnel can only use a DNS name in the tailnet's ts.net domain
03

Identity and lifecycle

Scroll horizontally to see every column.

Identity and lifecycle
CapabilitylokeiTailscale FunnelOfficial evidence
Who may create a shareThe signed-in lokei account creates and manages its project share sessionsA tailnet node attribute controls which tailnet members may enable Funnel
Public access protectionCan protect shared URLs with passwords or bearer tokensA Funnel URL is public; use Serve instead when access should remain limited to the tailnet
Share managementStatus, add, targeted stop, and all-service stop commands operate on a project share sessionThe Funnel CLI exposes status and reset controls for the device's configured targets

Where each product has a real edge

Funnel benefits from the tailnet around it; lokei benefits from understanding the application behind it.

01

Where Tailscale Funnel has a real edge

A natural public extension of an existing Tailscale network.

  • Publish a service through the device's stable ts.net identity.
  • Switch between private tailnet-only Serve and public Funnel workflows.
  • Use tailnet policy to control which members may enable public endpoints.
  • Keep relay servers from decrypting tunneled content, and publish a specific file or directory as well as a web service.
02

Where lokei has a real edge

A complete path from project folder to working local and public URLs.

  • Start the application and dependencies instead of requiring a running target port.
  • Give the project a trusted local HTTPS identity independent of public sharing.
  • Share one or several public HTTP services without exposing private workers or databases.
  • Inspect and replay application traffic through a project-local browser interface.

Which one fits your workflow?

The deciding question is whether your source of truth is a tailnet device or a development project.

01

Choose Tailscale Funnel if you...

  • Already manage the development machine inside a Tailscale tailnet.
  • Want the public URL tied to the device's ts.net identity.
  • Need Tailscale Serve for a related private-only sharing workflow.
  • Are comfortable supplying targets and managing application startup separately.
02

Choose lokei if you...

  • Want the current project folder to determine what starts and what is shared.
  • Need a readable local .test URL even when nothing is public.
  • Need Docker, Laravel, monorepo, and dependency-aware service discovery.
  • Want password or bearer-token protection for a temporary public application share.

Move project sharing without removing Tailscale

Tailscale can remain your device network while lokei owns local project startup and temporary public collaboration.

  1. 01Leave the machine connected to its tailnet and keep Serve rules used for private device access.
  2. 02Install @ulpi/lokei globally, run setup, and verify the machine with lokei doctor.
  3. 03From a development project, run lokei run to establish its named local HTTPS route.
  4. 04Use lokei share for project-aware public previews; keep Funnel for targets that should remain tied to the tailnet device identity.

Installing lokei does not require removing Tailscale. The tools can coexist because they own different local and network surfaces.

lokei vs Tailscale Funnel FAQ

Answers about tailnets, recipients, public names, ports, and private sharing.

Do recipients need Tailscale to open a Funnel URL?

No. Funnel is specifically the public option, so anyone can open the URL. Tailscale Serve is the related feature for access that should remain inside the tailnet.

Does lokei require Tailscale?

No. lokei provides its own local DNS, TLS proxy, project lifecycle, inspector, and hosted HTTP sharing workflow. Tailscale is not a dependency.

Which tool starts the application before sharing?

lokei. Funnel proxies to the target supplied to the CLI. lokei resolves the project command or service model, starts it when necessary, waits for readiness, and then creates the share.

Can Funnel use my own custom domain?

Not according to its documented requirements: Funnel names must belong to the tailnet's ts.net domain. lokei supports custom-domain capabilities through its hosted sharing plans.

Can I password-protect a Funnel URL?

Funnel itself creates a public URL. Tailscale recommends Serve when the resource should stay private to the tailnet. lokei can add password or bearer-token protection to a public development share.

Which is better for a multi-service repository?

lokei is better when services, dependencies, workers, and private infrastructure should be discovered and shared as one project. Funnel can publish configured targets, but the tailnet does not model the repository's application lifecycle.

Can both tools run on the same machine?

Yes. Tailscale continues to provide the tailnet and Funnel or Serve endpoints; lokei provides project-local .test routing and its own optional public shares. Avoid configuring both products to claim the same local listener port.

Sources and methodology

Tailscale claims use the official Funnel feature and CLI documentation. lokei claims use the public website and npm package documentation.

Verified July 16, 2026. Funnel is documented as beta and its requirements can change. Tailscale is a trademark of its respective owner. lokei is not affiliated with or endorsed by Tailscale. Public Funnel behavior is not conflated with private Tailscale Serve behavior.

$ lokei run

Share the application behind the device

Install lokei, complete setup once, and share a project without entering its target port.

npm install -g @ulpi/lokei && lokei setup