Agent Browser CLI
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…
Interact with Slack — read channels, search messages, check unreads, send messages, manage reactions, and look up users.
$ npx skills add sigcli/sigcli --skill slack -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install sigcli/sigcli 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/sigcli/sigcli.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/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/sigcli/sigcli/tree/main/skills/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/sigcli/sigcli/tree/main/skills/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 sigcli/sigcli --skill slack -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install sigcli/sigcli slack --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sigcli/sigcli.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/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/sigcli/sigcli/tree/main/skills/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 sigcli/sigcli --skill slack -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install sigcli/sigcli slack --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sigcli/sigcli.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/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/sigcli/sigcli/tree/main/skills/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/sigcli/sigcli.git --path skills/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 sigcli/sigcli --skill slack -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install sigcli/sigcli slack --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sigcli/sigcli.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/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/sigcli/sigcli/tree/main/skills/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 sigcli/sigcli 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 sigcli/sigcli --skill slack -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/sigcli/sigcli.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/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/sigcli/sigcli/tree/main/skills/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 sigcli/sigcli --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 sigcli/sigcli slack --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sigcli/sigcli.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/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/sigcli/sigcli/tree/main/skills/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.
slackInteract with Slack — read channels, search messages, check unreads, send messages, manage reactions, and look up users.
Slack is an agent skill from sigcli/sigcli. Interact with Slack — read channels, search messages, check unreads, send messages, manage reactions, and look up users. Use this skill whenever the user mentions Slack, wants to read Slack messages, check unread channels, search Slack conversations, send a Slack message, add reactions, or look up Slack users. Also trigger when the user pastes a Slack message URL, mentions a Slack channel (channel), or asks about Slack notifications.
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 24 other files, including scripts and reference files (for example `references/provider-config.yaml`, `scripts/__init__.py` and `scripts/slack_channels.py`).
It works with Slack. The repository describes itself as: The authentication CLI & Proxy for AI agents. Give agents access, not your credentials. The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 9ba8b35. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 11 files in scripts/ (Python, from the files we listed), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From 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 loads about 2.1k tokens when it runs, and up to ~2.4k if it reads all its reference files. Until then it costs about 111 tokens; SKILL.md has 648 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); the scripts in this folder are not scanned.
The full file from sigcli/sigcli at commit 9ba8b35, republished under its MIT licence (© sigcli). 648 words, ~2,113 tokens.
.claude/skills/slack/SKILL.md (or your agent's skills folder). This skill also uses 21 other files; get the full folder from GitHub.Read channels, search messages, check unreads, send messages, manage reactions, and look up users via Slack.
You MUST complete this setup before running any script. Do NOT skip this step.
sig status app-slack 2>&1Check the JSON output fields configured and valid:
configured: false → run Provider Setup below. Do NOT proceed without completing it.valid: false (but configured: true) → run sig login app-slack, then re-check.valid: true → detect proxy (see below), then execute the user's request.<SKILL_DIR>/references/provider-config.yaml~/.sig/config.yaml under providers:networkProxy: <url> under the provider in config.yamlsig login app-slack (with --network-proxy <url> if proxy was specified)sig status app-slack again — must show valid: true before proceedinggrep -A15 "^\s*app-slack:" ~/.sig/config.yaml | grep networkProxy | awk '{print $2}'If this outputs a URL, prefix ALL python3 commands with HTTPS_PROXY=<url> HTTP_PROXY=<url>.
If using socks5, convert to socks5h for python (e.g. socks5://... → socks5h://...).
If empty, no proxy needed.
All scripts require setup to be completed first (see above).
All scripts are in this skill's scripts/ directory. Run via Bash tool.
| Script | Purpose |
|---|---|
slack_channels.py | List/filter channels |
slack_history.py | Get channel/DM message history |
slack_threads.py | Get thread replies |
slack_search.py | Search messages with filters |
slack_send.py | Send message or threaded reply |
slack_unreads.py | Get unread messages across channels |
slack_users.py | Search users by name/email |
slack_reactions.py | Add or remove emoji reactions |
--type TYPE Channel types: public_channel,private_channel,im,mpim (default: public_channel,private_channel)
--sort SORT Sort by: popularity
--limit N Max channels (default: 100)
--cursor CURSOR Pagination cursor from previous response--channel ID Channel ID (#name or @user also work) (required)
--limit LIMIT Time range (1d, 7d, 30d) or message count (50) (default: 1d)
--cursor CURSOR Pagination cursor
--include-activity Include join/leave activity messages--channel ID Channel ID or #name (required)
--thread-ts TS Thread parent timestamp (required)
--limit LIMIT Time range or count (default: 1d)
--cursor CURSOR Pagination cursor--query TEXT Search query (optional if other filters provided)
--channel ID Filter to channel
--from USER Filter by sender (user ID or @name)
--before DATE Before date (YYYY-MM-DD)
--after DATE After date (YYYY-MM-DD)
--on DATE On specific date
--threads-only Only thread messages
--limit N Max results (default: 20)
--cursor CURSOR Pagination cursor--channel ID Channel ID, #name, or @user (required)
--message TEXT Message content (required)
--thread-ts TS Reply to thread (optional)
--format FORMAT text/markdown (default) or text/plain--type TYPE Filter: all, dm, group_dm, partner, internal (default: all)
--max-channels N Max channels to check (default: 50)
--max-messages N Max messages per channel (default: 10)
--mentions-only Only channels with @mentions
--summary-only Channel list without messages--query TEXT Search by name, email, or display name (required)
--limit N Max results (default: 10)--action ACTION "add" or "remove" (required)
--channel ID Channel ID (required)
--timestamp TS Message timestamp 1234567890.123456 (required)
--emoji NAME Emoji name without colons, e.g. thumbsup (required)Channel IDs — Format Cxxxxxxxxxx, but scripts also accept #channel-name or @username for convenience.
Thread timestamps — Format 1234567890.123456. Used to identify specific messages and as parent references for threaded replies.
Pagination — All list endpoints use cursor-based pagination. Pass the --cursor value from the previous response to get the next page.
Team ID — Some edge APIs require your Slack team ID. To find it: open Slack in a browser, go to <your-workspace>.slack.com, open DevTools → Network, and look for requests with team_id in the response. Alternatively, run sig run app-slack -- bash -c 'python -c "import scripts.slack_client as c; import json; client = c.SlackClient.create(); print(client.team_id)"'.
| Error | Cause | Fix |
|---|---|---|
| Auth error / 401 | Session expired | Auto-run sig login app-slack (no user prompt needed), retry |
invalid_auth | xoxc/xoxd tokens invalid | Auto-run sig login app-slack (no user prompt needed), retry |
channel_not_found | Invalid channel ID/name | Check channel exists, use slack_channels.py to find it |
not_in_channel | Not a member of channel | Join the channel first |
sig run app-slack -- python scripts/slack_unreads.pysig run app-slack -- python scripts/slack_unreads.py --type dmsig run app-slack -- python scripts/slack_unreads.py --mentions-onlysig run app-slack -- bash -c 'python scripts/slack_search.py --query "deployment issue"'sig run app-slack -- bash -c 'python scripts/slack_search.py --query "deployment" --channel #ops'sig run app-slack -- bash -c 'python scripts/slack_search.py --query "deployment" --after 2025-01-01 --before 2025-01-31'sig run app-slack -- python scripts/slack_channels.py --limit 20sig run app-slack -- bash -c 'python scripts/slack_history.py --channel #general --limit 1d'sig run app-slack -- bash -c 'python scripts/slack_threads.py --channel #general --thread-ts 1234567890.123456'sig run app-slack -- python scripts/slack_channels.py --type imsig run app-slack -- bash -c 'python scripts/slack_send.py --channel @john.smith --message "Hello!"'sig run app-slack -- bash -c 'python scripts/slack_send.py --channel #project --thread-ts 1234567890.123456 --message "Thanks!"'sig run app-slack -- bash -c 'python scripts/slack_history.py --channel #general --limit 10'sig run app-slack -- bash -c 'python scripts/slack_reactions.py --action add --channel C0123456789 --timestamp 1234567890.123456 --emoji thumbsup'sig run app-slack -- bash -c 'python scripts/slack_reactions.py --action remove --channel C0123456789 --timestamp 1234567890.123456 --emoji thumbsup'© sigcli, MIT. 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 21 other files (scripts, references) in skills/slack of sigcli/sigcli.
Open the folder on GitHubat commit 9ba8b35
Slack 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 this skillsigcli/sigcli | 293 | — | ~2.1k | Automated safety check: Pass | MIT | |
| Agent Browser CLIvercel-labs/agent-browser | 44k | 24 repos | ~864 | Automated safety check: Pass | Apache-2.0 | |
| Slack GIF Creatoranthropics/skills | 180k | 28 repos | ~2k | Automated safety check: Pass | Apache-2.0 | |
| Code Design Rationale Investigatorcursor/plugins | 10k | 9 repos | ~2.6k | Automated safety check: Pass | None | |
| Electron App Automationvercel-labs/agent-browser | 44k | 5 repos | ~1.7k | Automated safety check: Pass | Apache-2.0 | |
| Slack Browser Automationvercel-labs/agent-browser | 44k | 1 repos | ~2.1k | Automated safety check: Pass | Apache-2.0 |
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…
anthropics/skills
Provides Slack size and frame limits, Python animation helpers and validators for building animated GIFs sized for emoji and messages.
cursor/plugins
Digs into why code is shaped the way it is by checking git history, pull requests and connected tools in parallel, then reporting a cited read on the tradeoffs.
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
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.
ComposioHQ/composio
Route and complete Composio work across Composio For You and Composio Platform.
sigcli/sigcli
Interact with Bilibili (B站) — browse trending videos, view video details, read comments, search videos and users, view user profiles, like, coin, and favorite videos.
sigcli/sigcli
Interact with Hacker News (news.ycombinator.com) — browse top, new, and best stories, read item details and comment threads, look up user profiles, and search posts via Algolia.
sigcli/sigcli
Interact with LinkedIn — view your profile, browse other profiles, read the feed, search jobs/posts/people, get job details, create posts, like/unlike posts, comment, send connection requests, and…
sigcli/sigcli
Interact with Microsoft Teams — send and read messages, search conversations, look up people, check calendar, get meeting transcripts, and manage chats.
sigcli/sigcli
Interact with Outlook email — read inbox, send emails, search messages, reply/forward, manage folders, download attachments.
sigcli/sigcli
Interact with Reddit — browse subreddits, read posts and comments, search content, view user profiles, post comments, vote, save posts, subscribe to subreddits.
Works with
Interact with Slack — read channels, search messages, check unreads, send messages, manage reactions, and look up users. Slack is an agent skill from sigcli/sigcli. Interact with Slack — read channels, search messages, check unreads, send messages, manage reactions, and look up users.
Slack fits situations like: the user mentions Slack; wants to read Slack messages; check unread channels; search Slack conversations.
Run `npx skills add sigcli/sigcli --skill slack -a claude-code`. Or copy the skill folder (skills/slack in sigcli/sigcli) into .claude/skills/slack in your project. Claude Code loads it when a task matches its description.
Run `npx skills add sigcli/sigcli --skill slack -a codex`. Or copy the skill folder (skills/slack in sigcli/sigcli) 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 sigcli/sigcli --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.
Going by SKILL.md and its folder, Slack needs Python for the scripts in its folder. Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Slack is published under the MIT 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.5k 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 279 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Slack: Agent Browser CLI (vercel-labs/agent-browser, 44k stars), Slack GIF Creator (anthropics/skills, 180k stars), Code Design Rationale Investigator (cursor/plugins, 10k stars) and Electron App Automation (vercel-labs/agent-browser, 44k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
sigcli (a GitHub organization) maintains it in sigcli/sigcli, which has 293 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on September 28, 2026.
Source: sigcli/sigcli on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.