Our future generation platform is in closed beta. During the beta, expect some rough edges, broken windows overlooking blue sky vistas, and regularly scheduled changes.

Already signed up? Great! You can ignore this.
Need to sign up? Request to participate.

Using the Slack CLI

The command line interface helps you create, run, and deploy new apps. During the beta, the command is slack.

💡 Consider going through the Quickstart to get your workstation setup and authenticated into your workspace. Alternatively, you can follow the sections on this page to manually download and install everything.

Download the CLI

The command line interface is meant to make the process of creating new apps, running them, and deploying them easier. Binaries are available for several platforms.

Deno required
Deno is currently a pre-requisite for using the CLI — if you do not have Deno installed, please do so first.

Existing slack binary in path

If you happen to have another CLI tool in your path called `slack`, we recommend renaming our slack binary to a different name before adding it to you path.

Download the latest binary for your platform.

Our future generation platform is in closed beta. Request access to gain access to additional documentation & tooling.

Install the CLI

The binaries for the CLI are available in the downloads section, with builds for both macOS, Windows, and Linux.

Deno required
Deno is currently a pre-requisite for using the CLI — if you do not have Deno installed, please do so first.

  1. Install the Deno JavaScript runtime
  2. Download the latest binary for your platform. You can always find the latest version on the downloads page.
  3. Decompress the downloaded file. On macOS, copy the slack binary to a destination in your path (we recommend /usr/local/bin). For Windows, copy the .exe file into any location accessible in your path.
  4. Test the app is properly installed by running slack version and verifying the version matches the one you downloaded.

Authorize the CLI

Before you can create an app, your CLI needs to be authorized to perform actions in your workspace.

  1. Run slack login — this will display some instructional text and a string to copy and paste in any channel in the test workspace.
    /slackauthticket ABC123DEF...XYZ
  1. Copy the entire string, including the leading /, and paste it into any channel in any workspace enabled for the beta. You are essentially calling a special slash command that will authenticate your app with Slack.
  2. Run slack auth info for information about your current auth session

Version Update Notifications

Once a day, the CLI will check for updates after running any command. When an update is available, a notification will be displayed with a link where you can find and download the new version.

Update notifications can be disabled using a command-line flag or an environment variable. When running any command, you can append the --skip-update or -s flag. Alternatively, you can set the SLACK_SKIP_UPDATE environment variable and assign it any value.

Global Flags

Flag Description
--apihost string Slack API host (default https://slack.com)
--environment, -e Specify the app environment
--force, -f Force update app manifest
--help, -h Help for slack commands. Use this flag with any command (e.g. slack create --help) to get more information about a specific command
--verbose, -v Set to print verbose debug logging
--skip-update, -s Use to disable version update notifications

Integrating the CLI into a pipeline

In addition to being useful for setting up new projects and local development, the CLI can be integrated into test and deployment pipelines, for continuous integration and continuous deployment and other "headless" automation.

Running in a headless mode first requires authenticating using the --auth flag and passing along a user token. This will generate the authentication credentials required in a ~/.slack directory. Removing this directory will remove the authentication.

Once authenticated, any slack command can be run as normal and will use the established auth.