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@v3.0.1
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@v3.0.1
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@v3.0.1
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@v3.0.1
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@v3.0.1
with:
command: "manifest validate --app ${{ vars.SLACK_APP_ID }}"
token: ${{ secrets.SLACK_SERVICE_TOKEN }}
Workflow: Validate a manifest

This workflow validates the app manifest on pull requests to catch configuration issues early.

example-workflows/Technique_4_Slack_CLI_Command/manifest.yml
loading...

Deploy an app with a service token

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

This workflow deploys a Slack app when changes are pushed to the main branch. It uses a service token to authenticate the deploy command.

example-workflows/Technique_4_Slack_CLI_Command/deploy.yml
loading...

Manage collaborators

Workflow: Manage collaborators

This workflow adds or removes an app collaborator using a manually triggered workflow.

This example combines the Slack API technique (users.lookupByEmail, chat.postMessage) with the CLI technique (collaborators add/remove) to look up a user by email, update collaborators, and post a confirmation message.

example-workflows/Technique_4_Slack_CLI_Command/collaborators.yml
loading...