About this project

doctl is the official command-line interface for the DigitalOcean API. It exposes DigitalOcean cloud resources through subcommands, so infrastructure can be listed, created and managed from a terminal instead of the control panel. Command groups cover 1-click applications, account details, apps, authentication, balance, billing history, compute (infrastructure such as Droplets, domains, floating IPs, firewalls, load balancers and block storage), databases, invoices, Kubernetes clusters and configurations, monitoring (marked beta), projects, container registries and VPCs. A completion command generates shell autocompletion scripts, and a version command reports the installed build. Global flags include an access token, an API URL override, a custom config file, an authentication context name, output format selection between text and json, a network activity trace, and verbose output. Installation options include package managers such as Homebrew on macOS, Snap, the Arch Linux and Fedora repositories, and Nixpkgs, plus Docker Hub images, prebuilt release archives from GitHub, and building from source with a Go environment. Beta releases are tagged separately and can be installed with go install, built from source, or downloaded as prebuilt archives; package managers install only general availability releases. Authentication uses a DigitalOcean access token created in the control panel. The auth init command stores credentials and creates the configuration file. Multiple accounts are supported through named authentication contexts, with a default context and the ability to switch or override contexts per command. The access token flag and environment variable apply only to the default context. Configuration is stored in a platform-specific config.yaml file, and default flag values can be set there using a category.command.sub-command.flag format, for example to change the default SSH user. Environment variables such as DIGITALOCEAN_CONTEXT and DIGITALOCEAN_ACCESS_TOKEN can override settings for a session. Shell autocompletion is available for Bash, ZSH and fish, though not on Windows. Uninstall instructions are provided for Homebrew, including removal of the configuration directory. Examples in the README show listing and creating Droplets, assigning a floating IP, creating a DNS A record, and connecting over SSH by Droplet name with an optional user. The README also links to full reference documentation and community tutorials covering load balancers, cloud firewalls and block storage.