Skip to content

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.

  • That restful-expose --name X --port Y is 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.

When you ask Claude to deploy something it’ll typically:

  1. Build the app.
  2. Pick an unused local port.
  3. Start the app (foreground or systemd, depending on context).
  4. Run restful-expose --name <pick> --port <port>.
  5. 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.

Terminal window
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 — but the agent will overwrite changes on the next skill update, so do that in ~/CLAUDE.md instead if you want personal additions).

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.