Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add humanerd-drew/opencode-drewgent --skill nas-synology-ssh-automationgit clone --depth 1 https://github.com/humanerd-drew/opencode-drewgentWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/humanerd-drew/opencode-drewgent/nas-synology-ssh-automation)<a href="https://agentmods.dev/skills/humanerd-drew/opencode-drewgent/nas-synology-ssh-automation"><img src="https://agentmods.dev/badge/skills/humanerd-drew/opencode-drewgent/nas-synology-ssh-automation/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/humanerd-drew/opencode-drewgent/nas-synology-ssh-automation"><img src="https://agentmods.dev/badge/skills/humanerd-drew/opencode-drewgent/nas-synology-ssh-automation.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00056 | $0.04666 |
| Opus 5 | $0.00028 | $0.02333 |
| Sonnet 5 | $0.00011 | $0.00933 |
| Haiku 4.5 | $0.00006 | $0.00467 |
Grade D, and why
nas-synology-ssh-automation scanned grade D with 3 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Asks for rootmediumPrivilege escalation
A mod that escalates privileges can change anything on the machine, not only the project.
ssh -tt -i ~/.ssh/YOUR_SSH_KEY -o StrictHostKeyChecking=no -p YOUR_SSH_PORT [email protected] 'sudo docker ps' Recursive force deletehighDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
| `sudo rm -rf <path>` | Data loss — irreversible | Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
curl -s -o /dev/null -w "HTTP %{http_code} | %{time_total}s\n" http://192.168.1.100:<port>/ How it starts
The opening of the file, as written. The whole thing — 300 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Synology NAS SSH Automation
The {{AGENT_NAME}} workspace has a Synology DS920+ (20GB RAM, 14TB HDD) that hosts self-hosted services (Huly, etc.) and stores shared data. From any LAN machine, you can SSH in to inspect or modify it. This skill is the canonical playbook for that workflow.
Connection Configuration (canonical)
These are the values used in ~/.ssh/config on the user's machines. They are stable — do not probe alternatives.
| Field | Value |
|---|---|
| Host alias (LAN) | NAS-local |
| Host alias (Tailscale) | NASTailScale |
| LAN IP | 192.168.1.100 |
| Tailscale IP | YOUR_NAS_IP |
| SSH port (LAN) | YOUR_SSH_PORT (NOT 22 — Synology DSM default is non-standard) |
| SSH port (Tailscale) | YOUR_SSH_PORT (different from default — DSM maps to alternate port) |
| User | drew |
| Auth | SSH key (YOUR_SSH_KEY from this Mac) — NOT password for the SSH login itself |
| Sudo password | Emfbwjsxm4865 (same as DSM admin password) — required for docker, apt, system config |
The NAS does NOT use port 22 even though the SSH banner is reachable on it for some operations. Always use -p YOUR_SSH_PORT explicitly.
# Quick read-only example
ssh -tt -i ~/.ssh/YOUR_SSH_KEY -o StrictHostKeyChecking=no -p YOUR_SSH_PORT [email protected] 'sudo docker ps'
Why expect, not just ssh + bash
Synology DSM requires a real TTY for sudo to prompt for the password. Plain ssh user@host 'sudo cmd' will hang forever because there's no tty to attach the password prompt to. Three patterns work:
| Pattern | TTY? | When to use |
|---|---|---|
ssh -tt user@host 'sudo cmd' |
Forced PTY | Single non-interactive command. Does NOT work for sudo on DSM — sudo still hangs because the inner sudo doesn't get its own tty. |
expect script with spawn ssh -tt |
Forced PTY | The pattern that works. expect attaches to the spawned PTY and feeds the sudo password when prompted. |
ssh -T user@host 'sudo -S cmd <<<pass' |
No TTY | HARD BLOCKED by the agent's security policy. sudo -S (stdin password) is flagged as a brute-force attack vector and the agent will refuse to run it. Use expect. |
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago First seen · 300 lines · 0 tokens per session scan D 5c9f81adb166
nas-synology-ssh-automation is a skill published in the GitHub repository humanerd-drew/opencode-drewgent (2 stars, last pushed 1mo ago), licensed MIT. It adds 56 tokens to every session and 4,666 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it D with 3 findings (asks for root, recursive force delete, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
holoscan-install-container
Install Holoscan SDK via the NGC Docker container. Use for container-based installs; not for native apt/pip/Conda installs.
doca-urom-svc
Operate the DOCA UROM Service container on BlueField Arm for remote memory operations (puts, gets, atomics, collectives) enqueued by a paired host using doca-urom: pull the NGC image, choose the UCX component, size queues, configure Comch pairing, and align host and service versions. SECURITY: the service has no…
hsb-setup
Clone the latest NVIDIA Holoscan Sensor Bridge repo, ask which supported devkit is being used, configure the host per platform, build the correct demo container, run it, and verify HSB connectivity by pinging 192.168.0.2. Use for Holoscan Sensor Bridge setup, build, container launch, and first-connectivity bring-up.
holoscan-install-source
Build Holoscan SDK from source via the in-tree ./run script. Use only when published packages don't meet the user's needs.
xpu-container-run
Launch a Docker container with Intel GPU access on Linux. Encodes the correct combination of --device /dev/dri, render-group access, --ipc=host, ZEAFFINITYMASK pinning, Hugging Face cache mount, and --entrypoint /bin/bash for interactive use. Use when running any Intel-XPU container (vLLM-XPU, sglang-xpu, torch-XPU…
together-kueue
Install and use the Kueue job-queueing controller on a Together AI Kubernetes GPU cluster to gate jobs on quota. Covers installing Kueue, defining ResourceFlavor, ClusterQueue, and LocalQueue quota, submitting jobs to a queue, and watching quota admit or suspend them. Reach for it when a Together cluster's GPU pool…