Need help with cli?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

137 Stars 55 Forks Apache License 2.0 240 Commits 49 Opened issues


Manage and configure Akamai from the Command Line.

Services available


Need anything else?

Contributors list

Akamai CLI

Go Report Card FOSSA Status

Akamai CLI is an ever-growing CLI toolkit for working with Akamai's API from the command line.


  • Simplicity
  • Feature-full
  • Consistent UX

Available Packages

A list of available packages can be found here.


Akamai CLI itself has no dependencies, but may rely on packages that can be written using any language and may require additional runtimes.

Download a Release Binary

The easiest way to install Akamai CLI is to download a release binary for your platform and follow the instructions for your platform below. There are no additional requirements.

Linux and macOS

Once you have downloaded the appropriate binary for your system, you must make it executable, and optionally move it somewhere within your path.

$ chmod +x ~/Downloads/akamai--
$ mv ~/Downloads/akamai-- /usr/local/bin/akamai


Once you have downloaded the appropriate binary for your system, no further actions are required on your part, simply execute the binary from the command line.

Using Homebrew

If you are using macOS, you can also install using the Homebrew package manager:

$ brew install akamai

This will install all necessary dependencies, compile, and install the binary — which will then be available globally.

Using Docker

If you use (or want to use) docker, we have created a container with Akamai CLI, and all public packages (at the time of creation) pre-installed. You can execute a command using:

$ docker run -ti -v $HOME/.edgerc:/root/.edgerc akamaiopen/cli [arguments]

Note: This will mount your local

, and
into the container. To change the local path, update the

If you want to transparently use docker when calling the

command, you can add the following to your
, or
function akamai {
    if [[ `docker ps | grep akamai-cli$ | wc -l` -eq 1 ]]; then
        docker exec -it akamai-cli akamai [email protected];
    elif docker start akamai-cli > /dev/null 2>&1 && sleep 3 && docker exec -it akamai-cli akamai [email protected]; then
        return 0;
        echo "Creating new docker container"
        mkdir -p $HOME/.akamai-cli-docker
        docker create -it -v $HOME/.edgerc:/root/.edgerc -v $HOME/.akamai-cli-docker:/cli --name akamai-cli akamai/cli > /dev/null 2>&1 && akamai [email protected];

You can then run

akamai [arguments]
and it will automatically create or re-use a "persistent" container.


Docker containers are ephemeral and will only run for as long as the command (PID 1) inside them stays running. To allow you to re-use the same container we use

akamai --daemon
to ensure it continues running indefinitely inside the container.

You can safely run

docker stop akamai-cli
followed by
docker start akamai-cli
to stop and start the container created by the function above at any time.

The script above will persist your Akamai CLI installation (including configuration and packages) in the


Compiling from Source

If you want to compile it from source, you will need Go 1.7 or later, and the Glide package manager installed:

  1. Fetch the package:
    go get
  2. Change to the package directory:
    cd $GOPATH/src/
  3. Install dependencies using Glide:
    glide install
  4. Compile the binary:
    • Linux/macOS/*nix:
      go build -o akamai
    • Windows:
      go build -o akamai.exe
  5. Move the binary (
    ) in to your


Akamai CLI uses the standard Akamai OPEN credentials file,

. By default, it will look for credentials in your

You can override both the credentials file location, or the section, by passing the the

flags to each command.

To set up your credential file, see the authorization and credentials sections of the Get Started guide.


Akamai CLI can automatically check for newer versions (at most, once per day). You will be prompted to enable this feature the first time you run Akamai CLI v0.3.0 or later.

If a new version is found, you will be prompted to upgrade. Choosing to do so will download the latest version in-place, and your original command will then be executed using the new version.

Akamai CLI automatically checks the SHA256 signature of the new version to verify it's validity.

To manually upgrade, see

akamai upgrade


All commands start with the

binary, followed by a
, and optionally an action or other arguments.
akamai [command] [action] [arguments...]

Built-in commands



akamai help
will show basic usage info, and available commands. To learn more about a specific command, use
akamai help  [sub-command]



akamai list
will show you a list of available commands. If a command is not shown, ensure that the binary is executable, and in your



command allows you to easily install new packages from a git repository.


akamai install 
will download and install the command repository to the

For Github repositories, you can pass in

. For official Akamai packages, you can omit the
prefix, so to install
you can specify

For example, all of the following will install Akamai CLI for Property Manager from Github using various aliases:

akamai install property
akamai install akamai/cli-property
akamai install

You can specify multiple packages to install at once.


To uninstall a package installed with

akamai install
, you call
akamai uninstall 
, where
 is any command within that package.

You can specify multiple packages to uninstall at once.


To update a package installed with

akamai install
, you call
akamai update 
, where
 is any command within that package.

You can specify multiple packages to update at once.


akamai update
with no arguments will update all packages installed using
akamai install


Manually upgrade Akamai CLI to the latest version.

Installed Commands

To call an installed command, use

akamai  [args]
, e.g.
akamai property create

Custom commands

Akamai CLI also provides a framework for writing custom CLI commands. These commands are contained in packages, which may have one or more commands within it.

There are a few requirements:

  1. The package must be available via a Git repository (standard SSH public key authentication is supported)
  2. The executable must be named
  3. Help must be visible when you run:
    akamai-command help
    and ideally, should allow for
    akamai-command help 
  4. If using OPEN APIs, it must support the
    format, and must support both
  5. If an action fails to complete, the executable should exit with a non-zero status code (however,
    will only return
    on success or
    on failure)

You can use any language to build commands, so long as the result is executable — this includes PHP, Python, Ruby, Perl, Java, Golang, JavaScript, and C#.


You can prepend

to the CLI command to see extra information, where debug-level is one of the following (use trace for full logging):
  • panic
  • fatal
  • error
  • warn
  • info
  • debug
  • trace

For example to see extra debug information while trying to update the property package use:

AKAMAI_LOG=trace akamai update property


Currently Akamai CLI supports automatically installing package dependencies using the following package managers:

  • PHP: composer
  • Python: pip (using requirements.txt)
  • Ruby: bundler
  • Golang: Glide
  • JavaScript: npm and yarn

For other languages or package managers, all dependencies must be included in the package repository (i.e. by vendoring).

Command Package Metadata

You must include a

file to inform Akamai CLI about the command package and it's included commands.

allows you specify the command language runtime version, as well as define all commands included in package.
  "requirements": {
    "go": "1.8.0"
  "commands": [
      "name": "purge",
      "version": "0.1.0",
      "description": "Purge content from the Edge",
      "bin": "{{.Version}}/akamai-{{.Name}}-{{.OS}}{{.Arch}}{{.BinSuffix}}"
  • requirements
    — specify runtime requirements. You may specify a minimum version number or use
    for any version. Possible requirements are:
    • go
    • php
    • ruby
    • node
    • python
  • commands
    — A list of commands included in the package
    • name
      — The command name (used as the executable name)
    • aliases
      - An array of aliases that can be used to invoke the command
    • version
      — The command version
    • description
      - A short description of the command
    • bin
      — A url to fetch a binary package from if it cannot be installed from source


URL may contain the following placeholders:
  • {{.Version}}
    — The command version
  • {{.Name}}
    — The command name
  • {{.OS}}
    — The current operating system
    • Possible values are:
      , or
  • {{.Arch}}
    — The current OS architecture
    • Possible values are:
  • {{.BinSuffix}}
    — The binary suffix for the current OS
    • Possible values are:
      for windows


FOSSA Status

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.