Ultrafast, slim and beautiful Slack TUI.

One small Rust binary, no browser inside. It opens with your workspace already on screen.

$ cargo install --git https://github.com/leonavas/fastslack fastslack fastslack-login
# install
slick APP09:10

1. Build and install the app and its sign-in window. You need Rust, cargo and WebKitGTK (webkit2gtk-4.1). Linux only for now.

cargo install --git https://github.com/leonavas/fastslack fastslack fastslack-login
slick APP09:11

2. Sign in. A small window opens Slack's own sign-in page; once you're in, it hands the session to slick and closes. Inside the app, Ctrl+L opens the same screen.

fastslack login

Add your workspace (fastslack login acme) to go straight to its email-and-password form.

The session is saved to ~/.config/fastslack/config, readable only by you. The window keeps its own profile, so signing out of Slack in your browser doesn't sign you out here. If the session expires, slick asks you to sign in again.

Prefer a token or environment variables?

Put one of these in ~/.config/fastslack/config:

# A) internal Slack app (official): create it from
#    slack-app-manifest.yml, install it, use the User OAuth Token
token = xoxp-…

# B) browser session, no admin needed
token = xoxc-…
cookie = xoxd-…

Or set SLACK_TOKEN and SLACK_COOKIE in the environment. You can also paste the token and the cookie straight into the sign-in screen.

slick APP09:12

3. Run it.

fastslack

@you the first launch fetches your channels and users. Every launch after that opens from the local cache, already on screen.

# why-fast
you10:12

ok, but why is it fast?

slick APP10:12

No benchmarks yet, so no numbers we can't back up. Here's what it does:

  • Cache first. Users, channels, your recent conversations and their last 50 messages are saved locally, so they're on screen before Slack answers.
  • Never blocks. Every request runs on its own thread. Typing and scrolling never wait on the network.
  • One small binary. A native Rust TUI, about 4.6 MB. No webview, no Electron. A browser window shows up only to sign in.
  • Asks for less. The open conversation checks for new messages every 3 seconds and only fetches what's newer than what you have.
you10:13

fair.

# keys
slick APP11:00

The keyboard is the main interface. The mouse works too.

↑ ↓  j kMove through the list
Enter · clickOpen a conversation or fold a section
Ctrl+K · /Find a conversation
Tab · EscSwitch between the list and the message box
g · GFirst · last conversation
Shift+EnterNew line
PgUp PgDn · wheelScroll; at the top, load older messages
Shift+J · Shift+KMove a section (the order syncs with Slack)
Ctrl+U · Ctrl+WClear the box · delete a word
Ctrl+LSign in to Slack
Ctrl+RReload channels and users
click an imageEnlarge it
q · Ctrl+CQuit

Most of these work on this page too. Try q.

Coming from Slack? On this page its shortcuts work as well: Ctrl+K jumps to a conversation, Alt+↑ ↓ go to the previous or next channel, Alt+Shift+↑ ↓ to the next unread one, and Esc marks the current one read.

# features
slick APP11:30

What the TUI does today:

  • Channels, private channels, DMs and group DMs.
  • Hotkeys for everything: Ctrl+K to jump to any conversation, j k to move, Tab to write, Shift+J K to reorder sections. Full list in .
  • Your Slack sidebar sections. Fold them, reorder them, and the order syncs back to Slack.
  • Starred conversations, unread state and mention badges.
  • Presence dots on DMs.
  • Avatars and inline images in terminals that speak kitty or sixel graphics. Click one to enlarge it.
  • Multiline messages and mouse support.
  • Block Kit and attachments rendered as text; buttons show up as [label].
  • Your terminal's own colors. Press t to see what that means.
# roadmap
slick APP12:00

Nothing in this channel works yet. This is where slick is headed:

  • [planned] Themes. Colors and layout in a config file, beyond your terminal palette.
  • [planned] Keybindings. Remap any key.
  • [planned] Plugins. Hooks and scripting to extend it with your own commands.

Want one of these sooner, or something else? Tell me in .

● slick
slick APP09:02

0.1.0 2026-10-12

First release.

  • Channels, private channels, DMs and group DMs. Send messages, multiline with Shift+Enter.
  • Your Slack sidebar sections, starred conversations, unread state and mention badges. Sections fold and reorder, and the order syncs back to Slack.
  • Presence dots, avatars and inline images in terminals with kitty or sixel graphics.
  • Keyboard first: Ctrl+K to jump to a conversation, j k to move. Mouse works too.
  • Opens from a local cache, refreshes the open conversation every 3 seconds and marks it read.
  • Sign in on Slack's own page in a small window: fastslack login [workspace] or Ctrl+L in the app. A token in the config file or environment variables work too.
● feature-requests
slick APP09:03

Missing something? Tell me what slick should do next: threads, reactions, a theme, a key you can't live without.

Write your proposal in the box below and press Enter. After a quick check that you're human and a confirmation by email, it's sent.