My Synology NAS Now Lives in Claude Code — Without the DSM Clicking
A Synology NAS is a wonderfully low-maintenance piece of hardware — right up until the moment you want to know how it's really doing. How warm are the disks? Has one started reallocating sectors? Is the Nextcloud stack still running, or did it hang after the last reboot? Is a DSM update due? For every one of those questions it's the same routine: log in, click through DiskStation Manager, find the right submenu.
That clicking is exactly what I wanted to get rid of. So I built Synology Manager Plus — a plugin for Claude Code that manages my NAS entirely over SSH. Instead of navigating DSM, I type /health-summary or /smart-status and get a structured answer right away.
TL;DR
- What: a Claude Code plugin for managing Synology NAS over SSH
- For whom: NAS homelabbers and admins who prefer SSH over the web UI
- Cost: none — open source under MIT
- Core idea: read-only by default, no DSM Web API, one or many NAS from a single session
A fork that fixes three things
Synology Manager Plus is a fork of Daniel Rosehill's synology-manager-plugin — a great idea that snagged in three places: marketplace installation didn't work, setup ran through a sub-agent that couldn't hold a multi-turn dialog, and real health checks were missing entirely. The fork fixes exactly that and has grown across several releases since: SMART health, a log viewer, a DSM update check, a complete Docker Compose set and multi-NAS management.
Set up in five minutes
Setup is deliberately guided. The only prerequisite is an enabled SSH service in DSM (Control Panel → Terminal & SNMP). Then:
/plugin marketplace add CallMeTechie/synology-manager-plus
/plugin install synology-manager-plus@synology-manager-plus
/first-run
/first-run asks for the LAN host, an optional WAN host, the port and the user. Then it takes care of the SSH key — Synology Manager Plus uses its own dedicated Ed25519 key and doesn't mix with your GitHub keys. You deploy the public part with a one-liner the plugin gives you to copy:
! ssh-copy-id -p 22 -i ~/.ssh/synology-manager-plus_ed25519.pub admin@192.168.1.10
The leading ! matters — it opens a real terminal in Claude Code for password entry (and you accept the host key fingerprint once during it). After that, the plugin detects model, DSM version, RAM, RAID and Docker automatically and verifies with /diag that all seven health checks are green.
The commands I use every day
My first move in the morning is the health overview:
/health-summary
RAID: SHR-1 healthy
Volume1: 58% used
Disks: sda 41°C, sdb 39°C
Memory: 62% Load(5m): 0.4
Verdict: ok
When I have several NAS, I simply append --all — then the command walks the whole fleet sequentially and gives me a verdict based on the worst single value. Then I drill down:
/smart-status— SMART health per disk with a clear pass/warn/critical (a single pending sector is enough forcritical)/nas-status— usage, RAID, services, load at a glance/dsm-update-check— is a DSM update due? (read-only, never installs by itself)/logs --source=ssh --last=12h --grep=Failed— a quick look at the log
And for the Docker stacks on the NAS there's a complete compose set: /compose-list, /compose-up, /compose-update (pull + restart, atomic) and /compose-down.
The DSM quirks the plugin solves for you
A NAS is not an ordinary Linux server, and DSM has a few stumbling blocks I learned the hard way while building this:
- Docker lives at
/usr/local/bin/docker— a path that isn't on thePATHof a non-interactive SSH session. The plugin therefore always invokes Docker by absolute path; a CI check keeps a baredockerfrom ever sneaking in. - DSM has no
visudo— you set up passwordless sudo via a drop-in file under/etc/sudoers.d/, restricted to exactlysmartctl,synoupgradeanddocker. - smartctl 6.5 speaks an older text format; the plugin parses it robustly and lets you override the device type (
ata/sat/nvme) in the profile for exotic disks.
Security: read-only wherever possible
A tool that runs commands on a NAS over SSH has to be careful:
- Read-only by default: all overview commands change nothing. Mutating actions require an explicit argument.
- DSM updates never automatically:
/dsm-update-checkonly reports the status — installation deliberately happens only in the web UI. - Critical stacks protected: projects in
critical_compose_projectscan only be stopped withSM_CONFIRM_CRITICAL=yes. - No blind trust: you accept the host key once at setup; afterwards all connections run with
BatchModeand the cached key. - Your data stays local: hosts, users and keys never end up in Git — the real profiles are git-ignored.
And the big Linux sibling
Synology Manager Plus handles Synology specifics. If you also run classic Linux servers alongside — a VPS, a few Raspberry Pis — Fleet Manager is the matching sibling plugin with the same operating model. I use both side by side.
Conclusion
Synology Manager Plus doesn't make the decisions for me, but it does away with the clicking. I see the state of my NAS in one line, spot an ailing disk before it fails, and control Docker stacks without fumbling through DSM. For a NAS homelab, that's exactly the right mix of convenience and control — and because it's open source, it costs you nothing but five minutes of setup.
The code lives on GitHub. If you run a Synology NAS and use Claude Code: give it a try and tell me what's still missing.