CLI for interacting with Slack from the terminal.
holla slack <command> <action> [--flags]
# From source
bun install
bun run build # outputs dist/holla
# Or run directly
bun run src/index.ts# Authenticate via OAuth (opens browser)
holla slack auth login
# Or paste a token directly
holla slack auth login --token xoxb-...holla slack auth login # OAuth login (default) or --token
holla slack auth logout # Remove stored credentials
holla slack auth status # Show auth status for all workspacesholla slack channels list # List channels
holla slack channels info --channel #general # Channel details
holla slack channels history --channel #general # Message history
holla slack channels create --name new-channel # Create channel
holla slack channels join --channel #general # Join channel
holla slack channels leave --channel #general # Leave channel
holla slack channels topic --channel #general --topic "New topic"holla slack chat send --channel #general --message "Hello!"
echo "piped message" | holla slack chat send --channel #general
holla slack chat edit --channel #general --ts 1234 --message "Updated"
holla slack chat delete --channel #general --ts 1234
holla slack chat schedule --channel #general --message "Later" --post-at 1735689600holla slack search messages --query "deploy"
holla slack search files --query "report"holla slack users list
holla slack users info --user @john
holla slack users find --email john@example.com
holla slack users profile --user @johnholla slack reactions add --channel #general --ts 1234 --name thumbsup
holla slack reactions remove --channel #general --ts 1234 --name thumbsupholla slack files upload --channel #general --file ./report.pdf
holla slack files list
holla slack files delete --file F1234holla slack pins add/list/remove
holla slack stars add/list/remove
holla slack bookmarks add/edit/list/remove
holla slack reminders add/list/info/complete/delete
holla slack dnd status/snooze/unsnooze/end
holla slack groups create/list/update/enable/disable/members/set-members
holla slack emoji list
holla slack team info/profileFor any Slack API method not covered by the commands above:
holla slack api conversations.requestSharedInvite.approve --invite-id I123
holla slack api chat.scheduledMessages.list
holla slack api admin.conversations.restrictAccess.addGroup --channel-id C123Use #channel and @user syntax — they resolve to IDs automatically:
holla slack chat send --channel #general --message "Hello!"
holla slack users info --user @johnRaw IDs work too: --channel C01234567
holla slack channels list # table (default)
holla slack channels list --json # JSON output
holla slack channels list --plain # tab-separated, no color# With one workspace, --workspace can be omitted
holla slack channels list
# With multiple workspaces, specify which one
holla slack channels list --workspace circles| Skill | Description |
|---|---|
| slack | Interact with Slack — send messages, read threads, search, manage canvases, and more |
# Add marketplace
/plugin marketplace add circlesac/holla-cli
# Install plugin
/plugin install hollapi install git:circlesac/holla-cli
# or: npx @mariozechner/pi-coding-agent install git:circlesac/holla-cli| Variable | Description |
|---|---|
SLACK_TOKEN |
Override token for all commands |
SLACK_CLIENT_ID |
Custom OAuth client ID |
SLACK_CLIENT_SECRET |
Custom OAuth client secret |