DocsReference

The restful-vps skill

How Claude knows about your machine's conventions.

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 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, 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:

  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.

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.