The Profile & Multi-NAS Model
The Profile & Multi-NAS Model
Each NAS has its own profile as a Markdown file at context/nas/<slug>/profile.md. A single-line file context/active-nas holds the slug of the currently active NAS. The slug follows the pattern ^[a-z0-9][a-z0-9-]{0,31}$ (lowercase, digits, hyphens).
What a profile contains
| Section | Content |
|---|---|
| Connection | host, wan_host, port, user, key_path, connect_timeout_seconds |
| Hardware | model, arch, cpu, ram |
| Software | dsm_version, hostname, docker_available, sudo_passwordless |
| Volumes / RAID / Shared Folders | latest snapshots of df -h, /proc/mdstat and /volume1 |
Some fields are added lazily when needed — for example critical_compose_projects (critical Compose projects), cpu_cores (by /health-summary) or smartctl_device_type (for /smart-status).
In addition, per NAS there are timestamped snapshots of shares and mounts under context/nas/<slug>/volumes/ and context/nas/<slug>/mounts/.
Your data stays local
Real profiles, the active NAS and all snapshots are git-ignored: the repository only contains an empty context/nas/ (with a .gitkeep). So hosts, users, ports or keys never land in version control — and your inventory survives a claude plugin update unscathed, because it sits outside the updated plugin code.