# Slack > Interactúa con workspaces de Slack usando automatización de navegador: revisa canales sin leer, navega, envía mensajes, extrae datos, busca conversaciones y automatiza tareas de Slack. Fuente: https://skillsagentes.com/skills/vercel-labs/agent-browser/slack Markdown: https://skillsagentes.com/skills/vercel-labs/agent-browser/slack.md Repositorio: https://github.com/vercel-labs/agent-browser Autor: vercel-labs Licencia: Apache-2.0 Actualizado: hace 5 meses Coste de contexto: 105 tok instalada, 2k tok al activarse, 5.1k tok con todos los archivos del bundle Bundle: 3 archivos, 20 KB Permisos que pide: bash(agent-browser:*), bash(npx agent-browser:*) ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add vercel-labs/agent-browser --skill slack --agent claude-code # Cursor npx -y skills add vercel-labs/agent-browser --skill slack --agent cursor # Codex npx -y skills add vercel-labs/agent-browser --skill slack --agent codex # Gemini CLI npx -y skills add vercel-labs/agent-browser --skill slack --agent gemini # Windsurf npx -y skills add vercel-labs/agent-browser --skill slack --agent windsurf # Cline npx -y skills add vercel-labs/agent-browser --skill slack --agent cline ``` ## Qué hace - Conecta a una sesión existente de Slack en el navegador (puerto 9222) o abre https://app.slack.com - Toma snapshots de la accesibilidad para localizar refs (@e1, @e2) y clickear botones, canales y pestañas - Extrae texto, mensajes, canales y datos estructurados vía snapshot --json - Navega la barra lateral, busca conversaciones y revisa mensajes sin leer - Captura screenshots como evidencia de hallazgos ## Cuándo usarla - El usuario necesita revisar canales sin leer - El usuario quiere navegar Slack, enviar mensajes o extraer datos - Se necesita buscar conversaciones o encontrar quién dijo algo - Cualquier tarea que requiera interacción programática con Slack ## Cuándo no - Se necesita acceso vía Slack API con OAuth, webhooks o bot tokens (esto usa automatización de navegador, no la API) ## Qué la activa - "Revisa mis canales sin leer en Slack" - "Busca en Slack quién mencionó el deploy de ayer" - "Envía un mensaje al canal #engineering" - "Extrae la lista de canales de mi sidebar de Slack" - "Muéstrame los mensajes nuevos en mis DMs" ## Antes de instalar - Requiere agent-browser (o npx agent-browser) y una sesión de navegador con Slack abierto, típicamente conectada por el puerto 9222. - Variables de entorno: ACTIVITY_RESULT - makes network requests - reads environment config ## Archivos - SKILL.md — 8 KB - references/slack-tasks.md — 8 KB - templates/slack-report-template.md — 4 KB ## SKILL.md Reproducido tal cual desde vercel-labs/agent-browser bajo Apache-2.0. Esta sección es el documento original y está en inglés. # 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 ``` ## 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 - **Slack docs**: https://slack.com/help - **Web experience**: https://app.slack.com - **Keyboard shortcuts**: Type `?` in Slack for shortcut list ## Dónde encaja - Categoría: [Automatización](https://skillsagentes.com/categorias/automatizacion.md) — Flujos de varios pasos que se ejecutan sin supervisión. - Creador: [vercel-labs](https://skillsagentes.com/creators/vercel-labs.md) — 20 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Core](https://skillsagentes.com/skills/vercel-labs/agent-browser/core.md): Guía central de uso de agent-browser: snapshots con refs, navegación, interacción con elementos, extracción de datos, screenshots, pestañas, formularios/auth, esperas, sesiones paralelas y solución de fallos. - [Agent Browser](https://skillsagentes.com/skills/vercel-labs/agent-browser/agent-browser.md): CLI de automatización de navegador para agentes de IA: navegar páginas, rellenar formularios, hacer clic, capturar pantallas, extraer datos, testear apps web o automatizar apps Electron y Slack. - [Webmcp Gen](https://skillsagentes.com/skills/vercel-labs/agent-browser/webmcp-gen.md): Crea y valida herramientas WebMCP experimentales para una página web existente, exponiendo flujos reales del sitio como herramientas de página frente a la automatización por árbol de accesibilidad.” - [Protected Vercel Deployments](https://skillsagentes.com/skills/vercel-labs/agent-browser/protected-vercel-deployments.md): Accede y prueba deployments de Vercel protegidos por Vercel Authentication, SSO o Deployment Protection con agent-browser, usando autenticación OIDC de Trusted Sources de corta duración en vez de un secreto de bypass estático. - [Derive Client](https://skillsagentes.com/skills/vercel-labs/agent-browser/derive-client.md): Reverse-engineerea la API interna de un sitio grabando el tráfico del navegador en un HAR, y genera un cliente o CLI standalone que llama a los endpoints sin necesitar navegador después. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)