How to access Happier from your phone over Tailscale

The setup I use to get a stable HTTPS link to Happier on my phone, without opening ports or relying on a LAN IP.

Based on
CLI
0.1.0
Preview ref
f36aa45

The first time I tried to access a self-hosted Happier stack from my phone, I hit a confusing browser constraint.

http://localhost works fine.

But the moment you switch to something like:

  • http://192.168.x.x:PORT
  • http://100.x.y.z:PORT (Tailscale IP)

…some browsers stop treating it as a secure context.

And Happier relies on secure-context browser features (WebCrypto), so “it loads but things feel broken” is a real failure mode.

The setup that actually worked for me was: Tailscale Serve, so I get an HTTPS *.ts.net URL that’s only reachable inside my tailnet.

TL;DR

  1. Install Tailscale on your computer and your phone.
  2. Enable Serve for your Happier stack (via hstack tailscale enable).
  3. Open the resulting https://*.ts.net URL on your phone.

What I tried first (and where I bounced off)

  • LAN IP + port: easy, but not HTTPS, and can break secure-context requirements.

  • Tailscale IP + port: still not HTTPS by default, so you hit the same issue.

  • Tailscale Serve: gives you the HTTPS URL you actually want, without opening ports to the internet. Trade-off: you need Tailscale installed/signed-in on each device.

If you’re new to Happier (what it is, and where to get it)

If you haven’t seen Happier before: it’s an open-source companion app (mobile/web/desktop) for AI coding agents like Claude Code, Codex, and OpenCode.

The workflow here is: run Happier on a machine you trust, then access it from your phone over a stable HTTPS link.

Get set up:

Why HTTPS matters here (the secure-context constraint)

Browsers treat http://localhost as secure, but they don’t treat random http://<ip>:<port> endpoints the same way.

So for remote access, you want HTTPS.

Tailscale Serve solves that in a nice, low-effort way: it gives you an HTTPS URL that’s only available inside your tailnet.

Step-by-step: enable Tailscale Serve for Happier

On the machine running Happier:

  1. Install Tailscale and sign in.
  2. Run:
hstack tailscale enable
hstack tailscale url
  1. Copy the URL.

On your phone:

  1. Install Tailscale and sign in to the same tailnet.
  2. Open the URL in Safari/Chrome.

Tip: on iOS, you can “Add to Home Screen” in Safari so it feels more app-like.

Automation (optional)

If Serve is already configured, hstack start can prefer the https://*.ts.net URL for canonical/share links.

For self-hosted servers, it can also help to set HAPPIER_PUBLIC_SERVER_URL so deep links and QR codes point to the HTTPS URL.

Troubleshooting

Symptom: the page loads, but things act weird (crypto / auth issues)

Likely cause:

  • you’re using plain HTTP over LAN/Tailscale IP instead of HTTPS

Fix:

  • switch to Tailscale Serve and use the https://*.ts.net URL
mobileself-hosttailscaleremote-access
Last updated: 2026-04-03