A terminal-based Slack client that allows you to use Slack as yourself (not as a bot), directly from your command line.
- ✅ Acts as YOU - All messages sent appear under your name, just like using Slack normally
- ✅ Real-time messaging - Receive messages instantly via RTM (Real-Time Messaging)
- ✅ Channel/DM access - See and interact with all channels and DMs you're a member of
- ✅ Join Channels - Search and join public channels directly from the UI
- ✅ Image Viewing - View images shared in channels (rendered as ASCII/ANSI art) or open them in your browser
- ✅ Custom Themes - Choose from 4 different color themes (Default, Hacker, Light, Ocean)
- ✅ Custom Emojis - View custom workspace emojis directly in the terminal
- ✅ Full user permissions - Send messages, react to posts, upload files, and more
- ✅ Session persistence - Login once and stay authenticated
- ✅ Secure Logout - Easily revoke your session and clear local data
- Go to https://api.slack.com/apps
- Click "Create New App" → "From scratch"
- Name your app (e.g., "TermoSlack") and select your workspace
- Click "Create App"
- In your app settings, go to "OAuth & Permissions"
- Scroll down to "Redirect URLs"
- Add:
http://localhost:3000/auth/callback(or your custom OAUTH_REDIRECT_URI) - Click "Save URLs"
Important: You do NOT need to add Bot Token Scopes. This app uses User Token Scopes only.
- Go to "Basic Information" in your app settings
- Under "App Credentials", find:
- Client ID
- Client Secret
- Copy these values
-
Copy
.env.exampleto.env:Copy-Item .env.example .env -
Edit
.envand add your credentials:SLACK_CLIENT_ID=1234567890.1234567890123 SLACK_CLIENT_SECRET=abc123def456ghi789jkl012mno345pq OAUTH_PORT=3000 OAUTH_REDIRECT_URI=http://localhost:3000/auth/callback
npm installnode bootstrap.cjsOr build an executable:
npm run build:exe
.\termoslack.exe- Run the app
- You'll see:
To authenticate, open: http://localhost:3000/login - Open that URL in your browser
- Slack will ask you to authorize the app - click "Allow"
- You'll be redirected back and authenticated
- The app will load all your channels and DMs
- Arrow Keys: Navigate through channels/DMs
- Enter: Select a channel to view messages
- Type & Enter: Send a message to the selected channel
- Ctrl+F: Search for channels/DMs in the list
- Ctrl+S: Global message search
- Ctrl+D: Search for a user to DM
- Ctrl+U: Upload a file to the current channel
- Ctrl+J / F7: Join a new channel
- Ctrl+T: Cycle through color themes
- Ctrl+Q: Logout and exit
- Ctrl+C: Force exit
- O: Open selected image in browser
- T: View thread for selected message
The app requests these user scopes to function properly:
channels:read,channels:write,channels:history,channels:join- Read, send, and join public channelsgroups:read,groups:write,groups:history- Read and send messages in private channelsmpim:read,mpim:write,mpim:history- Group DMsim:read,im:write,im:history- Direct messageschat:write- Send messages as youusers:read- See user namesfiles:read- View files/imagessearch:read- Search messages
All actions are performed as you, just like using the Slack web/desktop app.
- Make sure you clicked "Allow" during OAuth authorization
- Try removing the saved session and re-authenticating:
- Windows: Delete
%USERPROFILE%\.termoslack\sessions\* - Then restart the app and login again
- Windows: Delete
- Your session may have expired
- Re-authenticate by opening the OAuth URL shown in the app
- Make sure you're a member of the channels you want to see
- The app only shows channels/DMs you're actually in (just like regular Slack)
npm run build:exeThis creates termoslack.exe that you can run anywhere without Node.js installed.
- Your user token is stored locally in
~/.termoslack/sessions/ - All communication goes directly between your computer and Slack's servers
- The app never sends your credentials or messages to any third party
- Your token grants the same access as your regular Slack session