A command-line tool for working with Slack messages, channels, and cross-tool workflows -- designed for developers who live in the terminal.
slackbuzz bridges Slack, ClickUp, and GitHub from your terminal. Read your inbox, reply to messages, manage your status, and get a cross-tool morning briefing without opening a browser.
- Activity inbox -- see mentions, DMs, and threads that need your attention (alias:
inbox) - Cross-tool digest -- morning briefing combining Slack mentions, ClickUp tasks, and GitHub PRs
- Message management -- list, send, search, edit, and delete messages in any channel or DM
- File search -- search files shared across your workspace
- Thread support -- read and reply to threads
- Reactions -- add and remove reactions, see reactions inline in activity views
- Saved items -- save messages for later and manage your bookmarks
- Status management -- set, view, and clear your Slack status from the terminal
- DM conversations -- list and browse direct message conversations
- Slack deeplinks -- clickable links that open items directly in the Slack app
- Emoji rendering -- 1900+ emoji shortcodes rendered as Unicode, plus custom workspace emoji
- @mention resolution --
@namein message bodies auto-resolved to Slack's<@USERID>format, with first-name shorthand for dotted/multi-word names - Shell unescape -- automatically strips shell escape artifacts (e.g.
\!from zsh history expansion) before sending - ClickUp & GitHub enrichment -- auto-detects
CU-task IDs and GitHub PR/issue URLs in messages with actionable hints - AI-friendly -- structured
--jsonoutput and--jqfiltering for AI coding agents (Claude Code, Copilot, Cursor) - JSON output -- all list/view commands support
--json,--jq, and--template - Shell completions -- bash, zsh, fish, and PowerShell
- Secure credentials -- tokens stored in the system keyring with plaintext fallback
go install github.com/triptechtravel/slackbuzz-cli/cmd/slackbuzz@latestbrew install triptechtravel/tap/slackbuzzDownload a prebuilt binary from the releases page and add it to your PATH.
Create a Slack app with all required scopes:
slackbuzz app createThis creates a Slack app, opens the install page, and prompts you to paste the OAuth tokens. Alternatively, log in with existing tokens:
slackbuzz auth loginCheck your Slack inbox:
slackbuzz activitySend a message:
slackbuzz send '#general' "Hello from the terminal!"Get a cross-tool morning briefing:
slackbuzz digest| Command | Description |
|---|---|
slackbuzz activity |
Show mentions, DMs, and threads (alias: inbox) |
slackbuzz activity --dms |
Show direct messages |
slackbuzz activity --threads |
Show threads you're mentioned in |
slackbuzz activity --all --since 1d |
Everything from the last day |
slackbuzz threads |
Show threads you're participating in |
slackbuzz dm list |
List DM conversations with recent activity |
slackbuzz digest |
Cross-tool briefing (Slack + ClickUp + GitHub) |
slackbuzz later list |
Show saved/bookmarked messages |
slackbuzz later add <channel> <ts> |
Save a message for later |
slackbuzz later remove <channel> <ts> |
Unsave a message |
| Command | Description |
|---|---|
slackbuzz send <channel|user> "text" |
Send a message (shortcut) |
slackbuzz message list <channel> |
Read channel or thread history |
slackbuzz message send <channel> "text" |
Send a message |
slackbuzz message edit <channel> <ts> "text" |
Edit a message |
slackbuzz message delete <channel> <ts> |
Delete a message |
slackbuzz message search <query> |
Search messages (user token required) |
slackbuzz file search <query> |
Search files (user token required) |
slackbuzz react <channel> <ts> :emoji: |
React to a message |
slackbuzz react remove <channel> <ts> :emoji: |
Remove a reaction |
slackbuzz notify <channel> "text" |
Send formatted Block Kit notifications |
slackbuzz thread <channel> <ts> "text" |
Reply to a thread |
| Command | Description |
|---|---|
slackbuzz channel list |
List channels |
slackbuzz channel info <channel> |
Show channel details |
slackbuzz user list |
List workspace members |
slackbuzz user info <user> |
Show user profile |
| Command | Description |
|---|---|
slackbuzz status |
Show your current Slack status |
slackbuzz status set "text" :emoji: |
Set your status |
slackbuzz status set "text" :emoji: --until 2h |
Set status with expiry |
slackbuzz status clear |
Clear your status |
| Command | Description |
|---|---|
slackbuzz app create |
Create a Slack app with all required scopes |
slackbuzz auth login |
Authenticate with bot/user tokens |
slackbuzz auth logout |
Remove stored credentials |
slackbuzz auth status |
Show current authentication state |
| Command | Description |
|---|---|
slackbuzz doctor |
Check token health and required scopes |
slackbuzz version |
Print version, commit, and build date |
slackbuzz completion SHELL |
Generate shell completion scripts |
SlackBuzz uses two types of Slack tokens. The CLI automatically selects the correct token for each command — you don't need to specify which to use.
| Token | Prefix | Automatic usage |
|---|---|---|
| Bot token | xoxb- |
Reading channels/users, reactions, system notifications (notify) |
| User token | xoxp- |
Sending messages (as you), search, DMs, saved items, status |
Messages post as the authenticated user by default. Pass --as-bot on message send, edit, or delete to post as the bot app instead. When sending a DM to yourself, the CLI automatically switches to the bot so you receive a notification.
The slackbuzz app create command creates a Slack app pre-configured with all required scopes for both token types. After installing the app to your workspace, paste both tokens when prompted.
Bot token (xoxb-): chat:write, channels:history, channels:read, emoji:read, groups:history, groups:read, im:history, im:read, im:write, mpim:history, mpim:read, reactions:read, reactions:write, users:read
User token (xoxp-): channels:read, chat:write, groups:read, im:read, im:write, mpim:read, search:read, stars:read, stars:write, users:read, users.profile:read, users.profile:write
The digest command combines activity from Slack, ClickUp, and GitHub in a single view:
$ slackbuzz digest
SLACK -- 3 unread mentions
@alice in #dev "Can you review PR #42?" 2h ago
@bob in #backend "CU-abc needs your input" 5h ago
@sarah DM "meeting at 3?" 1d ago
CLICKUP -- 2 tasks assigned to you
CU-abc123 In Review API redesign
CU-def456 In Progress Deploy pipeline fix
GITHUB -- 1 PR needs your review
#42 feat: add caching layer alice +120 -30
---
Quick actions:
slackbuzz message send #dev "reviewing now"
clickup task update CU-abc123 --status complete
gh pr review 42 --approveThe digest shells out to the clickup and gh CLIs if installed. Sections are gracefully skipped if a CLI isn't available.
The activity view also auto-detects ClickUp task IDs (CU-abc123) and GitHub PR/issue URLs in messages and shows actionable hints:
$ slackbuzz activity
@mention alice #engineering 2h ago
Can you review CU-abc123? https://github.com/org/repo/pull/42
-> Open in Slack
-> clickup task view CU-abc123
-> gh pr view 42Generate completion scripts for your shell:
# Bash
source <(slackbuzz completion bash)
# Zsh
source <(slackbuzz completion zsh)
# Or install permanently:
slackbuzz completion zsh > "${fpath[1]}/_slackbuzz"
# Fish
slackbuzz completion fish | source
# PowerShell
slackbuzz completion powershell | Out-String | Invoke-ExpressionFor non-interactive environments, pipe tokens via stdin:
echo "$SLACK_BOT_TOKEN" | slackbuzz auth login --with-tokenAll list and view commands support --json for machine-readable output, and --jq for inline filtering:
slackbuzz activity --json
slackbuzz channel list --json --jq '.[].name'
slackbuzz message list #general --jsonThe CLI is designed to work well with AI agents like Claude Code, GitHub Copilot, and Cursor. An AI agent can read Slack context, send messages, and manage tasks -- all without leaving the terminal.
# AI agent checks what needs attention
slackbuzz activity --json
# AI agent reads messages in a specific channel
slackbuzz message list #engineering --json --limit 10
# AI agent searches for relevant discussions
slackbuzz message search "deployment" --json
# AI agent replies to a thread
slackbuzz thread #engineering 1706000000.000000 "Fix deployed, see PR #42"
# AI agent reacts to acknowledge
slackbuzz react #engineering 1706000000.000000 :white_check_mark:
# AI agent gets cross-tool context
slackbuzz digest --jsonThe --json flag on all commands outputs structured data that agents can parse. The activity view includes channel IDs, timestamps, and permalinks that agents can use to take action.
Created by Isaac Rowntree.