Agent skill
slacker
Interact with Slack (reminders, DMs, activity, saved messages)
Install this agent skill to your Project
npx add-skill https://github.com/benthomasson/claude-skills/tree/main/skills/slacker
SKILL.md
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 keywordsthreads- Only thread repliesreactions- 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- Blockedusers.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
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
pr-review
Review GitHub pull requests
gcmd
Export and access Google Drive files (docs, sheets, meeting notes)
gcalcli
Interact with Google Calendar via gcalcli
jirahhh
Interact with Jira
edit-article
Edit and improve articles by restructuring sections, improving clarity, and tightening prose. Use when user wants to edit, revise, or improve an article draft.
handoff
Compact the current conversation into a handoff document for another agent to pick up.
Didn't find tool you were looking for?