| Crates.io | ts-each |
| lib.rs | ts-each |
| version | 0.2.0 |
| created_at | 2025-11-19 22:01:53.916273+00 |
| updated_at | 2025-11-21 19:32:34.014988+00 |
| description | List tailscale peers (hosts), run commands on each of them, etc. |
| homepage | https://github.com/CleanCut/ts-each |
| repository | https://github.com/CleanCut/ts-each |
| max_upload_size | |
| id | 1940822 |
| size | 16,748 |
ts-eachA simple utility that runs a command on multiple remote hosts via tailscale/SSH, displaying the output. Supports macOS, Linux, Windows, and any Unix-like OS that has a tailscale command-line client in the path.
You should already have Tailscale installed and working.
You can install the latest release of ts-each using Cargo:
cargo install ts-each
Or to build from source, clone the repository and run:
cargo install --path .
Without any arguments, ts-each lists all available Tailscale SSH hosts:
ts-each
With a single argument, it lists all matching Tailscale SSH hosts that start with the provided prefix:
ts-each <host-prefix>
# For example, to list all hosts starting with "db-production-", do
ts-each db-production-
With multiple arguments, the first argument is the host prefix and the rest of the arguments are the command to execute on each matching host:
ts-each <host-prefix> <command> [args...]
# For example, to run `uptime` on all hosts starting with "web-", do
ts-each web- uptime
All software contributions are assumed to be dual-licensed under MIT/Apache-2.
Distributed under the terms of both the MIT license and the Apache License (Version 2.0).
See license/APACHE and license/MIT.