Built for your Tailscale tailnet
Tailminal puts a secure terminal server on every machine in your tailnet. Exec commands from anywhere, attach to persistent shell sessions, and let your AI agents drive it all — plain stdin, plain stdout.
$ tailminal exec laptop -- adb devices List of devices attached emulator-5554 device $ tailminal attach laptop laptop ~ ▌
Run a command on any node and stream stdout/stderr live. Exit codes propagate — perfect for scripts and CI-style checks.
Interactive shells that survive disconnects. Detach on your laptop, reattach from your PC with full scrollback replay.
tailminal exec and tailminal attach are plain stdin/stdout subprocesses. Any agent framework can spawn them — zero SDK integration.
Each device serves a dashboard: host list, live xterm.js terminal, and a quick-command form. No client install needed.
Nothing leaves your tailnet. Every API call requires a per-node bearer token. No accounts, no cloud, no telemetry.
Windows (PowerShell & CMD), macOS (zsh), Linux (bash/sh). Same package everywhere — peer-to-peer, no hub, no single point of failure.
Every node runs the identical server. Peers are discovered via MagicDNS. No central coordinator — if a node is up, it works.
git clone <your-fork> && cd tailminal pnpm install && pnpm build
tailminal serve
# generates ~/.tailminal/token + config.json
tailminal hosts tailminal exec laptop -- uname -a tailminal attach laptop
Add peers to ~/.tailminal/config.json — they appear in the CLI
and the web UI automatically.
Don't scrape this page — fetch /llms.txt. It contains the full
setup guide, API surface, and copy-paste integration patterns written for
machines.