Slack CLI for coding agents — search, read, and draft messages via the Slack Web API using browser-extracted tokens
Project description
slack-cli
A Slack CLI designed for coding agents (Claude Code, Cursor, etc.) that provides structured JSON access to Slack workspaces via the Web API.
It works by extracting authentication tokens from your existing browser session — no Slack app or bot token required.
Install
npm:
npm install -g @alankyshum/slack-cli
pip:
pip install slack-cli-agent
Manual:
git clone https://github.com/alankyshum/slack-cli.git
chmod +x slack-cli/bin/slack-cli
ln -s "$(pwd)/slack-cli/bin/slack-cli" ~/.local/bin/slack-cli
Prerequisites
curlandjq(for all commands)python3(for URL encoding)- Node.js + Playwright (only for
authcommand)
npm install -g playwright
npx playwright install chromium
Quick Start
# 1. Authenticate (opens browser to extract tokens)
slack-cli auth --domain mycompany.slack.com
# 2. Search messages
slack-cli search "from:@alice in:#engineering deployment"
# 3. Read channel history
slack-cli read engineering 10
# 4. Draft a message (saved locally, not sent)
slack-cli draft general "Hey team, the fix for JIRA-123 is ready"
Commands
| Command | Description |
|---|---|
auth --domain <dom> |
Extract tokens from browser session |
whoami |
Show authenticated user |
config |
Show current configuration |
search <query> |
Search messages (full Slack query syntax) |
read <channel> [count] |
Read channel messages |
unreads |
Show recent activity |
draft <channel> <msg> |
Save draft locally (does not send) |
drafts |
List saved drafts |
send <draft_id> |
Send a draft (with confirmation prompt) |
channels |
List your channels |
dms |
List recent DMs |
userinfo <user> |
Look up user by ID, email, or name |
Search Modifiers
Slack's full search syntax is supported:
| Modifier | Example | Description |
|---|---|---|
from: |
from:@alice / from:me |
Messages from a person |
in: |
in:#channel / in:@user |
Messages in channel or DM |
before: |
before:2025-06-01 |
Before a date |
after: |
after:2025-01-01 |
After a date |
on: |
on:2025-03-15 |
On exact date |
during: |
during:january |
During a month or year |
has: |
has::eyes: / has:pin |
Has reaction or pin |
is: |
is:saved / is:thread |
Saved or thread messages |
"..." |
"exact phrase" |
Exact phrase match |
- |
-word |
Exclude word |
* |
deploy* |
Wildcard (min 3 chars) |
Environment Variables
| Variable | Default | Description |
|---|---|---|
SLACK_CLI_HOME |
~/.slack-cli |
Config directory |
SLACK_CLI_CHROME_PROFILE |
~/.slack-cli/chrome-profile |
Chrome profile for auth |
SLACK_CLI_COUNT |
20 |
Results per page |
SLACK_CLI_SORT |
timestamp |
Sort: timestamp or score |
SLACK_CLI_SORT_DIR |
desc |
Direction: asc or desc |
How It Works
-
authopens a Chromium browser using your existing Chrome profile (via Playwright), navigates to your Slack workspace, and intercepts thexoxc-API token andxoxd-session cookie from live API requests. -
All other commands use direct Slack Web API calls via
curl— no browser needed, making them fast and suitable for automation. -
Drafts are saved locally to
~/.slack-cli/drafts.json. Thesendcommand requires interactive confirmation before posting. -
All output is structured JSON, making it easy to parse with
jqor consume from AI agents.
Security
- Credentials are stored at
~/.slack-cli/credentials.jsonwith600permissions - Tokens are
xoxc-client tokens scoped to your user session - The
sendcommand requires explicityconfirmation - No data is sent to any third party
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file slack_cli_agent-1.0.0.tar.gz.
File metadata
- Download URL: slack_cli_agent-1.0.0.tar.gz
- Upload date:
- Size: 11.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cbaa3334e4b6180087d8befdae8ba8cff3226374fff370697867b261d5276ea4
|
|
| MD5 |
07b843dbff2edb85c9bff683de9e124b
|
|
| BLAKE2b-256 |
b53a3d5255506e6795c9dac7f301dc19a265cb4e35460cc49349224e3ac2ea68
|
File details
Details for the file slack_cli_agent-1.0.0-py3-none-any.whl.
File metadata
- Download URL: slack_cli_agent-1.0.0-py3-none-any.whl
- Upload date:
- Size: 11.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef6b51f3a2bec5702c1e75a8eefb244a0f55a3fce76eb5645371ab997d427a00
|
|
| MD5 |
ea72b706096556a7e658bed6c74bb95c
|
|
| BLAKE2b-256 |
0087213d6009b12c047a6acaeb353b52412a5530e1bf5ab5a553e19b152f344f
|