TUI SSH monitor for Synology DSM 7.x
- Python 3.12+ / Textual TUI with btop-style theme and 4 tabs (Dashboard, Logs, Services, Disks) - Paramiko SSH layer with ssh_config support, key fallback, keepalive and reconnect; async executor over a thread pool - Read-only collectors for system, storage, disks, network, logs and services; confirm dialog gates service restart/stop/start - Click CLI: dsmview ssh [-p PORT] [-i KEY] TARGET - Homebrew formula using virtualenv_install_with_resources - GitHub Actions release workflow: builds source tarball, regenerates Python resource blocks via homebrew-pypi-poet, pushes updated formula to janvete/homebrew-dsmview tap Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .github/workflows | ||
| dsmview | ||
| Formula | ||
| .gitignore | ||
| LICENSE | ||
| pyproject.toml | ||
| README.md | ||
dsmview
TUI SSH monitor for Synology DSM 7.x — read-only dashboard inspired by btop.
brew tap janvete/dsmview
brew install dsmview
Usage
dsmview ssh -p334 root@192.168.1.100
dsmview ssh root@192.168.1.100 # default port 22
dsmview ssh nas-home # alias from ~/.ssh/config
dsmview ssh -i ~/.ssh/id_nas root@IP
Reads ~/.ssh/config (HostName, Port, IdentityFile, ProxyJump). Tries
id_ed25519, id_ecdsa, id_rsa, then the SSH agent. Falls back to a
password prompt only when no key works.
Read-only philosophy
The application only reads data from the NAS. No agent is installed, no configuration is touched. The single exception is start/stop/restart of a service — and that requires explicit confirmation in the UI.
Tabs
- F1 Dashboard — CPU history graph, memory, storage pools, network throughput, load average, temperatures.
- F2 Logs — live tail of
/var/log/messagesand/var/log/auth.logwith severity filters (ALL / ERROR / WARN / SECURITY / INFO). - F3 Services —
synoservicectl --listtable with up/down status and restart/stop/start actions. - F4 Disks — per-disk model/size/temp/health from
smartctlplus RAID status from/proc/mdstat.
Keys
F1..F4 switch tab
r refresh now
q quit
Requirements
- Python 3.12+
- Synology DSM 7.x with SSH enabled and a user that can run system commands
(typically
rootor a user inadministrators).