Your Droplets, in the terminal.
Watch your DigitalOcean Droplets from the terminal: live CPU, memory, and disk, sortable and searchable, with usage charts, SSH, and file uploads over SCP.
#Features
The things you open the DigitalOcean console for, without leaving your terminal.
▸ Live usage
CPU, memory, and disk for every Droplet. The bars change color as load climbs, so a busy box is easy to spot.
▸ Search & sort
Filter by name and sort by any metric. Your cursor sticks to the same Droplet while the list reorders around it.
▸ Usage charts
Open any Droplet to see its CPU, memory, and disk history over the last hour, six hours, or day.
▸ SSH
Press s and you're in a real shell — Sailor just runs your system ssh. Login details stick per Droplet.
▸ SCP upload
Pick files or folders in a small browser and send them to the Droplet's home directory. A progress bar tracks the transfer.
▸ Kind to the rate limit
Sailor only polls the Droplets near your cursor, so it stays under DigitalOcean's API cap — five Droplets or five hundred.
▸ Quick to start
The list is cached, so it shows up right away while fresh numbers load behind it.
#Install
Grab a prebuilt binary, or build from source with Go 1.26+.
# macOS (Apple Silicon) curl -L https://github.com/rohittp0/sailor/releases/latest/download/sailor-darwin-arm64.tar.gz | tar xz # Linux (x86-64) curl -L https://github.com/rohittp0/sailor/releases/latest/download/sailor-linux-amd64.tar.gz | tar xz ./sailor
Binaries are published for macOS and Linux on amd64 and arm64.
Or install with Go 1.26+:
go install github.com/rohittp0/sailor/cmd/sailor@latest
…or build from source:
git clone https://github.com/rohittp0/sailor.git cd sailor go build -o sailor ./cmd/sailor
#Usage
Sailor needs a DigitalOcean API token with the Monitoring read scope.
The token is resolved from the DIGITALOCEAN_ACCESS_TOKEN environment variable, falling back to your existing doctl configuration.
export DIGITALOCEAN_ACCESS_TOKEN=dop_v1_xxx
sailor
# …or, if doctl is already authenticated:
sailor
n/a: DigitalOcean always exposes CPU, but
memory and disk usage require the metrics agent (do-agent) on the Droplet.
Droplets without it show CPU only; powered-off Droplets show --.Keybindings
| Key | Action |
|---|---|
| j k ↑ ↓ | Move cursor |
| g / G | Jump to top / bottom |
| ctrl+d / ctrl+u | Page down / up |
| / | Filter by name (esc clears) |
| N C M D | Sort by name / CPU / memory / disk |
| enter / e | Expand to charts |
| s / S | SSH / edit SSH profile |
| u | Upload files/folders (SCP) |
| r | Refresh all |
| 1 2 3 | Chart window 1h / 6h / 24h (expanded view) |
| esc | Back to the list |
| ? | Toggle help |
| q | Quit |
#Expanded view
Press enter on a Droplet for stacked CPU / memory / disk charts. The time window is global and persists across Droplets.
SSH
Press s to connect. The first time, a prompt asks for the login user
(default root) and identity-file path; the choice is saved per Droplet in
~/.config/sailor/hosts.toml — paths only, no secrets — and reused afterward.
Sailor execs your system ssh, inheriting your keys, agent and ~/.ssh/config.
SCP upload
Press u to send local files or folders up to a Droplet.
A file browser opens where you started Sailor: l and h
move in and out of folders, space checks the things you want (from more than
one folder if you like), and enter uploads them to the home directory while a
progress bar tracks it. Check a folder and something inside it, and Sailor just sends the folder. It reuses your saved
SSH login and runs your system scp.
#How it stays under the rate limit
DigitalOcean allows ~5,000 requests/hour, and each fully-populated row costs three metric calls.
Sailor fetches all stats once at launch so the initial sort is correct, then settles into a cursor-centered window of up to ~23 active Droplets per minute. Off-screen rows keep their last value (dimmed) and refresh as you scroll to them. The expanded view pauses the list and polls just that one Droplet every 5 seconds.
The full design — including why the list re-sorts live and how the budget is spent — is recorded in ADR-0002. Sailor is read-only against your DigitalOcean account by design: it observes and connects, but never powers off, reboots, resizes, or destroys Droplets through the API. The SSH and SCP hand-offs act inside a server you already control (an upload writes files there), not on the control plane.