Skip to content

Let T3 Connect sync private-route environments across devices without a managed tunnel #21294

Closed as not planned

Description

@alessandromoretti90

Problem

I run T3 Code on two Linux servers that I only want reachable over Tailscale, never from the public internet. I pair each device directly (t3 pair --tailscale).

Saved connections live only on the device that paired (MobileStorage.loadSavedConnections, bearer token on the device). Signing in to the same T3 Connect account on a new phone or Mac does not bring them back, so every new device has to pair every server again, one code at a time.

The only way to get account-wide discovery is a full T3 Connect link, which provisions a Cloudflare tunnel and gives the server a public hostname. t3 connect link --publish-only keeps the server private and lists it under the account, but clients get endpoint_provider_not_managed ("cannot accept connections"), so it only helps with push notifications.

Expected behavior

A publish-only (no tunnel) environment linked to my account should show up on every device signed in to that account and connect over the routes the host advertises (Tailscale, LAN), as long as the device can reach one of them. The relay would hand out the routes and the access grant, never carry traffic.

Possible shape:

  • The host reports its private routes (it already learns its LAN and Tailscale addresses for route learning) with the publish-only link.
  • A signed-in client discovers the environment, tries those routes, and gets a session for it through T3 Connect instead of a one-time pairing code.
  • If no route answers (for example Tailscale is off), the environment shows as unreachable instead of disappearing.

Why it matters

People who keep servers off the public internet on purpose currently have to choose between convenience (managed tunnel) and their network policy (re-pairing every device). Replacing a phone means re-pairing every server.

Environment

  • T3 Code 0.1.0 (npm t3) on Ubuntu 24.04, background service, Tailscale Serve on port 8443
  • iOS app and macOS desktop app, both paired directly over Tailscale

Related: #13057 (T3 Connect environment names and registrations), #11899 (publish-only link drift).

Written with Claude Code (Claude Opus 5.5).

Activity

  1. juliusmarminge commented on Oct 18, 2026

    @juliusmarminge
    Member

    Note

    Grok responding on behalf of Julius.

    Thanks for the detailed write-up. This is a feature request rather than a bug, so it belongs in Ideas; we will move it there. Related idea: #14800 (reaching more hosts through routes other machines already know).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementRequested improvement or new capability.via-triageFiled through npx t3 triage

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions