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.
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.
$ npx skills add vercel-labs/agent-browser --skill slack -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install vercel-labs/agent-browser slack --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "slack" agent skill from https://github.com/vercel-labs/agent-browser/tree/main/skill-data/slack into .claude/skills/slack/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slack", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/vercel-labs/agent-browser/tree/main/skill-data/slackType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add vercel-labs/agent-browser --skill slack -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install vercel-labs/agent-browser slack --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vercel-labs/agent-browser.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skill-data/slack .agents/skills/slack && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "slack" agent skill from https://github.com/vercel-labs/agent-browser/tree/main/skill-data/slack into .agents/skills/slack/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slack", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add vercel-labs/agent-browser --skill slack -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install vercel-labs/agent-browser slack --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vercel-labs/agent-browser.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skill-data/slack .cursor/skills/slack && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "slack" agent skill from https://github.com/vercel-labs/agent-browser/tree/main/skill-data/slack into .cursor/skills/slack/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slack", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/vercel-labs/agent-browser.git --path skill-data/slack--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add vercel-labs/agent-browser --skill slack -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install vercel-labs/agent-browser slack --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vercel-labs/agent-browser.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skill-data/slack .gemini/skills/slack && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "slack" agent skill from https://github.com/vercel-labs/agent-browser/tree/main/skill-data/slack into .gemini/skills/slack/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slack", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install vercel-labs/agent-browser slackInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add vercel-labs/agent-browser --skill slack -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/vercel-labs/agent-browser.git skills-src && mkdir -p .github/skills && cp -r skills-src/skill-data/slack .github/skills/slack && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "slack" agent skill from https://github.com/vercel-labs/agent-browser/tree/main/skill-data/slack into .github/skills/slack/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slack", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add vercel-labs/agent-browser --skill slack -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install vercel-labs/agent-browser slack --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vercel-labs/agent-browser.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skill-data/slack .opencode/skills/slack && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "slack" agent skill from https://github.com/vercel-labs/agent-browser/tree/main/skill-data/slack into .opencode/skills/slack/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slack", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
slackDrives 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.
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.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 0207911. It shows what the files ask for, not the result of running them.
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.
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.
Links to these hosts (documentation or services it may open):
slack.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
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.
.claude/skills/slack/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Interact with Slack workspaces to check messages, extract data, and automate common tasks.
Connect to an existing Slack browser session or open Slack:
# 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.comThen take a snapshot to see what's available:
agent-browser snapshot -i@e1, @e2, etc.)# 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# 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# 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# 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# 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)# 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.pngWhen you need to document findings from Slack:
# 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 titleUnderstanding 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)After clicking on a channel, you'll see tabs:
Click tab refs to switch views and get different information.
# Get a message or element's text
agent-browser get text @e_message_ref# 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)# After expanding unreads section:
agent-browser snapshot -i | grep -c "treeitem"
# Each treeitem with a channel name in the unreads section is one unreadagent-browser connect 9222 if Slack is already open. This is faster than opening a new browser.snapshot -i to identify refs before clicking buttons.snapshot --json for machine-readable output.sleep 1 between rapid interactions to let the UI update.agent-browser scroll down 300 --selector ".p-sidebar" to scroll within the Slack sidebar if channel list is long.agent-browser console
agent-browser errorsagent-browser get url
agent-browser get title
agent-browser screenshot page-state.png#!/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"? in Slack for shortcut list© 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
SKILL.md and 2 other files (references) in skill-data/slack of vercel-labs/agent-browser.
Open the folder on GitHubat commit 0207911
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.
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Slack Browser Automation this skillvercel-labs/agent-browser | 44k | 1 repos | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| Slackhuangruiteng/CS-Notes | 4k | 10 repos | ~578 | Automated safety check: Pass | MIT | |
| Openloomi Connectorsmelandlabs/openloomi | 1k | — | ~3.3k | Automated safety check: Pass | Apache-2.0 | |
| Use Avibeavibe-bot/avibe | 620 | — | ~2.5k | Automated safety check: Pass | MIT | |
| Agent Deep Linkscomposio-community/awesome-codex-skills | 17k | — | ~513 | Automated safety check: Pass | None | |
| Traul Message Searchdandaka/traul | 113 | — | ~3.9k | Automated safety check: Notes | AGPL-3.0 |
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.
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…
avibe-bot/avibe
Safely inspect and modify local Avibe configuration, routing, runtime settings, watches, scheduled tasks, Avibe Cloud remote access, and operational state.
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.
dandaka/traul
Drives the traul CLI to sync, search and monitor messages from Slack, Telegram, Discord, Linear, Gmail, WhatsApp, Claude Code sessions and Markdown files.
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.
vercel-labs/agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking…
vercel-labs/agent-browser
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.
vercel-labs/agent-browser
Automates Electron desktop apps such as VS Code, Slack or Discord by connecting agent-browser to their Chrome DevTools Protocol port.
vercel-labs/agent-browser
Core usage guide for the agent-browser CLI: the snapshot-and-ref workflow for navigating, clicking, filling forms, extracting data and running parallel sessions.
vercel-labs/agent-browser
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.
vercel-labs/agent-browser
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.
Works with
Categories
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.
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.
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.
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.
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.
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:*).
SKILL.md names 1 domain. As links in the text: slack.com. This is read from the text; nothing was executed.
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.
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.
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.
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.
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.