Awesome-openclaw-skills slack-personal
Read, send, search, and manage Slack messages via the slk CLI. Use when the user asks to check Slack, read channels, send Slack messages, search Slack, check unreads, manage drafts, view saved items, or interact with Slack workspace. Also use for heartbeat Slack checks. Triggers on "check slack", "any slack messages", "send on slack", "slack unreads", "search slack", "slack threads", "draft on slack".
git clone https://github.com/sundial-org/awesome-openclaw-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/slack-personal" ~/.claude/skills/sundial-org-awesome-openclaw-skills-slack-personal && rm -rf "$T"
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/slack-personal" ~/.openclaw/skills/sundial-org-awesome-openclaw-skills-slack-personal && rm -rf "$T"
skills/slack-personal/SKILL.mdslk — Slack CLI
Session-based Slack CLI for macOS. Auto-authenticates from the Slack desktop app — no tokens, no OAuth, no app installs. Acts as your user (
xoxc- session tokens).
Commands
# Auth slk auth # Test authentication, show user/team # Read slk channels # List channels (alias: ch) slk read <channel> [count] # Read recent messages, default 20 (alias: r) slk thread <channel> <ts> [count] # Read thread replies, default 50 (alias: t) slk search <query> [count] # Search messages across workspace slk users # List workspace users (alias: u) # Activity slk activity # All channels with unread/mention counts (alias: a) slk unread # Only unreads, excludes muted (alias: ur) slk starred # VIP users + starred items (alias: star) slk saved [count] [--all] # Saved for later items (alias: sv) slk pins <channel> # Pinned items in a channel (alias: pin) # Write slk send <channel> <message> # Send a message (alias: s) slk react <channel> <ts> <emoji> # React to a message # Drafts (synced to Slack editor UI) slk draft <channel> <message> # Draft a channel message slk draft thread <ch> <ts> <message> # Draft a thread reply slk draft user <user_id> <message> # Draft a DM slk drafts # List active drafts slk draft drop <draft_id> # Delete a draft
Channel accepts name (
general, ai-coding) or ID (C08A8AQ2AFP).
Auth
Automatic — extracts session token from Slack desktop app's LevelDB + decrypts cookie from macOS Keychain.
First run: macOS will show a Keychain dialog asking to allow access to "Slack Safe Storage":
- Allow — one-time access, prompted again next time
- Always Allow — permanent, no future prompts (convenient but any process running as your user can extract credentials silently)
- Deny — blocks access, slk cannot authenticate
Token cache:
~/.local/slk/token-cache.json — auto-validated, auto-refreshed on invalid_auth.
If auth fails (token rotated, Slack logged out):
rm ~/.local/slk/token-cache.json slk auth
Slack desktop app must be installed and logged in. Does not need to be running if token is cached.
Reading Threads
Threads require a Slack timestamp. Use
--ts to get it, then read the thread:
slk read general 10 --ts # Output: [1/30/2026, 11:41 AM ts:1769753479.788949] User [3 replies]: ... slk thread general 1769753479.788949
Agent Workflow Examples
- Heartbeat/cron unread check —
→slk unread
for channels that need attentionslk read <channel> - Save & pick up — Human saves threads in Slack ("Save for later"). Agent runs
during heartbeat, reads full threads withslk saved
, summarizes or extracts action itemsslk thread - Daily channel digest —
across key channels → compile decisions, open questions, action items →slk read <channel> 100slk send daily-digest "📋 ..." - Thread monitoring — Watch specific threads for new replies (incidents, PR reviews, decisions)
- Draft for human review —
posts to Slack's editor UI for human to review before sendingslk draft <channel> "..." - Search-driven context —
orslk search "deployment process"
to pull context before answering questionsslk pins <channel>
Limitations
- macOS only — uses Keychain + Electron storage paths
- Session-based — acts as your user, not a bot. Be mindful of what you send
- Draft drop may fail with
if Slack has that conversation opendraft_has_conflict - Session token expires on logout — keep Slack app running or rely on cached token
Missing Features & Issues
Create PR or Report Issue at: https://github.com/therohitdas/slkcli