Docs/Gateway/Network speed and diagnostics
Gateway

Why the app feels slow at home (and how to make it fast)

5 min read

You host your own Gateway and reach it from your phone or a browser. Sometimes the app feels slow - even at home, on the same Wi-Fi as the Gateway. The short version: that slowness is almost always a brief warm-up, not a broken setup. Give it a few seconds, or keep the app open, and it speeds up on its own. This page explains why, how to check, and how to fix the rare case that stays slow.

How your phone reaches the Gateway

Your phone and the Cockpit reach your Gateway through Tailscale, at a secure address like https://your-machine.your-tailnet.ts.net. Tailscale is required today because it is the one thing that gives your Gateway a web address browsers trust as secure - and your phone needs a secure connection before it allows the microphone, background updates, and notifications. Everything travels over a private, encrypted connection to your own machine.

Why the first few seconds can feel slow

Every Tailscale connection starts by routing through a relay server somewhere on the internet - on purpose, because a relay works the instant you open the app. While you use that relay, Tailscale quietly hunts for a direct path between your phone and your Gateway across your home network, and the moment it finds one it silently switches you over. No button, no setting - it just happens.

  • Warming up (relayed): the first moments after opening the app, your data may take a long trip to a distant relay and back - even though the Gateway is a few feet away.
  • Fast (direct): seconds later, your data goes straight across your own Wi-Fi.
Note

"Connected through Tailscale" does not mean slow. At home you are always connected through Tailscale - that is normal. What decides fast or slow is the path underneath: direct across your Wi-Fi, or bounced through the relay. A phone can show a Tailscale address and still be on a fast, direct home path - we have measured exactly that (a home phone on the Tailscale route with a direct LAN connection at 44 ms). The real question is direct vs relayed.

How to see which state you are in

Open Menu -> Diagnostics in the mobile app. It shows how the Gateway sees you (route), your latency, download and upload speed, and a plain-English verdict. Run it, wait a few seconds, run it again - if the second run is much faster, you just watched the warm-up finish.

The mobile Diagnostics page showing a cold-start relay result: 155 ms latency, 8.0 Mbps download, and a red verdict saying the connection is going through Tailscale and is slow
A cold-start Diagnostics result: high latency and a red verdict, taken moments after opening the app - a warm re-run seconds later is much faster

A single speed test cannot tell "warming up" apart from "genuinely stuck on the relay" - a slow first reading right after opening the app is usually just the warm-up. For the authoritative answer, ask your agent (below), or run Tailscale directly on the Gateway machine:

From the Gateway machine
tailscale ping <device-tailscale-ip>
tailscale status

A reply via 192.168.x.x (a home address) means direct and fast; a reply via DERP means you are still on the relay. As a yardstick: direct on a home network is single-digit to low-tens of milliseconds; stuck on a relay is 100+ ms.

Let your agent diagnose it

You should not have to work through a checklist by hand - you have a coding agent connected to your Gateway. Ask it "is my connection direct or relayed, and why is it slow?" It runs:

What the agent runs (you can too)
cc-devthrottle diag network
cc-devthrottle diag results

The Gateway checks every connected device - direct or relayed, latency, and whether UDP and your network look healthy - by reading the Tailscale layer directly, no phone involved. That is the one check that can tell warming-up apart from genuinely-relaying, and it points at the specific thing to fix.

If it stays slow: the checklist

  1. Re-test after a few seconds

    The warm-up usually finishes on its own. This alone explains most "it felt slow" moments.

  2. Keep the app open and use it

    Real activity pushes Tailscale to complete the direct connection faster; open-and-immediately-measure is the worst case.

  3. Grant Tailscale local-network access on your phone

    Tailscale needs permission to see devices on your home Wi-Fi to build the direct path. If it is off, you can get stuck on the relay. Check the Tailscale app's settings.

  4. Turn off exit nodes at home

    If your phone routes all traffic through a Tailscale exit node, your data leaves the house and comes back - defeating the direct home path.

  5. Fix router settings that block direct paths

    Turn OFF wireless client isolation (also called AP or guest isolation), and allow UDP with UPnP or NAT-PMP enabled - Tailscale uses these to punch a direct path through your router.

Tip
Worked through all five and still relayed? That is worth reporting - it usually points to a router or network policy that needs a closer look.
Note
Looking ahead: we are exploring a trusted secure address on your home network that would let your phone skip the Tailscale hop entirely at home - which would remove the warm-up delay for home use. Today the Gateway diagnoses and tells you exactly what to change; applying fixes automatically is being built.