fleetsh / docs

About fleetsh

fleetsh keeps your VPS connection settings in one local inventory. Use it to connect over SSH, run a command on several machines, check resource usage, update packages or transfer a file.

It runs on Windows, macOS and Linux as a Go binary. The managed machines need SSH; they do not need fleetsh installed. You can also launch it through npm.

Common tasks

Task Command
Add a machine fleetsh add hk1
Change its settings or saved password fleetsh edit hk1
Diagnose a failed login fleetsh doctor hk1
Run a command on a group fleetsh exec '@web' "uptime"
Watch resource usage fleetsh stats '@all' --watch 5s
Run a saved command fleetsh run '@web' docker-update
Check restart requirements fleetsh reboot-required '@all'
Upload a file fleetsh upload hk1 ./script.sh /tmp/script.sh

add and edit use prompts in a terminal. For scripts, supply the required flags. A host can belong to several groups. Group selectors start with @; quote them in PowerShell.

See getting started for your first host and daily operations for the other commands.

Configuration and credentials

Connection settings are stored in a local TOML file. Passwords and passphrases are stored in the operating system’s credential store. The inventory contains only their references.

SSH connections support keys, passwords, an SSH agent, proxies and jump hosts. Local, remote and dynamic port forwards are configured by name.

See configuration for paths and examples, and security for host-key verification and credential handling.

Current limits

SFTP transfers handle one regular file at a time. OpenSSH import supports the fields listed in its help and reports unsupported settings. Monitoring reads Linux resource information. Commands are not retried automatically.

The roadmap lists remaining work. The project is maintained in KanataLabs/fleetsh under GPL-3.0-only.