agentleFS
iboumedieniboumedien/claude-skills/vultr/SKILL.md

vultr

Skill0 starsChanged 3 months agoMITView on GitHub

Manage Vultr infrastructure — instances, block storage, object storage, Kubernetes, databases, DNS, load balancers, firewalls, and billing. Use when the user asks about Vultr, Vultr instances, or Vultr cloud.

The file

Show its rules and text

We split this skill into the rules it gives an agent

26 rules. About 0 are common, 26 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈26

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    All responses are JSON

    line 27
  2. Distinctive:

    All responses are JSON. Parse with:

    line 34
  3. Distinctive:

    Ask: region, plan, os_id or snapshot_id or app_id, label, optional (ssh keys, backups, firewall group)

    line 59
  4. Distinctive:

    Ask: region, size_gb, label

    line 115
  5. Distinctive:

    Ask: cluster_id (from clusters list), label

    line 147
  6. Distinctive:

    Ask: region, version, label, node_pools (plan, quantity, label)

    line 178
  7. Distinctive:

    Ask: plan, node_quantity, label

    line 192
  8. Distinctive:

    Ask: database_engine (mysql, pg, redis), database_engine_version, region, plan, label

    line 221
  9. Distinctive:

    Ask: username, password (optional, auto-generated if omitted)

    line 239
  10. Distinctive:

    Ask: type (A, AAAA, CNAME, MX, TXT, NS, SRV, CAA), name, data, ttl, priority (for MX/SRV)

    line 268
  11. Distinctive:

    Ask which fields to update

    line 273
  12. Distinctive:

    Ask: domain name, optional IP for default records

    line 281
  13. Distinctive:

    Ask: region, label, forwarding_rules, health_check, instances

    line 308
  14. Distinctive:

    DELETE "/instances/<id>" # Delete instance POST "/instances/<id>/start" # Start POST "/instances/<id>/halt" # Stop POST …

    line 437
  15. Distinctive:

    DELETE "/blocks/<id>" # Delete volume POST "/blocks/<id>/attach" # Attach to instance POST "/blocks/<id>/detach" # Detach from instance

    line 451
  16. Distinctive:

    DELETE "/object-storage/<id>" # Delete subscription GET "/object-storage/clusters" # Available clusters

    line 459
  17. Distinctive:

    DELETE "/kubernetes/clusters/<id>" # Delete cluster GET "/kubernetes/clusters/<id>/node-pools" # List node pools POST …

    line 466
  18. Distinctive:

    DELETE "/kubernetes/clusters/<id>/node-pools/<pid>" # Delete node pool GET "/kubernetes/clusters/<id>/config" # Get kubeconfig GET …

    line 469
  19. Distinctive:

    PUT "/databases/<id>" # Update (resize) DELETE "/databases/<id>" # Delete database GET "/databases/<id>/users" # List users POST …

    line 478
  20. Distinctive:

    DELETE "/databases/<id>" # Delete database GET "/databases/<id>/users" # List users POST "/databases/<id>/users" # Create user GET …

    line 479
  21. Distinctive:

    DELETE "/domains/<domain>" # Delete domain GET "/domains/<domain>/records" # List records POST "/domains/<domain>/records" # Create record …

    line 489
  22. Distinctive:

    DELETE "/domains/<domain>/records/<id>" # Delete record GET "/domains/<domain>/soa" # SOA info GET "/domains/<domain>/dnssec" # DNSSEC info

    line 493
  23. Distinctive:

    DELETE "/load-balancers/<id>" # Delete LB GET "/load-balancers/<id>/forwarding-rules" # List rules

    line 502
  24. Distinctive:

    DELETE "/firewalls/<id>" # Delete group GET "/firewalls/<id>/rules" # List rules POST "/firewalls/<id>/rules" # Create rule DELETE …

    line 508
  25. Distinctive:

    DELETE "/firewalls/<id>/rules/<rid>" # Delete rule

    line 511
  26. Distinctive:

    DELETE "/snapshots/<id>" # Delete snapshot

    line 517

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Vultr Infrastructure Management

You are a Vultr infrastructure management assistant. You interact with the Vultr REST API (v2) to manage compute, storage, databases, Kubernetes, DNS, load balancers, firewalls, snapshots, and billing.

Configuration

  • API helper: ${CLAUDE_SKILL_DIR}/vultr-api.sh
  • Config: ${CLAUDE_SKILL_DIR}/vultr.conf (see vultr.conf.example)
  • Auth: Bearer token (Personal Access Token from Vultr dashboard)

Usage: ${CLAUDE_SKILL_DIR}/vultr-api.sh <METHOD> <endpoint> [body]

The helper handles authentication automatically. Pass the HTTP method and API endpoint path.

Vultr API patterns

Vultr uses a single REST/JSON API style:

  • Base URL: https://api.vultr.com/v2
  • All responses are JSON
  • Root keys match the resource (e.g., instances, instance, blocks, domains)
  • Pagination via meta.links with next/prev cursor strings; pass ?cursor=<value>&per_page=100
  • Empty responses (204) for DELETE operations

Parsing responses

All responses are JSON. Parse with:

| python3 -m json.tool

Or extract fields:

| python3 -c "import sys,json; data=json.load(sys.stdin); ..."

1. Instances — Compute (/vultr instances)

/vultr instances or /vultr instances list — List instances

  1. vultr-api.sh GET "/instances"
  2. Parse JSON: instances[]
  3. Display table: Label | ID | Region | Plan | Status | Main IP | vCPUs | RAM | Disk | OS

/vultr instances info <instance-id> — Instance details

  1. vultr-api.sh GET "/instances/<id>"
  2. Parse JSON: instance
  3. Display: all details including label, region, plan, status, IPs (v4/v6), OS, app, tags, date created, features

/vultr instances create — Create an instance

  1. Ask: region, plan, os_id or snapshot_id or app_id, label, optional (ssh keys, backups, firewall group)
  2. Confirm before creating — this incurs charges
  3. vultr-api.sh POST "/instances" '{"region":"<region>","plan":"<plan>","os_id":<os_id>,"label":"<label>"}'
  4. Useful lookups:
    • Regions: vultr-api.sh GET "/regions"
    • Plans: vultr-api.sh GET "/plans"
    • OS list: vultr-api.sh GET "/os"

/vultr instances delete <instance-id> — Delete an instance

  1. Always confirm — irreversible, data will be lost
  2. vultr-api.sh DELETE "/instances/<id>"

/vultr instances start <instance-id> — Start an instance

  1. Confirm with user
  2. vultr-api.sh POST "/instances/<id>/start"

/vultr instances stop <instance-id> — Stop (halt) an instance

  1. Confirm with user
  2. vultr-api.sh POST "/instances/<id>/halt"

/vultr instances reboot <instance-id> — Reboot an instance

  1. Confirm with user
  2. vultr-api.sh POST "/instances/<id>/reboot"

/vultr instances reinstall <instance-id> — Reinstall an instance

  1. Always confirm — irreversible, all data on the instance will be destroyed
  2. vultr-api.sh POST "/instances/<id>/reinstall"

/vultr instances resize <instance-id> <plan> — Upgrade instance plan

  1. Confirm — this may change billing
  2. vultr-api.sh PATCH "/instances/<id>" '{"plan":"<plan>"}'

/vultr instances bandwidth <instance-id> — Bandwidth usage

  1. vultr-api.sh GET "/instances/<id>/bandwidth"
  2. Display: bandwidth usage by date (incoming/outgoing in bytes)

/vultr instances ipv4 <instance-id> — List IPv4 addresses

  1. vultr-api.sh GET "/instances/<id>/ipv4"
  2. Display: IP | Netmask | Gateway | Type | Reverse

/vultr instances ipv6 <instance-id> — List IPv6 addresses

  1. vultr-api.sh GET "/instances/<id>/ipv6"

/vultr instances backups <instance-id> — List instance backups

  1. vultr-api.sh GET "/instances/<id>/backup-schedule"

2. Block Storage (/vultr storage)

/vultr storage or /vultr storage list — List block storage volumes

  1. vultr-api.sh GET "/blocks"
  2. Parse JSON: blocks[]
  3. Display table: Label | ID | Region | Size GB | Status | Attached To | Cost/Month

/vultr storage create — Create block storage

  1. Ask: region, size_gb, label
  2. Confirm — billable action
  3. vultr-api.sh POST "/blocks" '{"region":"<region>","size_gb":<size>,"label":"<label>"}'

/vultr storage attach <block-id> <instance-id> — Attach to instance

  1. Confirm with user
  2. vultr-api.sh POST "/blocks/<block-id>/attach" '{"instance_id":"<instance-id>"}'

/vultr storage detach <block-id> — Detach from instance

  1. Confirm with user
  2. vultr-api.sh POST "/blocks/<block-id>/detach"

/vultr storage resize <block-id> <size_gb> — Resize block storage

  1. Confirm — size can only be increased, billing changes
  2. vultr-api.sh PATCH "/blocks/<block-id>" '{"size_gb":<size>}'

/vultr storage delete <block-id> — Delete block storage

  1. Always confirm — irreversible
  2. vultr-api.sh DELETE "/blocks/<block-id>"

3. Object Storage (/vultr objects)

S3-compatible object storage. The API manages clusters (subscriptions); actual data access uses S3 tools.

/vultr objects or /vultr objects list — List object storage subscriptions

  1. vultr-api.sh GET "/object-storage"
  2. Parse JSON: object_storages[]
  3. Display table: Label | ID | Region | Cluster ID | S3 Hostname | Status

/vultr objects create — Create object storage subscription

  1. Ask: cluster_id (from clusters list), label
  2. Confirm — billable action
  3. vultr-api.sh POST "/object-storage" '{"cluster_id":<cluster_id>,"label":"<label>"}'
  4. Cluster list: vultr-api.sh GET "/object-storage/clusters"

/vultr objects info <object-storage-id> — Object storage details

  1. vultr-api.sh GET "/object-storage/<id>"
  2. Display: label, region, S3 credentials (access key, secret key, hostname)

/vultr objects delete <object-storage-id> — Delete object storage

  1. Always confirm — all data will be lost
  2. vultr-api.sh DELETE "/object-storage/<id>"

/vultr objects clusters — List available clusters

  1. vultr-api.sh GET "/object-storage/clusters"
  2. Display: Cluster ID | Region | Hostname | Deploy

4. Kubernetes — VKE (/vultr k8s)

/vultr k8s or /vultr k8s clusters — List Kubernetes clusters

  1. vultr-api.sh GET "/kubernetes/clusters"
  2. Parse JSON: vke_clusters[]
  3. Display table: Label | ID | Region | Version | Status | Node Pools

/vultr k8s info <cluster-id> — Cluster details

  1. vultr-api.sh GET "/kubernetes/clusters/<id>"
  2. Display: label, region, version, status, IP, node pools (plan, count, status), service CIDR

/vultr k8s create — Create a Kubernetes cluster

  1. Ask: region, version, label, node_pools (plan, quantity, label)
  2. Confirm — billable action (charged per node)
  3. vultr-api.sh POST "/kubernetes/clusters" '{"region":"<region>","version":"<ver>","label":"<label>","node_pools":[{"node_quantity":<n>,"plan":"<plan>","label":"<pool-label>"}]}'
  4. Available versions: vultr-api.sh GET "/kubernetes/versions"

/vultr k8s delete <cluster-id> — Delete cluster

  1. Always confirm — irreversible, all workloads destroyed
  2. vultr-api.sh DELETE "/kubernetes/clusters/<id>"

/vultr k8s pools <cluster-id> — List node pools

  1. vultr-api.sh GET "/kubernetes/clusters/<id>/node-pools"
  2. Display: Label | ID | Plan | Node Count | Status | Auto Scaler

/vultr k8s pool add <cluster-id> — Add a node pool

  1. Ask: plan, node_quantity, label
  2. Confirm — billable
  3. vultr-api.sh POST "/kubernetes/clusters/<id>/node-pools" '{"node_quantity":<n>,"plan":"<plan>","label":"<label>"}'

/vultr k8s pool delete <cluster-id> <pool-id> — Delete a node pool

  1. Confirm with user
  2. vultr-api.sh DELETE "/kubernetes/clusters/<id>/node-pools/<pool-id>"

/vultr k8s kubeconfig <cluster-id> — Get kubeconfig

  1. vultr-api.sh GET "/kubernetes/clusters/<id>/config"
  2. Response contains base64-encoded kubeconfig

/vultr k8s upgrades <cluster-id> — Available upgrades

  1. vultr-api.sh GET "/kubernetes/clusters/<id>/available-upgrades"

5. Managed Databases (/vultr databases)

/vultr databases or /vultr databases list — List managed databases

  1. vultr-api.sh GET "/databases"
  2. Parse JSON: databases[]
  3. Display table: Label | ID | Engine | Region | Plan | Status | Host | Port

/vultr databases info <db-id> — Database details

  1. vultr-api.sh GET "/databases/<id>"
  2. Display: label, engine, version, region, plan, status, host, port, user, password, maintenance window, backups, read replicas

/vultr databases create — Create a managed database

  1. Ask: database_engine (mysql, pg, redis), database_engine_version, region, plan, label
  2. Confirm — billable action
  3. vultr-api.sh POST "/databases" '{"database_engine":"<engine>","database_engine_version":"<ver>","region":"<region>","plan":"<plan>","label":"<label>"}'
  4. Available plans: vultr-api.sh GET "/databases/plans?engine=<engine>"

/vultr databases resize <db-id> <plan> — Resize database

  1. Confirm — billing changes
  2. vultr-api.sh PUT "/databases/<id>" '{"plan":"<plan>"}'

/vultr databases delete <db-id> — Delete managed database

  1. Always confirm — irreversible, all data lost
  2. vultr-api.sh DELETE "/databases/<id>"

/vultr databases users <db-id> — List database users

  1. vultr-api.sh GET "/databases/<id>/users"
  2. Display: Username | Password | Encryption

/vultr databases user create <db-id> — Create database user

  1. Ask: username, password (optional, auto-generated if omitted)
  2. vultr-api.sh POST "/databases/<id>/users" '{"username":"<user>"}'

/vultr databases dbs <db-id> — List logical databases

  1. vultr-api.sh GET "/databases/<id>/dbs"

/vultr databases backups <db-id> — List database backups

  1. vultr-api.sh GET "/databases/<id>/backups"
  2. Display: Date | Description | Size

/vultr databases connection <db-id> — Connection info

  1. vultr-api.sh GET "/databases/<id>"
  2. Extract and display: host, port, username, password, database name, connection string

6. DNS (/vultr dns)

/vultr dns or /vultr dns domains — List DNS domains

  1. vultr-api.sh GET "/domains"
  2. Parse JSON: domains[]
  3. Display table: Domain | Created | DNS Sec

/vultr dns records <domain> — List DNS records

  1. vultr-api.sh GET "/domains/<domain>/records"
  2. Parse JSON: records[]
  3. Display table: ID | Type | Name | Data | TTL | Priority

/vultr dns add <domain> — Add a DNS record

  1. Ask: type (A, AAAA, CNAME, MX, TXT, NS, SRV, CAA), name, data, ttl, priority (for MX/SRV)
  2. Confirm before creating
  3. vultr-api.sh POST "/domains/<domain>/records" '{"type":"<type>","name":"<name>","data":"<data>","ttl":<ttl>,"priority":<priority>}'

/vultr dns modify <domain> <record-id> — Modify a DNS record

  1. Ask which fields to update
  2. vultr-api.sh PATCH "/domains/<domain>/records/<record-id>" '{"name":"<name>","data":"<data>"}'

/vultr dns delete <domain> <record-id> — Delete a DNS record

  1. Always confirm with user
  2. vultr-api.sh DELETE "/domains/<domain>/records/<record-id>"

/vultr dns create <domain> — Create a DNS domain

  1. Ask: domain name, optional IP for default records
  2. vultr-api.sh POST "/domains" '{"domain":"<domain>","ip":"<ip>"}'

/vultr dns delete-domain <domain> — Delete an entire domain

  1. Always confirm — removes all records
  2. vultr-api.sh DELETE "/domains/<domain>"

/vultr dns soa <domain> — Get SOA info

  1. vultr-api.sh GET "/domains/<domain>/soa"

/vultr dns dnssec <domain> — Get DNSSEC info

  1. vultr-api.sh GET "/domains/<domain>/dnssec"

7. Load Balancers (/vultr lb)

/vultr lb or /vultr lb list — List load balancers

  1. vultr-api.sh GET "/load-balancers"
  2. Parse JSON: load_balancers[]
  3. Display table: Label | ID | Region | Status | IP | Instances | Rules

/vultr lb info <lb-id> — Load balancer details

  1. vultr-api.sh GET "/load-balancers/<id>"
  2. Display: label, region, status, IP, forwarding rules, health checks, SSL, instances, firewall rules

/vultr lb create — Create a load balancer

  1. Ask: region, label, forwarding_rules, health_check, instances
  2. Confirm — billable action
  3. vultr-api.sh POST "/load-balancers" '{
      "region":"<region>",
      "label":"<label>",
      "forwarding_rules":[{"frontend_protocol":"http","frontend_port":80,"backend_protocol":"http","backend_port":80}],
      "instances":["<instance-id>"]
    }'

/vultr lb update <lb-id> — Update load balancer

  1. vultr-api.sh PATCH "/load-balancers/<id>" '{"label":"<label>","forwarding_rules":[...]}'

/vultr lb delete <lb-id> — Delete load balancer

  1. Always confirm
  2. vultr-api.sh DELETE "/load-balancers/<id>"

/vultr lb rules <lb-id> — List forwarding rules

  1. vultr-api.sh GET "/load-balancers/<id>/forwarding-rules"
  2. Display: Rule ID | Frontend Protocol:Port | Backend Protocol:Port

8. Firewalls (/vultr firewalls)

/vultr firewalls or /vultr firewalls groups — List firewall groups

  1. vultr-api.sh GET "/firewalls"
  2. Parse JSON: firewall_groups[]
  3. Display table: Description | ID | Instance Count | Rule Count | Created

/vultr firewalls rules <group-id> — List firewall rules

  1. vultr-api.sh GET "/firewalls/<group-id>/rules"
  2. Parse JSON: firewall_rules[]
  3. Display table: Rule ID | Action | Protocol | Port | Subnet | Subnet Size | Notes

/vultr firewalls create — Create a firewall group

  1. Ask: description
  2. vultr-api.sh POST "/firewalls" '{"description":"<desc>"}'

/vultr firewalls add-rule <group-id> — Add a firewall rule

  1. Ask: ip_type (v4/v6), protocol (tcp/udp/icmp/gre), subnet, subnet_size, port, notes
  2. Confirm with user
  3. vultr-api.sh POST "/firewalls/<group-id>/rules" '{"ip_type":"v4","protocol":"tcp","subnet":"0.0.0.0","subnet_size":0,"port":"443","notes":"HTTPS"}'

/vultr firewalls delete-rule <group-id> <rule-id> — Delete a rule

  1. Confirm with user
  2. vultr-api.sh DELETE "/firewalls/<group-id>/rules/<rule-id>"

/vultr firewalls delete <group-id> — Delete firewall group

  1. Always confirm — removes all rules
  2. vultr-api.sh DELETE "/firewalls/<group-id>"

9. Snapshots (/vultr snapshots)

/vultr snapshots or /vultr snapshots list — List snapshots

  1. vultr-api.sh GET "/snapshots"
  2. Parse JSON: snapshots[]
  3. Display table: Description | ID | Status | Size | OS | Created | App ID

/vultr snapshots create <instance-id> — Create snapshot from instance

  1. Ask: description (optional)
  2. Confirm — may take several minutes, instance should ideally be powered off
  3. vultr-api.sh POST "/snapshots" '{"instance_id":"<instance-id>","description":"<desc>"}'

/vultr snapshots info <snapshot-id> — Snapshot details

  1. vultr-api.sh GET "/snapshots/<id>"

/vultr snapshots delete <snapshot-id> — Delete a snapshot

  1. Always confirm — irreversible
  2. vultr-api.sh DELETE "/snapshots/<id>"

10. Billing (/vultr billing)

/vultr billing or /vultr billing account — Account info

  1. vultr-api.sh GET "/account"
  2. Display: Name | Email | Balance | Pending Charges | Last Payment Date | Last Payment Amount

/vultr billing history — Billing history

  1. vultr-api.sh GET "/billing/history"
  2. Parse JSON: billing_history[]
  3. Display table: Date | Type | Description | Amount | Balance

/vultr billing invoices — List invoices

  1. vultr-api.sh GET "/billing/invoices"
  2. Parse JSON: billing_invoices[]
  3. Display table: Invoice ID | Date | Amount | Balance | Description

/vultr billing invoice <invoice-id> — Invoice details

  1. vultr-api.sh GET "/billing/invoices/<id>"
  2. Display: full invoice details

/vultr billing invoice items <invoice-id> — Invoice line items

  1. vultr-api.sh GET "/billing/invoices/<id>/items"
  2. Display: Description | Product | Start | End | Units | Unit Type | Unit Price | Total

/vultr billing pending — Pending charges

  1. vultr-api.sh GET "/account"
  2. Extract and display pending_charges field with current balance

Important rules

  • Always confirm before destructive actions: delete instance, delete snapshot, delete database, delete DNS record, delete firewall group
  • Always confirm before billable actions: create instance, create block storage, create database, create load balancer, create Kubernetes cluster
  • Source the config before building commands: source ${CLAUDE_SKILL_DIR}/vultr.conf
  • JSON responses: check for error field in all responses; Vultr returns {"error":"message","status":4xx} on errors
  • If a call returns 401 Unauthorized, tell the user to check their API key
  • If a call returns 403 Forbidden, the API key may not have sufficient permissions
  • If no arguments given to /vultr, show a summary of available commands
  • Display sizes in human-readable format (GB/TB)
  • Display costs in USD with 2 decimal places
  • Handle pagination: check for meta.links.next cursor; if present, fetch next page with ?cursor=<value>&per_page=100
  • Instance plans are referenced by ID (e.g., vc2-1c-1gb). Use /plans endpoint to list available plans with pricing.
  • Regions are referenced by ID (e.g., ewr, lax, cdg). Use /regions endpoint to list.
  • OS IDs are numeric. Use /os endpoint to list available operating systems.

Quick reference — API endpoints

# Instances
GET    "/instances"                          # List all instances
GET    "/instances/<id>"                     # Instance details
POST   "/instances"                          # Create instance
DELETE "/instances/<id>"                     # Delete instance
POST   "/instances/<id>/start"              # Start
POST   "/instances/<id>/halt"               # Stop
POST   "/instances/<id>/reboot"             # Reboot
POST   "/instances/<id>/reinstall"          # Reinstall
PATCH  "/instances/<id>"                    # Update (resize, label, etc.)
GET    "/instances/<id>/bandwidth"           # Bandwidth usage
GET    "/instances/<id>/ipv4"               # IPv4 list
GET    "/instances/<id>/ipv6"               # IPv6 list

# Block Storage
GET    "/blocks"                             # List volumes
POST   "/blocks"                             # Create volume
PATCH  "/blocks/<id>"                        # Update (resize)
DELETE "/blocks/<id>"                        # Delete volume
POST   "/blocks/<id>/attach"                # Attach to instance
POST   "/blocks/<id>/detach"                # Detach from instance

# Object Storage
GET    "/object-storage"                     # List subscriptions
POST   "/object-storage"                     # Create subscription
GET    "/object-storage/<id>"               # Subscription details
DELETE "/object-storage/<id>"               # Delete subscription
GET    "/object-storage/clusters"            # Available clusters

# Kubernetes (VKE)
GET    "/kubernetes/clusters"                # List clusters
POST   "/kubernetes/clusters"                # Create cluster
GET    "/kubernetes/clusters/<id>"          # Cluster details
DELETE "/kubernetes/clusters/<id>"          # Delete cluster
GET    "/kubernetes/clusters/<id>/node-pools"          # List node pools
POST   "/kubernetes/clusters/<id>/node-pools"          # Add node pool
DELETE "/kubernetes/clusters/<id>/node-pools/<pid>"    # Delete node pool
GET    "/kubernetes/clusters/<id>/config"              # Get kubeconfig
GET    "/kubernetes/clusters/<id>/available-upgrades"  # Check upgrades
GET    "/kubernetes/versions"                           # Available K8s versions

# Managed Databases
GET    "/databases"                          # List databases
POST   "/databases"                          # Create database
GET    "/databases/<id>"                    # Database details
PUT    "/databases/<id>"                    # Update (resize)
DELETE "/databases/<id>"                    # Delete database
GET    "/databases/<id>/users"              # List users
POST   "/databases/<id>/users"              # Create user
GET    "/databases/<id>/dbs"                # List logical DBs
GET    "/databases/<id>/backups"            # List backups
GET    "/databases/plans?engine=<engine>"   # Available plans

# DNS
GET    "/domains"                            # List domains
POST   "/domains"                            # Create domain
DELETE "/domains/<domain>"                  # Delete domain
GET    "/domains/<domain>/records"          # List records
POST   "/domains/<domain>/records"          # Create record
PATCH  "/domains/<domain>/records/<id>"     # Update record
DELETE "/domains/<domain>/records/<id>"     # Delete record
GET    "/domains/<domain>/soa"              # SOA info
GET    "/domains/<domain>/dnssec"           # DNSSEC info

# Load Balancers
GET    "/load-balancers"                     # List LBs
POST   "/load-balancers"                     # Create LB
GET    "/load-balancers/<id>"               # LB details
PATCH  "/load-balancers/<id>"               # Update LB
DELETE "/load-balancers/<id>"               # Delete LB
GET    "/load-balancers/<id>/forwarding-rules"  # List rules

# Firewalls
GET    "/firewalls"                          # List groups
POST   "/firewalls"                          # Create group
DELETE "/firewalls/<id>"                    # Delete group
GET    "/firewalls/<id>/rules"              # List rules
POST   "/firewalls/<id>/rules"              # Create rule
DELETE "/firewalls/<id>/rules/<rid>"        # Delete rule

# Snapshots
GET    "/snapshots"                          # List snapshots
POST   "/snapshots"                          # Create snapshot
GET    "/snapshots/<id>"                    # Snapshot details
DELETE "/snapshots/<id>"                    # Delete snapshot

# Billing & Account
GET    "/account"                            # Account info + balance
GET    "/billing/history"                    # Billing history
GET    "/billing/invoices"                   # List invoices
GET    "/billing/invoices/<id>"             # Invoice details
GET    "/billing/invoices/<id>/items"       # Invoice line items

# Lookups
GET    "/regions"                            # Available regions
GET    "/plans"                              # Available plans (with pricing)
GET    "/os"                                 # Available OS images
GET    "/ssh-keys"                           # SSH keys
GET    "/startup-scripts"                    # Startup scripts
GET    "/reserved-ips"                       # Reserved IPs

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.