← → or space to navigate
Tailscale Up · August 2026

The Tailnet
Is the Computer

Homelab services, AI agents, and chatting over netcat — life on a 595-peer network where the VPN quietly became the operating system.

Brian Scott · brianlscott.com · github.com/bscott

$ whoami

A confession

My tailnet, by the numbers

56
devices in the tailnet
595
peers in tailscale status (hi, Mullvad)
47
online right now
0
ports forwarded on my router
627
days since one iPad last checked in
3
humans this network actually serves

This talk is the story of how it got this way — on purpose.

Act I

Every service
is a node

The homelab pattern that changed everything: stop thinking "servers with ports" — start thinking "services with identities."

The homelab, tailnet edition

$ tailscale status | head -6
100.x.x.x   forgejo        linux  -
100.x.x.x   immich         linux  -
100.x.x.x   jellyfin       linux  -
100.x.x.x   homeassistant  linux  exit node
100.x.x.x   nas            linux  -
100.x.x.x   copyparty      linux  -

No reverse proxy spaghetti. No exposed ports. HTTPS via tailscale serve. ACLs decide who sees what.

War story

The zombie sidecar incident

Act II

chat-tails github.com/bscott/chat-tails

A chat server your friends join with netcat. No accounts. No client. No TLS certs to babysit. The tailnet is the auth layer.

tsnet: your Go binary is now a tailnet citizen

// ~40 lines to join the network
srv := &tsnet.Server{
    Hostname: "mychat",
}
ln, _ := srv.Listen("tcp", ":2323")

// who's connecting? tailscale knows
who, _ := srv.WhoIs(ctx, addr)
name := who.UserProfile.DisplayName
# everyone on the tailnet:
$ nc mychat.tailnet.ts.net 2323

Welcome to Chat Room!
[brian] anyone seen my iPad?
[ayanna] which one 💀

Identity for free. E2E encrypted by WireGuard. The app does zero auth code.

The pattern

When the network handles identity, encryption, and reachability… your app is just the fun part.

— why every side project I write now embeds tsnet

Act III

My AI agents live
on the tailnet

The plot twist: the heaviest users of my tailnet aren't humans anymore.

Personal AI Infrastructure, tailnet-native

🤖 AI agentsdesktop + servers
tailnetACLs · MagicDNS · WireGuard
Proxmox · NAS · Home Assistant
Forgejo · dashboards · KVMs
web UIs served tailnet-only

Why Tailscale is the perfect agent substrate

Agents need…Tailscale gives you…
Access to everything you ownone flat network, MagicDNS names
…but not TOO much accessACLs + tags per workload
Zero public attack surfaceno open ports, tailnet-only serve
Identity on every connectionWhoIs() on every socket
Working from anywherephone → tailnet → agent UI

The "personal AI" everyone is building needs a private nervous system. This is it.

The pattern · sequel to "Two Tailnets, Two Terminals, One Pattern"

Four layers. The tailnet is the load-bearing one.

4 · The agent Claude Code + PAI scaffolding — skills, hooks, memory
3 · Contained runtime a dedicated VM — snapshot-able, scoped, out of the blast radius
2 · Channels in & out phone, email, chat → dispatch → scoped tools, audit log
1 · The tailnet identity-aware substrate — the AI is just another node with an ACL on it

Swap the model, swap the framework — the tailnet layer survives every rewrite. The model is rented; the network is ours.

Watching the watchers

$ curl -s :9250/metrics | grep tailscale
tailscale_device_online{name="forgejo"} 1
tailscale_conn_type{type="direct"} 41
tailscale_conn_type{type="derp"} 6
tailscale_key_expiry_days{name="dockerhost"} 12
War story · the new attack surface

My agent leaked my tailnet to nine people

If you remember three things

Take it home

Build a tailnet chatgithub.com/bscott/chat-tails
Manage it from the terminalgithub.com/bscott/tailscale-tui
Embed the networktailscale.com/kb — tsnet
PAI scaffoldingourpai.ai · Daniel Miessler
The prequel talk"Two Tailnets, Two Terminals, One Pattern" — w/ Chris Cantey
My writingbrianlscott.com

The network is no longer how I reach my computers.

The network is the computer.

Brian Scott · brianlscott.com · github.com/bscott
Come say hi — or nc into my chat room. 🐕