Slack CLI (slacker) Skill
Quick reference for using slacker CLI tool to interact with Slack programmatically.
Repository: https://github.com/shanemcd/slacker
Quick Start
The easiest way to use slacker is with uvx - no installation or repository cloning required:
# List reminders and saved messages uvx --from "git+https://github.com/shanemcd/slacker" slacker reminders # Create a reminder uvx --from "git+https://github.com/shanemcd/slacker" slacker reminder "me to call mom tomorrow at 9am" # List today's DMs uvx --from "git+https://github.com/shanemcd/slacker" slacker dms # View activity feed (mentions, threads, reactions) uvx --from "git+https://github.com/shanemcd/slacker" slacker activity # Check authentication uvx --from "git+https://github.com/shanemcd/slacker" slacker whoami
Tip: Add an alias to your shell for convenience:
alias slacker='uvx --from "git+https://github.com/shanemcd/slacker" slacker' # Then use it simply: slacker reminders slacker reminder "me to review PR in 30 minutes"
Overview
slacker extracts Slack authentication credentials from your browser session, enabling programmatic access to Slack APIs without creating a bot or app.
When to Use This Skill
Use this skill when:
- •User asks to create a Slack reminder
- •User wants to check their reminders or saved messages
- •User asks about recent DMs or Slack activity
- •User mentions Slack mentions, threads, or reactions
- •User wants to search Slack messages
- •User asks about their Slack notes or saved items
Authentication
First-Time Setup
# Extract credentials from your browser session uvx --from "git+https://github.com/shanemcd/slacker" slacker login https://redhat.enterprise.slack.com # Test authentication uvx --from "git+https://github.com/shanemcd/slacker" slacker whoami
Credentials are stored at ~/.config/slacker/credentials with 0600 permissions (read-only by owner).
Common Commands
Create Reminders
Create reminders using natural language - works exactly like typing /remind in Slack:
# Standard format: "me to [task] [when]" uvx --from "git+https://github.com/shanemcd/slacker" slacker reminder "me to call mom tomorrow at 9am" uvx --from "git+https://github.com/shanemcd/slacker" slacker reminder "me to review PR in 30 minutes" uvx --from "git+https://github.com/shanemcd/slacker" slacker reminder "me to check status next Monday" # Can omit "me to" - Slack will figure it out uvx --from "git+https://github.com/shanemcd/slacker" slacker reminder "call mom tomorrow" uvx --from "git+https://github.com/shanemcd/slacker" slacker reminder "team sync prep Monday at 2pm" # Recurring reminders uvx --from "git+https://github.com/shanemcd/slacker" slacker reminder "me to do weekly planning every Monday at 9am"
Natural language parsing by Slack: Slack automatically parses the text to extract the task and timing. Supported formats:
- •Relative: "in 30 minutes", "in 2 hours", "in 3 days"
- •Absolute: "tomorrow", "next Monday", "Friday at 3pm"
- •Combined: "tomorrow at 9am", "next week on Tuesday"
- •Recurring: "every weekday", "every Monday at 9am"
List Reminders and Saved Items
# List all saved items (reminders + saved messages) uvx --from "git+https://github.com/shanemcd/slacker" slacker reminders # List only reminders (exclude saved messages) uvx --from "git+https://github.com/shanemcd/slacker" slacker reminders --reminders-only # Limit results uvx --from "git+https://github.com/shanemcd/slacker" slacker reminders --limit 10 # JSON output for programmatic processing uvx --from "git+https://github.com/shanemcd/slacker" slacker --output json reminders
Text output includes:
- •Reminder text and due date
- •Saved message preview (100 chars) with full message text
- •Channel names and message links
- •Status (in_progress, completed)
- •Summary counts (total, uncompleted, overdue, completed)
JSON output includes:
- •Full message text (not truncated!)
- •All metadata (timestamps, channel IDs, states)
- •Structured data for easy parsing with
jq
List DMs
View direct messages and group DMs with Slack usernames:
# List today's DM activity (default) uvx --from "git+https://github.com/shanemcd/slacker" slacker dms # List DMs since a specific time (natural language) uvx --from "git+https://github.com/shanemcd/slacker" slacker dms --since "yesterday" uvx --from "git+https://github.com/shanemcd/slacker" slacker dms --since "2 days ago" uvx --from "git+https://github.com/shanemcd/slacker" slacker dms --since "last Monday" uvx --from "git+https://github.com/shanemcd/slacker" slacker dms --since "3 hours ago" # JSON output for programmatic processing uvx --from "git+https://github.com/shanemcd/slacker" slacker --output json dms --since "yesterday"
Text output shows:
- •Individual DMs with direction (incoming/outgoing)
- •Group DMs with participant activity
- •Slack usernames (handles) for each person
- •Message timestamps (HH:MM format)
- •Message preview (80 chars)
- •File attachment indicators
- •Summary counts
View Activity Feed
Show mentions, threads, and reactions from your Slack activity with enriched details:
# View all activity (mentions, threads, reactions) uvx --from "git+https://github.com/shanemcd/slacker" slacker activity # Filter by activity type uvx --from "git+https://github.com/shanemcd/slacker" slacker activity --tab mentions uvx --from "git+https://github.com/shanemcd/slacker" slacker activity --tab threads uvx --from "git+https://github.com/shanemcd/slacker" slacker activity --tab reactions # JSON output for programmatic processing uvx --from "git+https://github.com/shanemcd/slacker" slacker --output json activity --tab mentions
Activity types:
- •
all- All activity (mentions, threads, reactions, invitations, etc.) - •
mentions- Only @mentions, @channel, @everyone, and keywords - •
threads- Only thread replies - •
reactions- Only emoji reactions to your messages
Text output features:
- •Activity type (mention, thread reply, reaction, etc.)
- •Timestamp (YYYY-MM-DD HH:MM format)
- •Channel name (resolved from channel IDs)
- •Actual usernames (e.g., @jwong, @marturne)
- •Actual team names (e.g., @aap-mcp-squad)
- •Rendered emojis for standard emojis
- •Message preview (80 characters of actual message text)
- •Clean formatting (Slack markup removed)
- •Unread indicator (bullet for unread items)
Search Messages
# Search your own messages (notes to self)
uvx --from "git+https://github.com/shanemcd/slacker" slacker api search.messages --data '{"query": "from:@shanemcd to:@shanemcd", "count": 20, "sort": "timestamp", "sort_dir": "desc"}'
# Search in specific channel
uvx --from "git+https://github.com/shanemcd/slacker" slacker api search.messages --data '{"query": "in:#engineering important"}'
Make Generic API Calls
IMPORTANT: Use --params for GET requests and --data for POST requests:
- •
--paramssends query parameters (for GET endpoints likeconversations.replies,conversations.history,users.info) - •
--datasends JSON body (for POST endpoints likechat.postMessage,search.messages)
# GET request with parameters (conversations.replies, conversations.history, users.info, etc.)
uvx --from "git+https://github.com/shanemcd/slacker" slacker api users.list --params '{"limit": 10}'
uvx --from "git+https://github.com/shanemcd/slacker" slacker api conversations.replies --params '{"channel":"C05S34J4EE9","ts":"1765902174.251099","limit":"100"}'
uvx --from "git+https://github.com/shanemcd/slacker" slacker api conversations.history --params '{"channel":"C12345678","limit":"20"}'
# POST request with data (chat.postMessage, search.messages, etc.)
uvx --from "git+https://github.com/shanemcd/slacker" slacker api chat.postMessage --data '{"channel":"general","text":"Hello!"}'
# Post to your notes channel
uvx --from "git+https://github.com/shanemcd/slacker" slacker api chat.postMessage --data '{"channel":"D19Q000SE","text":"Remember to update slides for tomorrow"}'
Note: User IDs in the output are automatically resolved to usernames.
Discover Available API Methods
# List all API categories uvx --from "git+https://github.com/shanemcd/slacker" slacker discover # Filter by category uvx --from "git+https://github.com/shanemcd/slacker" slacker discover --category chat # Show all methods uvx --from "git+https://github.com/shanemcd/slacker" slacker discover --verbose
JSON Output & Processing
All major commands support JSON output via the --output json flag for programmatic processing.
# Get reminders as structured data
uvx --from "git+https://github.com/shanemcd/slacker" slacker --output json reminders
# Get only overdue reminders with jq
uvx --from "git+https://github.com/shanemcd/slacker" slacker --output json reminders --reminders-only | \
jq --arg now "$(date +%s)" '.items[] | select(.due_timestamp < ($now|tonumber)) | {text, due_date}'
# List all saved messages with full text
uvx --from "git+https://github.com/shanemcd/slacker" slacker --output json reminders | \
jq '.items[] | select(.type == "message") | .message'
# Get summary counts
uvx --from "git+https://github.com/shanemcd/slacker" slacker --output json reminders | jq '.counts'
Common Workflow Examples
Morning Routine - Check Reminders
# List today's reminders uvx --from "git+https://github.com/shanemcd/slacker" slacker reminders --reminders-only
Check Recent DM Activity
# Morning routine: check DMs since yesterday uvx --from "git+https://github.com/shanemcd/slacker" slacker dms --since "yesterday" # After a meeting: check what you missed in the last hour uvx --from "git+https://github.com/shanemcd/slacker" slacker dms --since "1 hour ago" # Monday morning: catch up on weekend messages uvx --from "git+https://github.com/shanemcd/slacker" slacker dms --since "last Friday"
Check Your Activity
# Morning routine: check all mentions and threads uvx --from "git+https://github.com/shanemcd/slacker" slacker activity # See who's reacting to your messages uvx --from "git+https://github.com/shanemcd/slacker" slacker activity --tab reactions # Check only @mentions to catch up quickly uvx --from "git+https://github.com/shanemcd/slacker" slacker activity --tab mentions
Quick Note Taking
# Post to your notes channel
uvx --from "git+https://github.com/shanemcd/slacker" slacker api chat.postMessage --data '{"channel":"D19Q000SE","text":"Remember to update slides for tomorrow"}'
# Create reminder from note
uvx --from "git+https://github.com/shanemcd/slacker" slacker reminder "me to update slides tomorrow at 8am"
Review Past Notes
# Search your notes from last week (POST endpoint - uses --data)
uvx --from "git+https://github.com/shanemcd/slacker" slacker api search.messages --data '{"query":"from:@shanemcd to:@shanemcd after:7d"}'
# Get recent messages from notes channel (GET endpoint - uses --params)
uvx --from "git+https://github.com/shanemcd/slacker" slacker api conversations.history --params '{"channel":"D19Q000SE","limit":"20"}'
Key API Endpoints
Reminders & Later Items
saved.list - List saved items from Slack "Later"
uvx --from "git+https://github.com/shanemcd/slacker" slacker api saved.list --data '{"filter":"saved","limit":50,"include_tombstones":true}'
Messages
search.messages - Search messages
- •Supports JQL-like query syntax
- •Filters:
from:,to:,in:, date ranges - •Sorts by timestamp, relevance
conversations.history - Get message history
- •Requires
channelID - •Returns messages with full metadata
- •Supports pagination with
limitandcursor
Channel IDs
Personal notes channel (notes to self): D19Q000SE
To find other channel IDs:
- •Right-click channel in Slack -> "View channel details"
- •Copy channel ID from the details dialog
- •Or use search:
search.messagesqueries reveal channel IDs in results
Enterprise Restrictions
Red Hat Enterprise Slack workspace has restrictions on certain API endpoints:
Restricted endpoints:
- •
reminders.list- Blocked (usesaved.listinstead) - •
conversations.list- Blocked - •
users.conversations- Blocked
Working alternatives:
- •Use
saved.listfor reminders - •Use
search.messagesto find conversations - •Use channel IDs directly when known
Troubleshooting
Authentication Expired
If whoami fails, re-extract credentials:
uvx --from "git+https://github.com/shanemcd/slacker" slacker login https://redhat.enterprise.slack.com
Credentials expire when you log out of Slack in your browser.
Enterprise Restrictions
If an API endpoint returns "error": "enterprise_is_restricted", the endpoint is blocked by workspace admin policies. Look for alternative endpoints (e.g., saved.list instead of reminders.list).
Channel Not Found
Ensure you're using the correct channel ID format:
- •DM/notes:
Dprefix (e.g.,D19Q000SE) - •Public channel:
Cprefix (e.g.,C1234567890) - •Private channel:
Gprefix (e.g.,G1234567890)
Security Notes
- •Credentials stored locally at
~/.config/slacker/credentials - •File permissions:
0600(owner read/write only) - •Credentials tied to your browser session
- •Expire when you log out of Slack
- •Never commit credentials to git
Tips
- •
Add a shell alias for convenience:
bashalias slacker='uvx --from "git+https://github.com/shanemcd/slacker" slacker'
- •
Use JSON output for programmatic processing with
jq - •
Natural language reminders - Slack handles the parsing, just write naturally
- •
Check activity regularly - The activity command shows mentions you may have missed
- •
Use
--sincefor DMs - Natural language date parsing makes it easy to filter
Links
- •Repository: https://github.com/shanemcd/slacker
- •Issues: https://github.com/shanemcd/slacker/issues
Last updated: 2026-01-15