Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tailscale Host Selector

tss is a fast, interactive way to search, pick, and connect to your Tailscale peers from the terminal. It installs as tss, and works two ways: an interactive TUI picker, or a one-shot CLI that fuzzy-matches a name and connects you straight away.

brew install berggren/tap/tss
tts_demo

Features

  • Interactive TUI: Real-time filtering of peers by name or IP, with online/offline status and last-seen times.
  • One-shot CLI: Pass a name and connect immediately — with exact, prefix, substring, and fuzzy (typo-tolerant) matching.
  • Resilient connections: Connects via Mosh for reliability over flaky networks, automatically falling back to SSH.
  • Auto-discovery: Reads your peers from the Tailscale daemon (tailscale status), including standard macOS install locations.

Prerequisites

  • A Unix-like OS (macOS, Linux, BSD)
  • Tailscale installed and authenticated
  • SSH client installed
  • Optional: Mosh client installed

Installation

Homebrew (macOS and Linux)

brew install berggren/tap/tss

That taps berggren/homebrew-tap and installs a prebuilt binary. To upgrade later:

brew upgrade tss

Go

Install with Go (requires Go 1.24+):

go install github.com/berggren/tss/cmd/tss@latest

From source

Or build from source:

git clone https://github.com/berggren/tss.git
cd tss
go build -o tss ./cmd/tss
mv tss /usr/local/bin/

Verify it runs:

tss --version

Usage

Interactive picker (TUI)

Run tss with no arguments to open the picker. Type to filter, use the arrow keys to select, and press Enter to connect:

tss

Direct connect (CLI)

Pass a peer name (or IP) to connect in one shot. tss fuzzy-matches against your peers, so you don't need the exact hostname:

Given a peer named web-server:

tss web-server   # exact match — connects to "web-server"
tss web          # prefix match — resolves to "web-server" and connects
tss serv         # substring match — resolves to "web-server"
tss web-servr    # fuzzy match — tolerates the typo, resolves to "web-server"

When tss resolves your input to a different name, it tells you before connecting:

$ tss web
Resolved "web" to "web-server" (prefix match)

If the input is ambiguous or matches no online peer, tss falls back to the interactive picker, pre-filled with what you typed — so you can refine the selection instead of guessing.

Documentation

  • DEVELOPER.md — building from source, running tests, the code map, and a walkthrough of how the TUI works.
  • MAINTAINER.md — cutting releases and versioning policy.

About

Tailscale Host Selector

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages