Two answers to the same problem
The official Slack app is Electron: a full copy of Chromium showing one website. That is why it uses so much RAM. Both slk and msga skip all of it and talk to Slack's API directly.
slk is a terminal UI written in Go by Grant Ammons. It has vim-style modal keys, 59 built-in themes, SQLite-backed scrollback and images through the kitty graphics protocol or sixel. It is MIT-licensed and very actively developed.
msga is a native desktop app written in C++. It draws its own window on Wayland, X11, macOS and Windows, with no Electron, no web view and no GUI toolkit. It looks and works like Slack: mouse, sidebar, threads panel, images in line. It is GPL-3.0.
Neither is affiliated with Slack. Both use the same session protocol as Slack's web client when you sign in with your own account.
Side by side
| slk | msga | |
|---|---|---|
| Interface | Terminal UI, vim-style keys | Native desktop window, mouse and keyboard |
| Sign-in | Reads the session of the Slack desktop app | Signs in through your browser; no Slack desktop app needed |
| Images | kitty graphics or sixel, half-block fallback elsewhere | Drawn in the window, animated GIFs included |
| Size on disk | ~19 MB | 4.3 MB Linux, 3.8 MB Windows, 2.2 MB macOS |
| Platforms | macOS and Linux, Windows build available | Linux, macOS and Windows, one file each |
| Install | Homebrew, AUR, go install, deb, rpm, apk | Direct download, Homebrew on macOS; updates itself |
| Themes | 59 built-in | Your own Slack theme, plus light, dark, accent presets and custom |
| Beyond messaging | Activity feed, smart paste | Canvases, audio player, saved and scheduled messages, AI summaries, Claude Code sessions |
| Language, license | Go, MIT | C++20, GPL-3.0 |
Signing in
This is the biggest practical difference today.
slk takes its session from the Slack desktop app's cookie store. That made setup much easier than copying tokens by hand. It also means you need the Electron app installed, signed in, and opened again when the session expires. slk's own tracker has a thread about it (issue #272), and a browser sign-in for slk is in review (PR #269).
msga signs in through the browser you already have. Click Sign in with Chrome (or Chromium, Brave, Edge or Vivaldi), log in to Slack the normal way, and msga picks up the session from a private, throwaway browser profile. The Slack desktop app never needs to be on your machine. If it already is, on Linux, Import from local Slack takes its session in one click.
Images and files
slk shows images in the terminal when the terminal speaks the kitty graphics protocol or sixel, and falls back to half-block characters elsewhere. That works well in kitty, WezTerm or Ghostty, less well in others.
msga draws images, animated GIFs and custom emoji in the window on every platform. Audio messages play in line, canvases open in a viewer, and files show as cards you can open or save.
Size
slk is about 19 MB on disk. msga is smaller: 4.3 MB on Linux, 3.8 MB on Windows and a 2.2 MB DMG on macOS. Each one is a single file. The Linux build is fully static and runs on any x86-64 distribution. See the lightest Slack client for Linux for how that compares with the official app.
Who should use which
Stay on slk if you live in a terminal: tmux, SSH sessions, vim keys everywhere. A desktop window will never fit that workflow, and slk does it very well.
Try msga if you want the speed without the terminal:
- you don't want the Slack desktop app installed just to hold a session
- you want images, GIFs and files in line without depending on your terminal
- you are on Windows, or switch between Linux, macOS and Windows
- you run Claude Code: msga shows every session on your computer as a direct message, next to your Slack workspaces
Both are free. msga is a 4 MB download, so trying it costs a minute. Download msga.