The restful-vps skill
Every Restful machine ships with a Claude skill installed at ~/.claude/skills/restful-vps/. The skill teaches Claude the conventions for the box so it can deploy + manage things without you spelling out the details every time.
What the skill knows
Section titled “What the skill knows”- That
restful-expose --name X --port Yis how apps get exposed. - That nginx sites live under
/etc/nginx/sites-restful/and shouldn’t be hand-edited (the agent reconciles them). - That ufw allows only 22/80/443 — anything else should bind loopback.
- That a Node service usually wants a systemd unit named
restful-app-<name>under/etc/systemd/system/. - That the wildcard TLS cert is shared across all apps and managed by the agent — no certbot wrangling needed.
How Claude uses it
Section titled “How Claude uses it”When you ask Claude to deploy something it’ll typically:
- Build the app.
- Pick an unused local port.
- Start the app (foreground or systemd, depending on context).
- Run
restful-expose --name <pick> --port <port>. - Curl the resulting URL to verify, and report back.
You don’t have to spell these steps out. The skill tells Claude that’s how things work here.
Reading the skill
Section titled “Reading the skill”cat ~/.claude/skills/restful-vps/SKILL.mdIt’s plain markdown — a few hundred lines describing the conventions and a couple of reference docs for nginx + systemd templates. You’re welcome to read it (or edit it — but the agent will overwrite changes on the next skill update, so do that in ~/CLAUDE.md instead if you want personal additions).
Custom conventions for your projects
Section titled “Custom conventions for your projects”Add a CLAUDE.md at the root of any project you start. Claude reads it on session start. Useful for:
- Project-specific commands (“the dev server runs on 4000, not 3000”)
- Codebase conventions (“we use absolute imports from
~/”) - Things you don’t want to repeat (“don’t add comments unless the why is non-obvious”)
The skill applies to your whole machine; project CLAUDE.md applies only inside that project.