| name | slack |
| description | Interact with Slack workspaces using browser automation. Use when the user needs to check unread channels, navigate Slack, send messages, extract data, find information, search conversations, or automate any Slack task. Triggers include "check my Slack", "what channels have unreads", "send a message to", "search Slack for", "extract from Slack", "find who said", or any task requiring programmatic Slack interaction. |
| allowed-tools | Bash(chrome-use:*), Bash(chrome-use:*), Bash(abs:*), Bash(npx chrome-use:*), Bash(npx chrome-use:*) |
Slack Automation
Interact with Slack workspaces to check messages, extract data, and automate common tasks.
Quick Start
Connect to an existing Slack browser session or open Slack:
chrome-use connect 9222
chrome-use open https://app.slack.com
Then take a snapshot to see what's available:
chrome-use snapshot -i
Core Workflow
- Connect/Navigate: Open or connect to Slack
- Snapshot: Get interactive elements with refs (
@e1, @e2, etc.)
- Navigate: Click tabs, expand sections, or navigate to specific channels
- Extract/Interact: Read data or perform actions
- Screenshot: Capture evidence of findings
chrome-use connect 9222
chrome-use snapshot -i
chrome-use click @e21
chrome-use screenshot slack-unreads.png
Common Tasks
Checking Unread Messages
chrome-use connect 9222
chrome-use snapshot -i
chrome-use click @e14
chrome-use wait 1000
chrome-use screenshot activity-unreads.png
chrome-use click @e13
chrome-use screenshot dms.png
chrome-use click @e21
chrome-use wait 500
chrome-use screenshot expanded-unreads.png
Navigating to a Channel
chrome-use snapshot -i
chrome-use click @e94
chrome-use wait --load networkidle
chrome-use screenshot channel.png
Finding Messages/Threads
chrome-use snapshot -i
chrome-use click @e5
chrome-use fill @e_search "keyword"
chrome-use press Enter
chrome-use wait --load networkidle
chrome-use screenshot search-results.png
Extracting Channel Information
chrome-use snapshot --json > slack-snapshot.json
Checking Channel Details
chrome-use click @e_channel_ref
chrome-use wait 1000
chrome-use snapshot -i
chrome-use screenshot channel-details.png
chrome-use scroll down 500
chrome-use screenshot channel-messages.png
Taking Notes/Capturing State
When you need to document findings from Slack:
chrome-use screenshot --annotate slack-state.png
chrome-use screenshot --full slack-full.png
chrome-use get url
chrome-use get title
Sidebar Structure
Understanding Slack's sidebar helps you navigate efficiently:
- Threads
- Huddles
- Drafts & sent
- Directories
- [Section Headers - External connections, Starred, Channels, etc.]
- [Channels listed as treeitems]
- Direct Messages
- [DMs listed]
- Apps
- [App shortcuts]
- [More unreads] button (toggles unread channels list)
Key refs to look for:
@e12 - Home tab (usually)
@e13 - DMs tab
@e14 - Activity tab
@e5 - Search button
@e21 - More unreads button (varies by session)
Tabs in Slack
After clicking on a channel, you'll see tabs:
- Messages - Channel conversation
- Files - Shared files
- Pins - Pinned messages
- Add canvas - Collaborative canvas
- Other tabs depending on workspace setup
Click tab refs to switch views and get different information.
Extracting Data from Slack
Get Text Content
chrome-use get text @e_message_ref
Parse Accessibility Tree
chrome-use snapshot --json > output.json
Count Unreads
chrome-use snapshot -i | grep -c "treeitem"
Best Practices
- Connect to existing sessions: Use
chrome-use connect 9222 if Slack is already open. This is faster than opening a new browser.
- Take snapshots before clicking: Always
snapshot -i to identify refs before clicking buttons.
- Re-snapshot after navigation: After navigating to a new channel or section, take a fresh snapshot to find new refs.
- Use JSON snapshots for parsing: When you need to extract structured data, use
snapshot --json for machine-readable output.
- Pace interactions: Add
sleep 1 between rapid interactions to let the UI update.
- Check accessibility tree: The accessibility tree shows what screen readers (and your automation) can see. If an element isn't in the snapshot, it may be hidden or require scrolling.
- Scroll in sidebar: Use
chrome-use scroll down 300 --selector ".p-sidebar" to scroll within the Slack sidebar if channel list is long.
Limitations
- Cannot access Slack API: This uses browser automation, not the Slack API. No OAuth, webhooks, or bot tokens needed.
- Session-specific: Screenshots and snapshots are tied to the current browser session.
- Rate limiting: Slack may rate-limit rapid interactions. Add delays between commands if needed.
- Workspace-specific: You interact with your own workspace -- no cross-workspace automation.
Debugging
Check console for errors
Console/error capture is off by default in this stealth fork — launch the session with
AGENT_BROWSER_CAPTURE_CONSOLE=1 first, or these return empty.
chrome-use console
chrome-use errors
Get current page state
chrome-use get url
chrome-use get title
chrome-use screenshot page-state.png
Example: Full Unread Check
#!/bin/bash
chrome-use connect 9222
echo "=== Checking Slack unreads ==="
chrome-use snapshot -i > snapshot.txt
chrome-use click @e14
chrome-use wait 1000
chrome-use screenshot activity.png
ACTIVITY_RESULT=$(chrome-use get text @e_main_area)
echo "Activity: $ACTIVITY_RESULT"
chrome-use click @e13
chrome-use wait 1000
chrome-use screenshot dms.png
chrome-use click @e21
chrome-use wait 500
chrome-use snapshot -i > unreads-expanded.txt
chrome-use screenshot unreads.png
echo "=== Summary ==="
echo "See activity.png, dms.png, and unreads.png for full details"
References