forum
cmdhub adapter

Slack CLI
for cmdhub.

Channels, conversations, messages, threads, reactions, and users.

lock Auth: OAuth2
Quick Install cmdhub get slack

terminal Command Reference

Generated from source. Global flags apply to all commands.

Global Flags

--config string Config path override
--cursor string Continuation cursor
--debug bool Enable debug diagnostics
--json bool Alias for --output json
--jsonl bool Alias for --output jsonl
--limit int = 50 Maximum items to emit
--no-paginate bool Fetch only one page
--output, -o string = human Output mode: human|json|jsonl
--page-size int = 50 Requested upstream page size
--profile string = default Config/auth profile
--quiet, -q bool Suppress non-essential diagnostics
--trace-id string Trace identifier
--view string = summary View mode: summary|full

slack auth — Manage Slack authentication

slack auth login Start Slack OAuth login
$ slack auth login
$ slack --profile work auth login
slack auth logout Clear auth state
$ slack auth logout
$ slack --profile work auth logout
slack auth refresh Validate stored Slack token
$ slack auth refresh
$ slack auth refresh --output json
slack auth status Show auth status
$ slack auth status
$ slack auth status --output json
$ slack auth whoami
slack auth whoami Show the authenticated Slack user
$ slack auth whoami
$ slack auth whoami --output json
slack capabilities Describe Slack adapter capabilities

slack channel — Work with channels

slack channel get Get one channel by id or name
--id string Channel id or name
$ slack channel get general
$ slack channel get cmdhub-evals-a
$ slack channel get c1
$ slack channel list --limit 1 --output jsonl | slack channel get
slack channel join Join a public channel
--id string Channel id or name
$ slack channel join general
$ slack channel join c1
slack channel leave Leave a channel
--id string Channel id or name
$ slack channel leave general
$ slack channel leave c1
slack channel list List channels
$ slack channel list --limit 10
$ slack channel get cmdhub-evals-a
$ slack channel list --limit 1 --output jsonl | slack channel get

slack conversation — Work with Slack conversations

slack conversation get Get one conversation by id or name
--id string Conversation id or name
$ slack conversation get general
$ slack conversation get v1
slack conversation list List conversations visible to the current user
--types string = public_channel,private_channel,im,mpim Conversation types
$ slack conversation list --limit 10
$ slack conversation list --types public_channel,private_channel --limit 10
slack doctor Run Slack adapter diagnostics

slack message — Work with Slack messages

slack message create Create a message in a channel
--channel string Target channel id or name
--text string Message text
$ slack message create --channel general --text 'hello'
$ slack message create --channel c1 --text 'hello'
slack message delete Delete one of your messages
--channel string Channel id or name
--ts string Message timestamp
$ slack message delete --channel general --ts 171.0001
$ slack message delete m1
slack message get Get one message by timestamp
--channel string Channel id or name
--ts string Slack message timestamp
$ slack message get --channel general --ts 171.0001
$ slack message get m1
$ slack message list --channel general --limit 1 --output jsonl | slack message get
$ slack message list --channel cmdhub-evals-a --limit 1 --output jsonl | slack message get
slack message list List recent messages from a channel
--channel string Channel id or name
--query string Text query to match message text
$ slack message list --channel cmdhub-evals-a --limit 10
$ slack message list --channel cmdhub-evals-a --query eval-slack-msg-123
$ slack message list --channel general --limit 10
$ slack message list --channel general --limit 1 --output jsonl | slack message get
$ slack message list --channel general --limit 1 --output jsonl | slack reaction add --name eyes
slack message reply Reply in a thread
--channel string Channel id or name
--text string Reply text
--ts string Root message timestamp
$ slack message reply --channel general --ts 171.0001 --text 'Following up here.'
$ slack message reply m1 --text 'Following up here.'
$ slack message list --channel general --limit 1 --output jsonl | slack message reply --text 'Following up here.'
slack message update Update one of your messages
--channel string Channel id or name
--text string Updated text
--ts string Message timestamp
$ slack message update --channel general --ts 171.0001 --text 'Updated text'
$ slack message update m1 --text 'Updated text'

slack reaction — Work with message reactions

slack reaction add Add a reaction to a message
--channel string Channel id or name
--name string Emoji name without colons
--ts string Message timestamp
$ slack reaction add --channel general --ts 171.0001 --name eyes
$ slack reaction add m1 --name eyes
$ slack message list --channel general --limit 1 --output jsonl | slack reaction add --name eyes
slack reaction list List reactions on a message
--channel string Channel id or name
--ts string Message timestamp
$ slack reaction list --channel general --ts 171.0001
$ slack reaction list m1
slack reaction remove Remove your reaction from a message
--channel string Channel id or name
--name string Emoji name without colons
--ts string Message timestamp
$ slack reaction remove --channel general --ts 171.0001 --name eyes
$ slack reaction remove m1 --name eyes
slack resolve Resolve a Slack local marker or stored short reference
slack schema Emit Slack adapter schema hints
--in bool Show input schema
--out bool Show output schema

slack thread — Work with Slack threads

slack thread get Get a thread and its replies
--channel string Channel id or name
--ts string Root message timestamp
$ slack thread get --channel general --ts 171.0001
$ slack thread get m1
$ slack message list --channel general --limit 1 --output jsonl | slack thread get

slack user — Work with Slack users

slack user get Get one user by id or name
--id string User id or name
$ slack user get p1
$ slack user get alice
slack user list List users
$ slack user list --limit 20
$ slack user list --output json
slack user me Show the current authenticated user
$ slack user me
$ slack user me --output json
slack version Show slack version information

play_circle Live Examples

Output captured from a real workspace. Regenerate with scripts/gen-docs.sh --update.

auth

Check current identity
$ slack auth whoami
Configured: <nil>
Authenticated: true
Team: Stochastic Consulting
User: @philip

Stuck? Try `slack auth whoami`

channels

List channels
$ slack channel list --limit 5
c1  C2HT8B…    #general [2 members, updated 11d ago]
c2  C2HTE5…    #random [archived]
c3  C2HTK6…    #announcements [12 members, updated 2mo ago]
c4  C3XCUH…    #friendscompete [4 members, updated 2mo ago]
c5  C6CHFT…    #africanbank [3 members, updated 2mo ago]

Stuck? Try `slack message list --channel general`
Get a channel
$ slack channel get c1
Channel #general
Ref: C2HT8B…
ID: C2HT8B5FA
State: member
Updated: 11d ago

Stuck? Try `slack message list --channel general`

messages

List channel messages
$ slack message list --channel cmdhub-evals-a --limit 3
Channel: C0AV7AZLLF6
--
m1:  @philip joined the channel [@philip | 16h ago | system]

Stuck? Try `slack thread get m1`
Get a message
$ slack message get m1
Message C0AV7AZLLF6/17770…
Ref: C0AV7AZLLF6/17770…
Channel: C0AV7AZLLF6
From: @philip
Time: 2026-04-24 14:32 UTC
Meta: system

@philip joined the channel

search

Search messages
$ slack search message --query eval
No search results.

Stuck? Try `slack channel list`

users

Get current user
$ slack user me
{
  "team": {
    "id": "T2HTJBWMD",
    "name": "Stochastic Consulting"
  },
  "user": {
    "id": "U2HT4JGS0",
    "name": "philip",
    "real_name": "Philip Sterne",
    "display_name": "philip",
    "email": "sterne@gmail.com"
  }
}
List workspace members
$ slack user list --limit 5
p1  USLACK…    Slackbot [@slackbot]
p2  U2HT4J…    philip [@philip]
p3  U2HTJJ…    avine [@avine]
p4  U2HU4P…    carlscheffler [@carlscheffler]
p5  U3TLQJ…    tiffler [@tiffler]

Stuck? Try `slack user get slackbot`

alt_route Composition Patterns

Bridge your ecosystem with zero middleware.

# Pull one recent message and inspect the whole thread
slack message list --channel general --limit 1 --output jsonl \
  | slack thread get