Official agent skill

Slack Browser Automation

by vercel-labs in vercel-labs/agent-browser

Drives the Slack web app with the agent-browser CLI to check unread channels, search, read channel details and extract information, with screenshots as evidence.

OfficialApache-2.0Auto-check passedProductivity & Automation

Install Slack Browser Automation

skills CLI
$ npx skills add vercel-labs/agent-browser --skill slack -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install vercel-labs/agent-browser slack --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/vercel-labs/agent-browser.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skill-data/slack .claude/skills/slack && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
slack
GitHub stars
44k
Used in
1 other repo
Token cost
~2.1k tokens
SKILL.md length
410 words
Files
3 (incl. references)
Skills in repo
10
Repo updated
First seen
Licence
Apache-2.0

At a glance

Drives the Slack web app with the agent-browser CLI to check unread channels, search, read channel details and extract information, with screenshots as evidence.

  • Works in 5 steps: Connect/Navigate: Open or connect to Slack → Snapshot: Get interactive elements with… → Navigate: Click tabs, expand sections,… → …
  • Checking which Slack channels have unread messages
  • SKILL.md covers Quick Start, Core Workflow, Common Tasks and Sidebar Structure, plus 7 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Slack work is done through browser automation rather than an API. The agent connects to an existing Slack browser session on port 9222 or opens Slack, takes an interactive snapshot that assigns element references such as @e1, then clicks, expands and navigates, reads or acts, and finishes with a screenshot of what it found.

Recipes cover checking unread messages, moving to a channel, searching for messages and threads, extracting a list of visible channels as JSON, reading channel details and taking annotated screenshots to document findings. The notes describe the sidebar layout, typical references for the Home, DMs, Activity and search controls, and channel tabs such as Messages, Files, Pins and canvas.

A task reference file and a report template ship with the skill for writing up what was found, and the allowed tools are limited to the agent-browser command and its npx form.

When your agent uses it

  • Checking which Slack channels have unread messages
  • Searching Slack for who said something
  • Extracting channel names or message text from the web app
  • Documenting what a Slack channel shows with annotated screenshots

Example prompts

  • “Check my Slack and tell me which channels have unreads.”
  • “Search Slack for the thread about the pricing change and summarize who said what.”
  • “Open the releases channel and list its pinned messages.”

Requirements

  • The agent-browser CLI
  • Slack open in a browser the CLI can connect to, such as on port 9222
  • Pre-approved tools (allowed-tools): Bash(agent-browser:*), Bash(npx agent-browser:*)

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Connect/Navigate: Open or connect to Slack
  2. Snapshot: Get interactive elements with refs (@e1, @e2, etc.)
  3. Navigate: Click tabs, expand sections, or navigate to specific channels
  4. Extract/Interact: Read data or perform actions
  5. Screenshot: Capture evidence of findings

What it can do on your machine

Read from SKILL.md and the folder at commit 0207911. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(agent-browser:*)
    • Bash(npx agent-browser:*)

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • slack.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Slack Browser Automation loads about 2.1k tokens when it runs, and up to ~4.3k if it reads all its reference files. Until then it costs about 106 tokens; SKILL.md has 410 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~106
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from vercel-labs/agent-browser at commit 0207911, republished under its Apache-2.0 licence (© vercel-labs). 410 words, ~2,107 tokens.

Download SKILL.mdSave it as .claude/skills/slack/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
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(agent-browser:*), Bash(npx agent-browser:*)

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:

bash
# Connect to existing session on port 9222 (typical for already-open Slack)
agent-browser connect 9222

# Or open Slack if not already running
agent-browser open https://app.slack.com

Then take a snapshot to see what's available:

bash
agent-browser snapshot -i

Core Workflow

  1. Connect/Navigate: Open or connect to Slack
  2. Snapshot: Get interactive elements with refs (@e1, @e2, etc.)
  3. Navigate: Click tabs, expand sections, or navigate to specific channels
  4. Extract/Interact: Read data or perform actions
  5. Screenshot: Capture evidence of findings
bash
# Example: Check unread channels
agent-browser connect 9222
agent-browser snapshot -i
# Look for "More unreads" button
agent-browser click @e21  # Ref for "More unreads" button
agent-browser screenshot slack-unreads.png

Common Tasks

Checking Unread Messages
bash
# Connect to Slack
agent-browser connect 9222

# Take snapshot to locate unreads button
agent-browser snapshot -i

# Look for:
# - "More unreads" button (usually near top of sidebar)
# - "Unreads" toggle in Activity tab (shows unread count)
# - Channel names with badges/bold text indicating unreads

# Navigate to Activity tab to see all unreads in one view
agent-browser click @e14  # Activity tab (ref may vary)
agent-browser wait 1000
agent-browser screenshot activity-unreads.png

# Or check DMs tab
agent-browser click @e13  # DMs tab
agent-browser screenshot dms.png

# Or expand "More unreads" in sidebar
agent-browser click @e21  # More unreads button
agent-browser wait 500
agent-browser screenshot expanded-unreads.png
Navigating to a Channel
bash
# Search for channel in sidebar or by name
agent-browser snapshot -i

# Look for channel name in the list (e.g., "engineering", "product-design")
# Click on the channel treeitem ref
agent-browser click @e94  # Example: engineering channel ref
# Replace `engineering` with the clicked channel's name so the old channel
# header cannot satisfy the wait while the new channel is still rendering.
agent-browser wait --fn "document.querySelector('[data-qa=\"channel_header\"]')?.innerText.includes('engineering')"
agent-browser screenshot channel.png
Finding Messages/Threads
bash
# Use Slack search
agent-browser snapshot -i
agent-browser click @e5  # Search button (typical ref)
agent-browser fill @e_search "keyword"
agent-browser press Enter
# Match the submitted query so a repeated search cannot reuse the old route.
agent-browser wait --fn "location.pathname.includes('/search') && new URL(location.href).searchParams.get('q') === 'keyword'"
agent-browser screenshot search-results.png
Extracting Channel Information
bash
# Get list of all visible channels
agent-browser snapshot --json > slack-snapshot.json

# Parse for channel names and metadata
# Look for treeitem elements with level=2 (sub-channels under sections)
Checking Channel Details
bash
# Open a channel
agent-browser click @e_channel_ref
agent-browser wait 1000

# Get channel info (members, description, etc.)
agent-browser snapshot -i
agent-browser screenshot channel-details.png

# Scroll through messages
agent-browser scroll down 500
agent-browser screenshot channel-messages.png
Taking Notes/Capturing State

When you need to document findings from Slack:

bash
# Take annotated screenshot (shows element numbers)
agent-browser screenshot --annotate slack-state.png

# Take full-page screenshot
agent-browser screenshot --full slack-full.png

# Get current URL for reference
agent-browser get url

# Get page title
agent-browser 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
bash
# Get a message or element's text
agent-browser get text @e_message_ref
Parse Accessibility Tree
bash
# Full snapshot as JSON for programmatic parsing
agent-browser snapshot --json > output.json

# Look for:
# - Channel names (name field in treeitem)
# - Message content (in listitem/document elements)
# - User names (button elements with user info)
# - Timestamps (link elements with time info)
Count Unreads
bash
# After expanding unreads section:
agent-browser snapshot -i | grep -c "treeitem"
# Each treeitem with a channel name in the unreads section is one unread
Show full SKILL.md (218 more words)Show less

Best Practices

  • Connect to existing sessions: Use agent-browser 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 agent-browser 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
bash
agent-browser console
agent-browser errors
Get current page state
bash
agent-browser get url
agent-browser get title
agent-browser screenshot page-state.png

Example: Full Unread Check

bash
#!/bin/bash

# Connect to Slack
agent-browser connect 9222

# Take initial snapshot
echo "=== Checking Slack unreads ==="
agent-browser snapshot -i > snapshot.txt

# Check Activity tab for unreads
agent-browser click @e14  # Activity tab
agent-browser wait 1000
agent-browser screenshot activity.png
ACTIVITY_RESULT=$(agent-browser get text @e_main_area)
echo "Activity: $ACTIVITY_RESULT"

# Check DMs
agent-browser click @e13  # DMs tab
agent-browser wait 1000
agent-browser screenshot dms.png

# Check unread channels in sidebar
agent-browser click @e21  # More unreads button
agent-browser wait 500
agent-browser snapshot -i > unreads-expanded.txt
agent-browser screenshot unreads.png

# Summary
echo "=== Summary ==="
echo "See activity.png, dms.png, and unreads.png for full details"

References

© vercel-labs, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in skill-data/slack of vercel-labs/agent-browser.

  • SKILL.md
  • references/slack-tasks.md
  • templates/slack-report-template.md

Open the folder on GitHubat commit 0207911

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in vercel-labs/agent-browser, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Slack Browser Automation next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Slack Browser Automation compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Slack Browser Automation this skillvercel-labs/agent-browser44k1 repos~2.1kAutomated safety check: PassApache-2.0
Slackhuangruiteng/CS-Notes4k10 repos~578Automated safety check: PassMIT
Openloomi Connectorsmelandlabs/openloomi1k—~3.3kAutomated safety check: PassApache-2.0
Use Avibeavibe-bot/avibe620—~2.5kAutomated safety check: PassMIT
Agent Deep Linkscomposio-community/awesome-codex-skills17k—~513Automated safety check: PassNone
Traul Message Searchdandaka/traul113—~3.9kAutomated safety check: NotesAGPL-3.0

Similar skills

  • Slack

    huangruiteng/CS-Notes

    A skill your agent uses when you need to control Slack from Clawdbot via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.

    4k GitHub starsUsed in 10 repos~578 tokens
    Productivity & AutomationAuto-check passed
  • Openloomi Connectors

    melandlabs/openloomi

    openloomi Connectors tools - manage the native 7 messaging integrations and pair with the composio skill for the 1000+ apps OAuth layer (Slack, Discord, X, Gmail, Outlook, Google…

    1k GitHub stars~3.3k tokensUpdated 14 days ago
    Productivity & AutomationAuto-check passed
  • Use Avibe

    avibe-bot/avibe

    Safely inspect and modify local Avibe configuration, routing, runtime settings, watches, scheduled tasks, Avibe Cloud remote access, and operational state.

    620 GitHub stars~2.5k tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Agent Deep Links

    composio-community/awesome-codex-skills

    Builds and checks clickable deep links that open a thread, file, folder or settings panel in tools like Codex, Cursor and VS Code, usually for sharing in Slack.

    17k GitHub stars~513 tokensUpdated 2 mo ago
    Productivity & AutomationAuto-check passed
  • Drives the traul CLI to sync, search and monitor messages from Slack, Telegram, Discord, Linear, Gmail, WhatsApp, Claude Code sessions and Markdown files.

    113 GitHub stars~3.9k tokensUpdated 5 mo ago
    Productivity & AutomationAuto-check: notes
  • Migrate Slack Agents

    nanocoai/nanoclaw

    Switches a classic single-bot NanoClaw Slack install to one Slack app per agent group, or records a decision to stay on classic, without touching agent workspaces.

    31k GitHub starsUsed in 1 repo~3.8k tokens
    Productivity & AutomationAuto-check: notes

More from vercel-labs/agent-browser

All 10 skills in this repo
  • Agent Browser CLI

    vercel-labs/agent-browser

    Official

    Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking…

    44k GitHub starsUsed in 24 repos~864 tokens
    Auto-check passed
  • Dogfood Exploratory QA

    vercel-labs/agent-browser

    Official

    Explores a web app with the agent-browser CLI to find bugs and UX problems, then writes a report with screenshots, repro videos and step-by-step reproduction for each issue.

    44k GitHub starsUsed in 8 repos~2.7k tokens
    Auto-check passed
  • Electron App Automation

    vercel-labs/agent-browser

    Official

    Automates Electron desktop apps such as VS Code, Slack or Discord by connecting agent-browser to their Chrome DevTools Protocol port.

    44k GitHub starsUsed in 5 repos~1.7k tokens
    Auto-check passed
  • Core Guide for agent-browser

    vercel-labs/agent-browser

    Official

    Core usage guide for the agent-browser CLI: the snapshot-and-ref workflow for navigating, clicking, filling forms, extracting data and running parallel sessions.

    44k GitHub starsUsed in 4 repos~9.5k tokens
    Auto-check passed
  • Official

    Records a site's browser traffic into a HAR file, then builds a standalone client or CLI that calls its internal endpoints directly with no browser.

    44k GitHub starsUsed in 2 repos~1.3k tokens
    Auto-check passed
  • WebMCP Tool Generator

    vercel-labs/agent-browser

    Official

    Builds and validates experimental WebMCP tools that expose a web page's real workflows to agents, with a manifest, init script and evals compared against accessibility-tree automation.

    44k GitHub starsUsed in 1 repo~752 tokens
    Auto-check passed

Works with

Questions about Slack Browser Automation

What does Slack Browser Automation do?

Drives the Slack web app with the agent-browser CLI to check unread channels, search, read channel details and extract information, with screenshots as evidence. Slack work is done through browser automation rather than an API. The agent connects to an existing Slack browser session on port 9222 or opens Slack, takes an interactive snapshot that assigns element references such as @e1, then clicks, expands and navigates, reads or acts, and finishes with a screenshot of what it found.

When should I use Slack Browser Automation?

Slack Browser Automation fits situations like: checking which Slack channels have unread messages; searching Slack for who said something; extracting channel names or message text from the web app; documenting what a Slack channel shows with annotated screenshots.

How do I install Slack Browser Automation in Claude Code?

Run `npx skills add vercel-labs/agent-browser --skill slack -a claude-code`. Or copy the skill folder (skill-data/slack in vercel-labs/agent-browser) into .claude/skills/slack in your project. Claude Code loads it when a task matches its description.

How do I install Slack Browser Automation in Codex?

Run `npx skills add vercel-labs/agent-browser --skill slack -a codex`. Or copy the skill folder (skill-data/slack in vercel-labs/agent-browser) into .agents/skills/slack in your project. Codex loads it when a task matches its description.

Can I use Slack Browser Automation in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add vercel-labs/agent-browser --skill slack -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/slack, .gemini/skills/slack, .github/skills/slack and .opencode/skills/slack in your project.

What does Slack Browser Automation need to run?

SKILL.md names no scripts, command-line tools or credentials: Slack Browser Automation is instructions for the agent only. Our summary lists: The agent-browser CLI; Slack open in a browser the CLI can connect to, such as on port 9222. Its frontmatter pre-approves these tools: Bash(agent-browser:*), Bash(npx agent-browser:*).

Does Slack Browser Automation access the network?

SKILL.md names 1 domain. As links in the text: slack.com. This is read from the text; nothing was executed.

Is Slack Browser Automation safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Slack Browser Automation use?

Slack Browser Automation is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Slack Browser Automation use?

About 2.1k tokens (SKILL.md is roughly 8.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.2k tokens, read only when the agent opens those files.

What are the alternatives to Slack Browser Automation?

Skills that share tags, products or a category with Slack Browser Automation: Slack (huangruiteng/CS-Notes, 4k stars), Openloomi Connectors (melandlabs/openloomi, 1k stars), Use Avibe (avibe-bot/avibe, 620 stars) and Agent Deep Links (composio-community/awesome-codex-skills, 17k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Slack Browser Automation?

vercel-labs (a GitHub organization, an official publisher) maintains it in vercel-labs/agent-browser, which has 43,634 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 8, 2026.

Source: vercel-labs/agent-browser on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.