Introduction
slack-term brings the Slack experience into the terminal for developers who prefer keyboard-driven workflows. It provides a text-based UI for reading and sending messages across Slack channels and direct messages without switching to a browser or desktop app.
What slack-term Does
- Displays Slack channels and direct messages in a terminal UI
- Sends and receives messages in real time via the Slack API
- Supports switching between channels with keyboard shortcuts
- Shows message history with timestamps and usernames
- Handles message editing and thread navigation
Architecture Overview
slack-term connects to the Slack Real Time Messaging API using a WebSocket connection for live updates. The TUI is built with the termui library, rendering a split-pane layout with a channel list on the left and message history on the right. Authentication uses a legacy Slack token or a bot token.
Self-Hosting & Configuration
- Install via
go installor download a prebuilt binary - Create a Slack app and obtain an OAuth token with required scopes
- Set the token in the
SLACK_TOKENenvironment variable - Optionally configure a
~/.slack-termJSON config file for defaults - Set
sidebar_widthandnotifyoptions in the config file
Key Features
- Lightweight terminal UI with minimal resource usage
- Real-time message delivery via Slack WebSocket API
- Keyboard-driven navigation between channels and threads
- Works over SSH for remote server workflows
- Single binary with no runtime dependencies
Comparison with Similar Tools
- Weechat + wee-slack — More feature-rich with multi-protocol support; slack-term is simpler and purpose-built
- Slack desktop app — Full-featured but heavy; slack-term uses a fraction of the resources
- Matterbridge — Bridges multiple chat platforms; slack-term is a dedicated Slack-only client
- Ripcord — Lightweight desktop client for Slack and Discord; slack-term runs entirely in the terminal
FAQ
Q: What Slack token do I need? A: You need a user token (xoxp-) or bot token (xoxb-) with channels:history, channels:read, chat:write, and users:read scopes.
Q: Can I use slack-term with multiple Slack workspaces? A: Not simultaneously. You can switch workspaces by changing the SLACK_TOKEN variable and restarting.
Q: Does slack-term support threads? A: Basic thread viewing is supported. Thread replies appear inline in the message stream.
Q: Will slack-term work over SSH? A: Yes. Since it runs entirely in the terminal, it works over any SSH connection without port forwarding.