Communitygithub.com

Automação do Slack

Interaja com workspaces do Slack usando automação de navegador. Use quando o usuário precisar verificar canais não lidos, navegar no Slack, enviar mensagens, extrair dados, encontrar informações, pesquisar conversas ou automatizar qualquer tarefa do Slack.

O que é Automação do Slack?

Esta skill do Slack permite que um agente de IA interaja programaticamente com workspaces do Slack por meio de automação de navegador, sem depender da API do Slack. Ela oferece uma interface simplificada para tarefas como verificar mensagens não lidas, navegar por canais e DMs, pesquisar conversas, extrair conteúdo textual e capturar capturas de tela para documentação. Diferentemente de soluções baseadas em API, esta skill não requer OAuth, webhooks ou tokens de bot—ela simplesmente se conecta a uma sessão de navegador existente ou abre o Slack web. As operações principais envolvem o uso de comandos como `agent-browser connect`, `snapshot`, `click`, `fill` e `screenshot`, aproveitando refs de elementos interativos (como `@e21` para o botão "Mais não lidos") obtidos a partir da árvore de acessibilidade. A skill funciona exclusivamente com o Slack web em uma sessão de navegador controlada, sendo ideal para desenvolvedores que precisam automatizar consultas no Slack, extrair informações ou monitorar canais sem integrações complexas.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/vercel-labs/agent-browser/tree/main/skill-data/slack

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que Automação do Slack faz?

Interaja com workspaces do Slack para verificar mensagens, extrair dados e automatizar tarefas comuns.

Início Rápido

Conecte-se a uma sessão de navegador existente do Slack ou abra o Slack:

# Conecte-se a uma sessão existente na porta 9222 (típico para Slack já aberto)
agent-browser connect 9222

# Ou abra o Slack se ainda não estiver em execução
agent-browser open https://app.slack.com

Em seguida, tire um snapshot para ver o que está disponível:

agent-browser snapshot -i

Fluxo de Trabalho Principal

  1. Conectar/Navegar: Abra ou conecte-se ao Slack
  2. Snapshot: Obtenha elementos interativos com refs (@e1, @e2, etc.)
  3. Navegar: Clique em abas, expanda seções ou navegue para canais específicos
  4. Extrair/Interagir: Leia dados ou execute ações
  5. Screenshot: Capture evidências dos achados
# Exemplo: Verificar canais não lidos
agent-browser connect 9222
agent-browser snapshot -i
# Procure pelo botão "Mais não lidos"
agent-browser click @e21  # Ref para o botão "Mais não lidos"
agent-browser screenshot slack-unreads.png

Tarefas Comuns

Verificando Mensagens Não Lidas

# Conecte-se ao Slack
agent-browser connect 9222

# Tire snapshot para localizar o botão de não lidos
agent-browser snapshot -i

# Procure por:
# - Botão "Mais não lidos" (geralmente perto do topo da barra lateral)
# - Alternância "Não lidos" na guia Atividade (mostra contagem de não lidos)
# - Nomes de canais com distintivos/texto em negrito indicando não lidos

# Navegue para a guia Atividade para ver todos os não lidos em uma visão
agent-browser click @e14  # Guia Atividade (ref pode variar)
agent-browser wait 1000
agent-browser screenshot activity-unreads.png

# Ou verifique a guia DMs
agent-browser click @e13  # Guia DMs
agent-browser screenshot dms.png

# Ou expanda "Mais não lidos" na barra lateral
agent-browser click @e21  # Botão Mais não lidos
agent-browser wait 500
agent-browser screenshot expanded-unreads.png

Navegando para um Canal

# Pesquise pelo canal na barra lateral ou pelo nome
agent-browser snapshot -i

# Procure pelo nome do canal na lista (ex.: "engenharia", "design-produto")
# Clique na ref do treeitem do canal
agent-browser click @e94  # Exemplo: ref do canal engenharia
# Substitua `engenharia` pelo nome do canal clicado para que o cabeçalho
# antigo não possa satisfazer a espera enquanto o novo canal ainda está renderizando.
agent-browser wait --fn "document.querySelector('[data-qa=\"channel_header\"]')?.innerText.includes('engenharia')"
agent-browser screenshot channel.png

Encontrando Mensagens/Threads

# Use a pesquisa do Slack
agent-browser snapshot -i
agent-browser click @e5  # Botão Pesquisar (ref típica)
agent-browser fill @e_search "palavra-chave"
agent-browser press Enter
# Verifique a consulta enviada para que uma pesquisa repetida não possa reutilizar a rota antiga.
agent-browser wait --fn "location.pathname.includes('/search') && new URL(location.href).searchParams.get('q') === 'palavra-chave'"
agent-browser screenshot search-results.png

Extraindo Informações do Canal

# Obtenha a lista de todos os canais visíveis
agent-browser snapshot --json > slack-snapshot.json

# Analise em busca de nomes de canais e metadados
# Procure por elementos treeitem com level=2 (subcanais sob seções)

Verificando Detalhes do Canal

# Abra um canal
agent-browser click @e_channel_ref
agent-browser wait 1000

# Obtenha informações do canal (membros, descrição, etc.)
agent-browser snapshot -i
agent-browser screenshot channel-details.png

# Role as mensagens
agent-browser scroll down 500
agent-browser screenshot channel-messages.png

Anotando/Capturando Estado

Quando precisar documentar achados do Slack:

# Tire screenshot anotado (mostra números dos elementos)
agent-browser screenshot --annotate slack-state.png

# Tire screenshot de página inteira
agent-browser screenshot --full slack-full.png

# Obtenha a URL atual para referência
agent-browser get url

# Obtenha o título da página
agent-browser get title

Estrutura da Barra Lateral

Entender a barra lateral do Slack ajuda a navegar com eficiência:

- Threads
- Huddles
- Rascunhos e enviados
- Diretórios
- [Cabeçalhos de Seção - Conexões externas, Favoritos, Canais, etc.]
  - [Canais listados como treeitems]
- Mensagens Diretas
  - [DMs listados]
- Aplicativos
  - [Atalhos de aplicativos]
- Botão [Mais não lidos] (alterna a lista de canais não lidos)

Refs principais a procurar:

  • @e12 - Guia Início (geralmente)
  • @e13 - Guia DMs
  • @e14 - Guia Atividade
  • @e5 - Botão Pesquisar
  • @e21 - Botão Mais não lidos (varia por sessão)

Abas no Slack

Após clicar em um canal, você verá abas:

  • Mensagens - Conversa do canal
  • Arquivos - Arquivos compartilhados
  • Fixados - Mensagens fixadas
  • Adicionar canvas - Canvas colaborativo
  • Outras abas dependendo da configuração do workspace

Clique nas refs das abas para alternar visualizações e obter informações diferentes.

Extraindo Dados do Slack

Obter Conteúdo de Texto

# Obtenha o texto de uma mensagem ou elemento
agent-browser get text @e_message_ref

Analisar a Árvore de Acessibilidade

# Snapshot completo como JSON para análise programática
agent-browser snapshot --json > output.json

# Procure por:
# - Nomes de canais (campo name em treeitem)
# - Conteúdo de mensagens (em elementos listitem/document)
# - Nomes de usuários (elementos button com informações do usuário)
# - Carimbos de data/hora (elementos link com informações de tempo)

Contar Não Lidos

# Após expandir a seção de não lidos:
agent-browser snapshot -i | grep -c "treeitem"
# Cada treeitem com um nome de canal na seção de não lidos é um não lido

Melhores Práticas

  • Conecte-se a sessões existentes: Use agent-browser connect 9222 se o Slack já estiver aberto. Isso é mais rápido do que abrir um novo navegador.
  • Tire snapshots antes de clicar: Sempre faça snapshot -i para identificar refs antes de clicar em botões.
  • Re-snapshot após navegação: Após navegar para um novo canal ou seção, tire um snapshot fresco para encontrar novas refs.
  • Use snapshots JSON para análise: Quando precisar extrair dados estruturados, use snapshot --json para saída legível por máquina.
  • Paceie as interações: Adicione sleep 1 entre interações rápidas para permitir que a UI seja atualizada.
  • Verifique a árvore de acessibilidade: A árvore de acessibilidade mostra o que leitores de tela (e sua automação) podem ver. Se um elemento não estiver no snapshot, pode estar oculto ou exigir rolagem.
  • Role na barra lateral: Use agent-browser scroll down 300 --selector ".p-sidebar" para rolar dentro da barra lateral do Slack se a lista de canais for longa.

Limitações

  • Não pode acessar a API do Slack: Isso usa automação de navegador, não a API do Slack. Sem necessidade de OAuth, webhooks ou tokens de bot.
  • Específico da sessão: Screenshots e snapshots estão vinculados à sessão atual do navegador.
  • Limitação de taxa: O Slack pode limitar a taxa de interações rápidas. Adicione atrasos entre comandos se necessário.
  • Específico do workspace: Você interage apenas com seu próprio workspace — não há automação entre workspaces.

Depuração

Verificar console em busca de erros

agent-browser console
agent-browser errors

Obter estado atual da página

agent-browser get url
agent-browser get title
agent-browser screenshot page-state.png

Exemplo: Verificação Completa de Não Lidos

#!/bin/bash

# Conecte-se ao Slack
agent-browser connect 9222

# Tire snapshot inicial
echo "=== Verificando não lidos do Slack ==="
agent-browser snapshot -i > snapshot.txt

# Verifique a guia Atividade em busca de não lidos
agent-browser click @e14  # Guia Atividade
agent-browser wait 1000
agent-browser screenshot activity.png
ACTIVITY_RESULT=$(agent-browser get text @e_main_area)
echo "Atividade: $ACTIVITY_RESULT"

# Verifique DMs
agent-browser click @e13  # Guia DMs
agent-browser wait 1000
agent-browser screenshot dms.png

# Verifique canais não lidos na barra lateral
agent-browser click @e21  # Botão Mais não lidos
agent-browser wait 500
agent-browser snapshot -i > unreads-expanded.txt
agent-browser screenshot unreads.png

# Resumo
echo "=== Resumo ==="
echo "Consulte activity.png, dms.png e unreads.png para detalhes completos"

Referências

Individual skills in this repo

This repo contains 8 individual skills — each has its own dedicated page.

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 screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to

vercel-labs/agentcore

Run agent-browser on AWS Bedrock AgentCore cloud browsers. Use when the user wants to use AgentCore, run browser automation on AWS, use a cloud browser with AWS credentials, or needs a managed browser session backed by AWS infrastructure. Triggers include "use agentcore", "run on AWS", "cloud browser with AWS", "bedrock browser", "agentcore session", or any task requiring AWS-hosted browser automation.

vercel-labs/derive-client

Reverse-engineer a website's internal API by recording browser traffic into a HAR file, then generate a standalone client or CLI that calls the endpoints directly, with no browser needed after the first recording. Use when asked to "derive a client", "build a CLI for <site>", "reverse engineer this site's API", "record network requests", "turn this site into an API", or when the same site will be automated repeatedly and direct HTTP calls would beat driving the browser every time.

vercel-labs/dogfood

Systematically explore and test a web application to find bugs, UX issues, and other problems. Use when asked to "dogfood", "QA", "exploratory test", "find issues", "bug hunt", "test this app/site/platform", or review the quality of a web application. Produces a structured report with full reproduction evidence -- step-by-step screenshots, repro videos, and detailed repro steps for every issue -- so findings can be handed directly to the responsible teams.

vercel-labs/electron

Automate Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify, etc.) using agent-browser via Chrome DevTools Protocol. Use when the user needs to interact with an Electron app, automate a desktop app, connect to a running app, control a native app, or test an Electron application. Triggers include "automate Slack app", "control VS Code", "interact with Discord app", "test this Electron app", "connect to desktop app", or any task requiring automation of a native Electron application.

vercel-labs/protected-vercel-deployments

Access and test Vercel deployments protected by Vercel Authentication, SSO, or Deployment Protection with agent-browser. Use when a preview or production URL redirects to a Vercel login page, returns a protection 401 or 403, or needs short-lived Trusted Sources OIDC authentication instead of a static bypass secret or public exception.

vercel-labs/vercel-sandbox

Run agent-browser + Chrome inside Vercel Sandbox microVMs for browser automation from any Vercel-deployed app. Use when the user needs browser automation in a Vercel app (Next.js, SvelteKit, Nuxt, Remix, Astro, etc.), wants to run headless Chrome without binary size limits, needs persistent browser sessions across commands, or wants ephemeral isolated browser environments. Triggers include "Vercel Sandbox browser", "microVM Chrome", "agent-browser in sandbox", "browser automation on Vercel", or any task requiring Chrome in a Vercel Sandbox.

vercel-labs/webmcp-gen

Build and validate experimental WebMCP tools for an existing web page. Use when an agent needs to expose a site's real workflows as page tools, create webmcp.init.js, define deterministic checks, or compare WebMCP with accessibility-tree automation.

Habilidades Relacionadas