Skip to content

gammons/slk

Repository files navigation

slk

A blazingly fast Slack TUI. Keyboard-driven, beautifully themed, and under 20MB. One static binary. No Electron required.

Marketing site: getslk.sh · Docs: Wiki

slk screenshot

slk is a daily-driver replacement for the official Slack desktop client, built in Go with bubbletea and lipgloss.

Why slk?

  • Fast. Cold start in milliseconds. Render-cached messages. SQLite-backed scrollback. Real-time over WebSocket.
  • Tiny. ~19 MB on disk. ~60 MB RSS for a live multi-workspace session vs. 500 MB–1.5 GB for the official client. No node_modules, no Chromium, no 1Gb RAM tax.
  • Keyboard-first. Vim-style modal editing. j/k, h/l, i, Esc.
  • Pretty. 35+ built-in themes, lipgloss-styled panels, true-pixel avatars on kitty (half-block fallback elsewhere), emoji shortcodes, day separators, and pill-style reactions.
  • Multi-workspace. All your workspaces stay connected in parallel. 19 to instantly jump between them, with live unread badges in the rail.
  • Yours. TOML config, custom themes, custom channel sections via glob, XDG-compliant paths.

Highlights

  • Real-time messages, edits, deletes, reactions, typing indicators
  • Inline images (kitty graphics / sixel / half-block fallback) with full-screen preview
  • Threads side panel + a workspace-wide threads view
  • Smart paste: clipboard images, file paths, or text — multiple attachments + caption in one send
  • Slack-native sidebar sections, kept live; or glob-based config sections
  • Browser-cookie auth (xoxc + d) — no Slack App required
  • Vim-style modal keybindings, fuzzy channel finder, workspace picker
  • 12 themes + drop-in custom themes, live theme switcher
  • OS desktop notifications on DMs, mentions, and configurable keywords

Full feature breakdown: [[Features|https://github.com/gammons/slk/wiki/Features]]

Quick install

Homebrew (macOS and Linux):

brew install gammons/tap/slk

Linux/macOS tarball (auto-resolves the latest version):

VERSION=$(curl -fsSL https://api.github.com/repos/gammons/slk/releases/latest | grep -oE '"tag_name": *"v[^"]+"' | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+' | sed 's/^v//')
# Linux x86_64
curl -fsSL "https://github.com/gammons/slk/releases/latest/download/slk_${VERSION}_linux_x86_64.tar.gz" | tar xz
# macOS Apple Silicon
curl -fsSL "https://github.com/gammons/slk/releases/latest/download/slk_${VERSION}_darwin_arm64.tar.gz" | tar xz
sudo mv slk /usr/local/bin/

Go:

go install github.com/gammons/slk/cmd/slk@latest

For .deb / .rpm / .apk packages, Windows, build-from-source, and checksums, see the Installation wiki page.

Setup

slk uses your existing browser session. Grab your xoxc token and d cookie from DevTools, then:

slk --add-workspace

Full walkthrough: Setup wiki page.

Debugging

Set SLK_DEBUG=1 to enable a comprehensive debug log written to slk-debug.log in the current working directory. The file is truncated each run, so reproduce the issue, quit slk, then copy the file before relaunching. Log lines are categorized ([cache], [imgfetch], [imgrender], [ws], [general]) so grep '\[cache\]' slk-debug.log slices to one focus area.

Documentation

Everything lives in the wiki:

Disclaimer

slk is an independent, unofficial project. It is not affiliated with, endorsed by, or sponsored by Slack Technologies, LLC or Salesforce, Inc. "Slack" is a trademark of Slack Technologies, LLC; it is used here only to describe the service this client interoperates with.

slk talks to Slack via the same internal browser protocol the official web client uses. This is unofficial and not sanctioned by Slack — see Tradeoffs and Non-Goals for details.

License

MIT © Grant Ammons

About

A blazingly fast Slack TUI

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages