SlackCLI ships as a single self-contained binary. There is no runtime to install — you do not need Bun or Node.js to run it.
Homebrew (macOS and Linux)
Section titled “Homebrew (macOS and Linux)”brew tap shaharia-lab/tapbrew install slackcliUpgrade with brew upgrade slackcli.
Pre-built binaries
Section titled “Pre-built binaries”Download the binary for your platform, make it executable, and put it on your
PATH.
# Linux x86_64curl -L https://github.com/shaharia-lab/slackcli/releases/latest/download/slackcli-linux -o slackcli
# Linux arm64curl -L https://github.com/shaharia-lab/slackcli/releases/latest/download/slackcli-linux-arm64 -o slackcli
# macOS Intelcurl -L https://github.com/shaharia-lab/slackcli/releases/latest/download/slackcli-macos -o slackcli
# macOS Apple Siliconcurl -L https://github.com/shaharia-lab/slackcli/releases/latest/download/slackcli-macos-arm64 -o slackcli
chmod +x slackclimkdir -p ~/.local/bin && mv slackcli ~/.local/bin/On Windows, download slackcli-windows.exe from the
latest release and
add it to your PATH.
Every release publishes a checksums.txt alongside the binaries if you want to
verify a manual download.
From source
Section titled “From source”Requires Bun 1.4.1 or newer; bun run build stops with a clear
message on an older Bun (see
why Bun is pinned).
git clone https://github.com/shaharia-lab/slackcli.gitcd slackclibun installbun run build # produces ./dist/slackcliSee development setup for the full contributor toolchain.
Verifying the install
Section titled “Verifying the install”slackcli --versionslackcli --helpUpdating
Section titled “Updating”slackcli update check # report the latest release without changing anythingslackcli update # download and replace the running binary in placeslackcli update downloads the release asset for your platform, verifies its
SHA-256 digest against the digest GitHub publishes for that asset, and only then
replaces the binary. A missing or mismatched digest aborts the update rather
than installing an unverified file.
Two cases where slackcli update deliberately does nothing:
- Installed via Homebrew. Use
brew upgrade slackcli; the self-updater detects a Homebrew path, prints that hint and exits without downloading or touching the binary, so it does not fight the package manager. - Running from source (
bun run dev). There is no binary to replace — usegit pull.
If the binary sits in a folder you cannot write to, such as /usr/local/bin,
slackcli update stops before downloading anything and tells you to run
sudo slackcli update instead (on Windows: run slackcli update from an
Administrator terminal). The update notice and update check suggest the same
command. slackcli never elevates itself. Installing to ~/.local/bin avoids the
need for sudo altogether.
SlackCLI also checks for new releases in the background at most once every 24
hours and prints a one-line notice after your command’s output when a newer
version exists. The result is cached in ~/.config/slackcli/update-check.json.
The notice is never shown during slackcli update or slackcli update check,
and a successful slackcli update refreshes the cache with the version it just
installed.
The background check never holds up your command: it gives GitHub 1.5 seconds
to answer and then gives up quietly, and after a failed check (offline, proxy,
rate limit) it waits an hour before trying again instead of retrying on every
command. When a check does finish, the notice at the end of that same run
already shows the version it found. slackcli update and update check, which
you run on purpose, wait up to 10 seconds for GitHub.
To turn the background check off, set SLACKCLI_NO_UPDATE_NOTIFIER=1 (any value
other than empty, 0 or false). SlackCLI then reads no cache, sends no request
to GitHub and prints no notice. The same happens automatically when the CI
environment variable is set to a value other than empty, 0 or false, as GitHub
Actions, GitLab CI and most CI systems do. If you set CI yourself outside a CI
job, you will stop seeing the notice too. slackcli update check and
slackcli update are explicit requests and work the same either way.
Uninstalling
Section titled “Uninstalling”brew uninstall slackcli # Homebrewrm ~/.local/bin/slackcli # manual install
slackcli auth logout # remove stored credentials firstrm -rf ~/.config/slackcli # or wipe the config directory entirely