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
- 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, so 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, so no certbot wrangling is needed.
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
cat ~/.claude/skills/restful-vps/SKILL.md
It'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, though 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
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.
Something missing or out of date? Tell us or check the support center.