Dimension
ThinRemote
Tailscale
Primary purpose
Remote management & access
Mesh networking (VPN)
Device identity
Stable per-device identity, human names and asset metadata (site, customer, serial); re-links on reflash
Nodes keyed and named by join order; reflash or hardware swap can leave duplicate entries
Device observability
Built-in (CPU, memory, disk, network, I/O, temperature, uptime) plus custom metrics you define, queryable & on dashboards
Network reachability only (online/last-seen). Device metrics are bring-your-own
Alarms & thresholds
Native, over metrics & events (email / webhook)
Build it yourself on top of the tailnet
Fleet automation
Playbooks (YAML, check mode, batched rollout, failure kill-switch), parallel product exec
Not its job; pair with Ansible/SSH over the network
CI/CD & scripting
JSON envelope, exit codes, ad-hoc & stored playbooks
CLI, API, Terraform & ephemeral keys, to provision connectivity
Connection model
Outbound-only, hub-and-spoke. No inbound port, no listening socket, no lateral reachability
Flat overlay, any-to-any by default, scoped down with ACLs
Host network changes
None; an app-layer agent with no interface or route changes
Transparent mode adds a virtual interface and routes (MagicDNS for DNS)
Footprint & reach
<10 MB static binary, 16 Linux archs, kernel 2.4+, no TUN device
Heavier client; transparent mode needs a TUN interface, userspace mode drops the transparent IP
Where it runs
Your own private (single-tenant) instance, region of your choice, on-premise option; open-source agent & protocol
SaaS coordination plane; self-host via the community Headscale, which you then run yourself
Device APIs
Scripts become typed, callable resources; HTTP/TCP/TLS tunnels to local services
Tailscale SSH, Serve/Funnel; wire up the rest yourself
Surfaces
Web console, CLI and MCP server: dashboards, terminal, files, remote desktop
An admin panel for the network (devices, ACLs, DNS, keys)
AI agents (MCP)
Built-in MCP server to drive the whole fleet in natural language
None built in