Complete Slack integration for Cursor workflow. Enables full Slack access without leaving your editor: - Check unread messages across all workspaces - Read channel history and DMs - Search conversations (full-text with filters) - Set status and DND mode - View activity feed (mentions, reactions, threads) - Send messages to channels and DMs Use when user says: - "/slack" (shows unread messages) - "check slack", "read slack messages" - "search slack for X" - "set my slack status" - "send slack message" BENEFITS: - Zero context switching (stay in editor) - Fast CLI-based access (no browser loading) - Multi-workspace support - Natural language interface via AI - Perfect for quick status checks during development
Access Slack directly from Cursor using natural language. Powered by the slk gem for fast, keyboard-driven Slack operations.
slk must be installed and authenticated. If any command fails with "command not found", suggest running /setup-slack.
/slack — Show unread messages across all workspaces/slack unread — Same as above/slack messages #channel — Read recent channel messages/slack search "query" — Search messagesArguments after /slack map directly to slk subcommands.
# Show unread across all workspaces (default action)
slk unread
# Unread for a specific workspace
slk unread -w oddball
# Include muted channels
slk unread --muted
# Clear all unread
slk unread clear
# Clear unread for a specific channel
slk unread clear #channel
# Channel messages
slk messages #general
slk messages #eert-teammates-internal
# DM messages
slk messages @alexteal
# From a Slack URL (message + thread context)
slk messages https://oddball-io.slack.com/archives/C123/p456
# Limit number of messages
slk messages #general -n 20
# Messages since a duration or date
slk messages #general --since 1d
slk messages #general --since 7d
slk messages #general --since 2026-02-28
# Include thread replies inline
slk messages #general --threads
# Specific workspace
slk messages #general -w oddball
Use the messages command with a Slack message URL — it returns the message and its thread:
slk messages https://oddball-io.slack.com/archives/C123ABC/p1234567890
Requires user token (xoxc/xoxs), not bot tokens.
# Basic search
slk search "deploy"
# Filter by channel
slk search "deploy" --in #platform-sre-team
# Filter by user
slk search "vtk" --from @alexteal
# Filter by date
slk search "outage" --after 2026-02-01 --before 2026-03-01
slk search "standup" --on 2026-02-28
# Combine filters
slk search "PR review" --in #eert-teammates-internal --from @tomwarren
# More results
slk search "deploy" -n 50
# Specific workspace
slk search "deploy" -w oddball
# Recent activity (reactions, mentions, threads)
slk activity
# Include message content
slk activity -m
# Filter by type
slk activity --mentions
slk activity --reactions
slk activity --threads
# Limit results
slk activity -n 10
# Show current status (all workspaces)
slk status
# Set status with emoji
slk status "Working" :laptop:
# Set status with duration
slk status "In a meeting" :calendar: 1h
# Set status with presence and DND
slk status "Focus time" :headphones: 2h -p away -d 2h
# Clear status
slk status clear
# Set across all workspaces
slk status "OOO" :palm_tree: --all
# List available presets
slk preset list
# Apply a preset
slk preset meeting
slk preset focus
slk preset lunch
# Apply to all workspaces
slk preset meeting --all
# Show DND status (all workspaces)
slk dnd
# Enable for a duration
slk dnd 1h
slk dnd 30m
slk dnd 1h30m
# Disable
slk dnd off
# Set across all workspaces
slk dnd 1h --all
# Search emoji by name
slk emoji search "thumbs"
slk emoji search "party"
Use --json when you need structured data for follow-up processing:
slk unread --json
slk messages #general --json
slk search "deploy" --json
slk activity --json
slk supports multiple workspaces. Use -w <name> to target a specific workspace, or --all for commands that support it. Without -w, slk uses the primary workspace.
# List configured workspaces
slk workspaces
--since to limit to recent messages rather than fetching everythingslk messages--json when you need to process output programmatically or extract specific data#channel format (not weechat %channel format)~/.local/share/weechat/logs/) and qmd remain useful for historical/indexed search — prefer slk for live dataslk config setup or /setup-slack