Back to floatbird
Open source · CLI · terminal

slacktivity

A live terminal feed of recent Slack messages, with a mark-as-read triage layer. It authenticates as your existing Slack browser session. No app to install, no workspace-admin approval, no bot in the sidebar. The messages that need you, in a terminal.
Illustrative. The feed updates live; r dismisses a message, 1/2/3 toggle filters, ctrl+p opens the command palette.

Why it exists

Slack’s unread state is all-or-nothing: open a channel for one message and twelve others count as read. slacktivity adds a triage layer Slack doesn’t have. It’s a flat, chronological feed of what’s unread, mentions you, or lands in channels you care about, with a read action that dismisses each message once you’ve dealt with it. Anything still on screen still needs you.

Marking read is local. It doesn’t touch Slack’s unread badges; dismissed messages are saved (with a preview) and you can re-open the archive and restore any of them.

How it works

It talks to the same private API the Slack web app uses: an xoxc token plus your d session cookie, both lifted from your logged-in browser session. It polls client.counts for unread state every five seconds and pulls message deltas with conversations.history, resolving and caching user and channel names along the way.

The UI is a Textual TUI in Python; install and run it with uv. Because it rides a session token, it’s a personal-use tool. The token expires when you log out, and it’s a gray area under Slack’s ToS (terms of service), so it’s not for sharing.