skills/digitalocean/SKILL.md
Manage DigitalOcean droplets, domains, databases, apps and volumes via API v2
npx skillsauth add alanalvestech/hitank digitaloceanInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Connect to the DigitalOcean API v2 to manage droplets, domains, DNS records, managed databases, App Platform apps and volumes. Pure Ruby, zero gems — stdlib only.
scripts/
├── auth.rb # Bearer token + do_request helper (required by all scripts)
├── check_setup.rb # Check if token exists (outputs OK or SETUP_NEEDED)
├── save_token.rb # Save and validate an API token
├── account.rb # Get account info
├── droplets.rb # List all droplets
├── droplet.rb # Get droplet details
├── create_droplet.rb # Create a new droplet
├── droplet_action.rb # Perform droplet action (reboot, power_off, power_on, etc.)
├── domains.rb # List all domains
├── dns_records.rb # List DNS records for a domain
├── databases.rb # List managed databases
├── apps.rb # List App Platform apps
└── volumes.rb # List block storage volumes
ruby ~/.claude/skills/digitalocean/scripts/check_setup.rb
If the output is OK, proceed to the Flow section.
If the output is SETUP_NEEDED, guide the user step by step. Present ONE step at a time, wait for the user to confirm before moving to the next.
Step 1 — Ask the user to create a Personal Access Token:
You need a DigitalOcean Personal Access Token. Go to the API section in the DigitalOcean Control Panel:
https://cloud.digitalocean.com/account/api/tokens
Click Generate New Token, give it a name (e.g. "hitank"), select the scopes you need (read or read+write), and copy the token.
Paste the token here.
Step 2 — When the user pastes the token, save it:
ruby ~/.claude/skills/digitalocean/scripts/save_token.rb 'PASTED_TOKEN'
If the script outputs an error, the token is invalid. Ask the user to double-check and try again.
If setup is not complete, DO NOT proceed to the Flow. Complete all steps first.
The argument $ARGUMENTS may contain a droplet name or ID.
ruby ~/.claude/skills/digitalocean/scripts/account.rb
Present the account info to the user.
ruby ~/.claude/skills/digitalocean/scripts/droplets.rb
Present the droplets to the user. If $ARGUMENTS matches a droplet name or ID, use that droplet. Otherwise ask which droplet to work with.
ruby ~/.claude/skills/digitalocean/scripts/droplet.rb DROPLET_ID
Present the droplet info and ask what the user wants to do.
Perform a droplet action (requires user confirmation):
Show current droplet status first, then ask: "Do you want to perform ACTION on this droplet?" Only execute after a "yes".
Supported actions: reboot, power_off, power_on, shutdown, enable_backups, disable_backups, enable_ipv6, password_reset, snapshot.
ruby ~/.claude/skills/digitalocean/scripts/droplet_action.rb DROPLET_ID ACTION
ruby ~/.claude/skills/digitalocean/scripts/droplet_action.rb DROPLET_ID snapshot --name "my-snapshot"
Create a new droplet (requires user confirmation):
Ask the user for name, region, size, and image. Confirm all details before creating.
ruby ~/.claude/skills/digitalocean/scripts/create_droplet.rb NAME REGION SIZE IMAGE
Example:
ruby ~/.claude/skills/digitalocean/scripts/create_droplet.rb my-server nyc1 s-1vcpu-1gb ubuntu-24-04-x64
List domains:
ruby ~/.claude/skills/digitalocean/scripts/domains.rb
List DNS records for a domain:
ruby ~/.claude/skills/digitalocean/scripts/dns_records.rb DOMAIN_NAME
List managed databases:
ruby ~/.claude/skills/digitalocean/scripts/databases.rb
List App Platform apps:
ruby ~/.claude/skills/digitalocean/scripts/apps.rb
List block storage volumes:
ruby ~/.claude/skills/digitalocean/scripts/volumes.rb
~/.config/digitalocean/token (outside the repo, never commit)https://api.digitalocean.com/v2development
Manage Zendesk tickets, users, organizations and knowledge base via REST API
development
Post and manage tweets on X (formerly Twitter) via API v2
development
Manage Vercel projects, deployments, domains and environment variables via API
development
Manage Twilio SMS, calls, phone numbers and usage via REST API