dow

CLI to Digital Ocean API

Usage no npm install needed!

<script type="module">
  import dow from 'https://cdn.skypack.dev/dow';
</script>

README

Digital Ocean Wrench

Complete CLI to the Digital Ocean API

Installation

npm install -g dow

dow will look for a DIGITALOCEAN_ACCESS_TOKEN environment variable. You can create one here, and surface it by adding the following to your .profile/.bash_profile/etc.:

export DIGITALOCEAN_ACCESS_TOKEN="<your-access-token>"

If you really want, you can additionally pass your token via the --token flag (see special flags). Read here about how to keep such commands out of your history.

Usage

For now, the tool will pretty much explain how to use it. (Methods map pretty simply to the official documentation.) Top-level lists categories:

$ dow

usage: dow <command>

where <command> is one of:

  actions
  domains
  domain-records
  droplets
  images
  ssh-keys
  regions
  sizes
  floating-ips

Categories list methods:

$ dow images

usage: dow images <method>

where <method> is one of:

list
get-by-id
get-by-slug
list-actions
update
delete
transfer
convert-to-snapshot
get-action

And methods explain themselves when misused:

$ dow images get-by-slug

usage: dow images get-by-slug <image-id>

or

$ dow droplet create

usage: dow droplets create 
  --name=<value> 
  --region=<value> 
  --size=<value> 
  --image=<value> 
  [--ssh_keys=<value-1>,<value-2>,...] 
  [--backups=<value>] 
  [--ipv6=<value>] 
  [--private_networking=<value>] 
  [--user_data=<value>]

Output tries to be common sense, but log is far from complete. You can use --raw to get just the JSON response. The JSON combined with a command-line JSON manipulator like json give you plenty of flexibility. See the cookbook for some examples.

Special flags

Special Flag Explanation
--raw Only write out Digital Ocean's JSON response
--token=<token> Manually provide access token
--no-wait Do not wait for actions to move out of 'in-progress' status or for droplets to move out of 'new' status. Without --no-wait, dow will poll new actions and droplets until they reach a resolution.
--no-spin Do not show a spinner
--page=<page #> Request an individual page of results (useful for actions + images, and maybe more)
--force Skip confirmation of DELETE methods