Skip to main content

Running Slack CLI commands

The Slack CLI technique installs and runs Slack CLI commands directly from a GitHub Actions workflow.

This is useful for automating tasks such as deploying apps, validating an app manifest, or interacting with Slack platform features that are available with the CLI.

Setup

Authentication

Pass a service token via the token input. This is appended as --token <value> to the CLI command. The slack auth token command can be used to gather this.

CLI version

By default, the latest version of the Slack CLI is installed. To pin a specific version, use the version input:

- uses: slackapi/slack-github-action/cli@v2
with:
command: "version"
version: "3.14.0"

If the slack command already exists on PATH, installation is skipped entirely.

Usage

Provide a command input with the Slack CLI command to run, omitting the slack prefix.

- uses: slackapi/slack-github-action/cli@v2
with:
command: "version"

Debug logging

When a workflow is re-run with Enable debug logging, the action automatically appends --verbose to the CLI command. You can also include --verbose in your command input manually at any time.

- uses: slackapi/slack-github-action/cli@v2
with:
command: "deploy --app ${{ vars.SLACK_APP_ID }} --verbose"
token: ${{ secrets.SLACK_SERVICE_TOKEN }}

Outputs

The following outputs are available after a CLI command runs:

OutputTypeDescription
okbooleanIf the command completed with a 0 exit code.
responsestringThe standard output from the CLI command.
timenumberThe Unix epoch time that the step completed.

Examples

Check the installed CLI version

steps:
- uses: slackapi/slack-github-action/cli@v2
id: slack
with:
command: "version"
- run: echo "${{ steps.slack.outputs.response }}"

Validate the app manifest

steps:
- uses: actions/checkout@v4
- uses: slackapi/slack-github-action/cli@v2
with:
command: "manifest validate --app ${{ vars.SLACK_APP_ID }}"
token: ${{ secrets.SLACK_SERVICE_TOKEN }}

Deploy an app with a service token

steps:
- uses: actions/checkout@v4
- uses: slackapi/slack-github-action/cli@v2
with:
command: "deploy --app ${{ vars.SLACK_APP_ID }} --force"
token: ${{ secrets.SLACK_SERVICE_TOKEN }}

Example workflows