How franc417/tailscale-ssh works
Tailscale SSH is a single-file CLI for discovering tailnet devices, checking SSH readiness, and connecting to a selected device. Its documented workflow also includes setup, account management, diagnostics, and configuration. The sampled source confirms monitoring and connection behavior; several command implementations and integrations are documented in the README but were not sampled, so their internal wiring is shown only where the command dispatcher owns it.
Main entry points: tailscale_ssh.py Command dispatcher
Components 18
CLI workflows
- Command dispatcher
tailscale_ssh.py - Device picker
tailscale_ssh.py - List and watch
tailscale_ssh.py - Diagnostics
tailscale_ssh.py
Discovery and state
- Tailnet monitor
tailscale_ssh.py - Device discovery
tailscale_ssh.py - SSH port probe
tailscale_ssh.py - Configuration
tailscale_ssh.py - Device preferences
tailscale_ssh.py
SSH connection
- SSH connection
tailscale_ssh.py - SSH key setup
tailscale_ssh.py
Setup and management
- Device setup
tailscale_ssh.py - Account profiles
tailscale_ssh.py - Engine update
tailscale_ssh.py
Other components
- User
- Tailscale CLI or API
- SSH client and server
- GitHub
Connections 28
- User → Command dispatcher: runs command
- Command dispatcher → Device picker: dispatches
- Command dispatcher → List and watch: dispatches
- Command dispatcher → Diagnostics: dispatches
- Command dispatcher → SSH connection: dispatches
- Command dispatcher → Device setup: dispatches
- Command dispatcher → Account profiles: dispatches
- Command dispatcher → Engine update: dispatches
- Device picker → Tailnet monitor: starts
- List and watch → Tailnet monitor: starts
- Diagnostics → Device discovery: checks tailnet
- Tailnet monitor → Device discovery: refreshes devices
- Tailnet monitor → SSH port probe: checks SSH
- Device discovery → Tailscale CLI or API: fetches status
- Device discovery → Configuration: reads profiles
- SSH port probe → SSH client and server: probes ports
- SSH connection → Device discovery: resolves devices
- SSH connection → SSH port probe: checks SSH
- SSH connection → Device preferences: reads and saves
- SSH connection → SSH key setup: offers key setup
- SSH connection → SSH client and server: invokes client
- SSH key setup → SSH client and server: installs public key
- Device setup → Tailscale CLI or API: installs or signs in
- Device setup → SSH client and server: starts server
- Device setup → SSH key setup: generates key
- Account profiles → Tailscale CLI or API: switches account
- Account profiles → Configuration: reads and writes profiles
- Engine update → GitHub: fetches engine