Installation¶
slick ships as a single static Go binary. There are three supported install
paths plus a local-development workflow.
Homebrew (recommended)¶
The formula lives in matcra587/homebrew-tap
and tracks the latest GitHub release. Upgrades come through brew upgrade
slick.
go install¶
Installs the latest tagged release into $(go env GOBIN) (or
$(go env GOPATH)/bin). This path does not embed version metadata —
slick version will report dev / unknown because the version package
reads compile-time -X ldflag overrides and go install doesn't supply
them. If you need accurate slick version output, use Homebrew or the
pre-built binaries instead, or build from a checkout via mise run
install (which does set the ldflags).
Pre-built binaries¶
GitHub Releases ship checksummed tarballs for Linux on amd64/arm64 and
macOS on arm64 (Apple Silicon). Intel macOS (darwin_amd64) is not built —
the Homebrew formula and pre-built archives both omit it; use go install
on those machines.
bash / zsh:
VERSION=$(curl -fsSL https://api.github.com/repos/matcra587/slack-cli/releases/latest | jq -r .tag_name)
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')
curl -fsSLO "https://github.com/matcra587/slack-cli/releases/download/${VERSION}/slick_${VERSION#v}_${OS}_${ARCH}.tar.gz"
curl -fsSLO "https://github.com/matcra587/slack-cli/releases/download/${VERSION}/checksums.txt"
grep "_${OS}_${ARCH}.tar.gz$" checksums.txt | sha256sum -c
tar xzf "slick_${VERSION#v}_${OS}_${ARCH}.tar.gz"
sudo install slick /usr/local/bin/
fish:
set VERSION (curl -fsSL https://api.github.com/repos/matcra587/slack-cli/releases/latest | jq -r .tag_name)
set OS (uname -s | string lower)
set ARCH (uname -m | string replace x86_64 amd64 | string replace aarch64 arm64)
set NUM (string replace -r '^v' '' $VERSION)
set TARBALL (printf 'slick_%s_%s_%s.tar.gz' $NUM $OS $ARCH)
curl -fsSLO "https://github.com/matcra587/slack-cli/releases/download/$VERSION/$TARBALL"
curl -fsSLO "https://github.com/matcra587/slack-cli/releases/download/$VERSION/checksums.txt"
grep (printf '_%s_%s.tar.gz$' $OS $ARCH) checksums.txt | sha256sum -c
tar xzf $TARBALL
sudo install slick /usr/local/bin/
The checksums.txt file itself is signed with
cosign keyless signing — a
checksums.txt.sigstore.json bundle is uploaded next to the release
artifacts. To verify the chain end to end:
bash / zsh:
curl -fsSLO "https://github.com/matcra587/slack-cli/releases/download/${VERSION}/checksums.txt.sigstore.json"
cosign verify-blob \
--bundle checksums.txt.sigstore.json \
--certificate-identity-regexp "https://github.com/matcra587/slack-cli/" \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
checksums.txt
fish:
curl -fsSLO "https://github.com/matcra587/slack-cli/releases/download/$VERSION/checksums.txt.sigstore.json"
cosign verify-blob \
--bundle checksums.txt.sigstore.json \
--certificate-identity-regexp "https://github.com/matcra587/slack-cli/" \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
checksums.txt
The archives themselves are not individually signed; the checksum bundle covers them transitively.
From source (development)¶
git clone https://github.com/matcra587/slack-cli
cd slack-cli
mise install # provision pinned toolchain
mise run install # go install ./cmd/slick with version metadata
slick version
mise run build writes a release-style binary to
./dist/slick-<goos>-<goarch> if you need to test the artifact shape used
in release.
Verifying the install¶
Should print the installed version, commit, branch, build time, and
built by (one of goreleaser, homebrew, or the local user for a dev
build).
Upgrading¶
| Install path | Upgrade |
|---|---|
| Homebrew | brew upgrade slick |
| go install | go install github.com/matcra587/slack-cli/cmd/slick@latest |
| Pre-built | Re-download from releases |
| From source | git pull && mise run install |
slick does not currently ship a slick update self-updater; upgrade
through whichever install path you chose.