X.com (Twitter) — Guia para Agent-Browser
Sequências de operações específicas da plataforma para agent-browser no x.com. Cada operação documenta: pré-condições, comandos passo a passo do agent-browser, método de verificação e problemas conhecidos.
Status: Todas as seções (1-7) testadas e documentadas. Testado com: agent-browser 0.24.0, Chrome CDP na porta 9222, conta @mashijiann. Última atualização: 2026-05-06
Índice
- 1. Navegar & Ler
- 2. Engajamento — Reagir a Conteúdo
- 3. Criação de Conteúdo
- 4. Grafo Social
- 5. Gerenciamento de Perfil
- 6. Navegação & Utilitários
- 7. Listas
Direcionamento de dispositivo: As operações são executadas no Chrome desktop por padrão. Para operar na interface web móvel, defina
DEVICE_PROFILE=ios|androidno.envou prefixe os comandos do agent-browser com-p ios|android. Ao registrar uma ação, passe--device <alvo>para proveniência (isso não altera a deduplicação — uma curtida é a nível de conta).
1. Navegar & Ler
1.1 Abrir Timeline Inicial
Objetivo: Navegar para a timeline inicial e confirmar que foi carregada.
Pré-condições: Logado (sessão Chrome CDP com cookies).
Passos:
agent-browser open https://x.com/home
Verificação:
# O título deve conter "Home / X"
agent-browser get title
# A URL deve ser https://x.com/home
agent-browser get url
# O snapshot deve mostrar a região "Sua Timeline Inicial" e a aba "Para você"
agent-browser snapshot -i -c -s '[role="region"]'
Elementos-chave:
- Barra lateral de navegação:
navigation "Primary"— contém links: Início, Explorar, Notificações, Mensagens diretas, Grok, Premium, Itens salvos, Perfil - Abas da timeline:
tab "Para você"(selecionada por padrão),tab "Seguindo", possivelmente abas personalizadas - Área de composição:
textbox "Texto da postagem"— composição inline na página inicial - Botão da conta:
button "Menu da conta"— mostra o nome de usuário logado - Região da timeline:
region "Sua Timeline Inicial"— contém elementosarticlede tweet
Problemas Conhecidos:
- Nenhum
1.2 Abrir um Tweet Específico por URL
Objetivo: Navegar diretamente para um tweet e ler seu conteúdo.
Pré-condições: Ter a URL do tweet (ex.: https://x.com/usuario/status/123456).
Passos:
agent-browser open "https://x.com/<nome_de_usuário>/status/<id_do_tweet>"
Verificação:
# O título deve conter o nome do autor e uma prévia do conteúdo do tweet
agent-browser get title
# A URL deve corresponder à URL do tweet
agent-browser get url
# O snapshot deve mostrar o artigo do tweet com texto completo e botões de engajamento
agent-browser snapshot -i -c -s 'article'
Elementos-chave (página de detalhes do tweet):
- Artigo do tweet:
article— contém texto completo do tweet, informações do autor, estatísticas de engajamento - Links do autor:
link "<NomeExibido> Conta verificada",link "@<nome_de_usuário>" - Carimbo de data/hora:
link "<hora> · <data>"(ex.: "14:30 · 5 de mai. de 2026") - Contagem de visualizações:
link "<N> visualizações" - Botões de engajamento:
button "N Resposta. Responder",button "N reposts. Repostar",button "N Curtidas. Curtir",button "N Itens salvos. Salvar",button "Compartilhar postagem" - Botão de inscrição:
button "Inscrever-se em @<nome_de_usuário>"
Problemas Conhecidos:
- Nenhum
1.3 Pesquisar Tweets por Palavra-chave
Objetivo: Pesquisar tweets que correspondam a uma palavra-chave ou consulta e ler os resultados.
Pré-condições: Logado.
Passos:
# Para resultados "Principais" (padrão):
agent-browser open "https://x.com/search?q=<consulta_codificada_em_url>&src=typed_query"
# Para resultados "Últimos":
agent-browser open "https://x.com/search?q=<consulta_codificada_em_url>&src=typed_query&f=live"
# Para resultados "Pessoas":
agent-browser open "https://x.com/search?q=<consulta_codificada_em_url>&src=typed_query&f=user"
# Para resultados "Mídia":
agent-browser open "https://x.com/search?q=<consulta_codificada_em_url>&src=typed_query&f=image"
Verificação:
# O título deve conter "<consulta> - Pesquisar / X"
agent-browser get title
# Verificar qual aba está ativa
agent-browser snapshot -i -c -s '[role="tablist"]'
# Ler os tweets dos resultados da pesquisa
agent-browser snapshot -i -c -s 'article'
Elementos-chave:
- Abas de pesquisa:
tab "Principais",tab "Últimos",tab "Pessoas",tab "Mídia",tab "Listas" - O parâmetro de URL
fcontrola a aba: omitido = Principais,live= Últimos,user= Pessoas,image= Mídia - Botão Voltar:
button "Voltar"— retorna à página anterior - Cada resultado é um elemento
articleidêntico em estrutura aos tweets da timeline
Problemas Conhecidos:
- Codifique a string de consulta na URL (espaços →
%20, etc.) - Os resultados da pesquisa podem mostrar "tela de login" para sessões não autenticadas
- Operadores avançados de pesquisa do X funcionam:
from:usuario,since:2026-01-01,min_faves:100, etc.
1.4 Visualizar um Perfil de Usuário
Objetivo: Navegar para o perfil de um usuário e ler sua bio e vários tweets recentes.
Pré-condições: Ter o nome de usuário ou URL do perfil.
Passos:
# 1. Navegar para o perfil
agent-browser open "https://x.com/<nome_de_usuário>"
# 2. Snapshot inicial — normalmente mostra apenas o tweet FIXADO (se houver)
agent-browser snapshot -i -c -s 'article'
# AVISO: O primeiro artigo é geralmente o tweet fixado, NÃO a postagem mais recente.
# Você DEVE rolar para baixo para ver as postagens reais recentes.
# 3. Rolar para baixo para carregar postagens recentes (após o tweet fixado e o cabeçalho do perfil)
agent-browser scroll down 3000
agent-browser wait 2000
agent-browser snapshot -i -c -s 'article'
# Agora você deve ver a primeira postagem recente (não fixada)
# 4. Continuar rolando para carregar mais postagens — repita conforme necessário
agent-browser scroll down 3000
agent-browser wait 2000
agent-browser snapshot -i -c -s 'article'
Verificação:
# O título deve conter "<NomeExibido> (@<nome_de_usuário>) / X"
agent-browser get title
# A URL deve ser https://x.com/<nome_de_usuário>
agent-browser get url
Padrão-chave — Navegar por Múltiplas Postagens:
# Para navegar por N postagens do perfil de um usuário, use este loop de rolagem:
# Cada ciclo de rolagem+espera revela ~1 nova postagem devido à lista virtualizada
for i in $(seq 1 N); do
agent-browser scroll down 3000
sleep 2 # ou: agent-browser wait 2000
agent-browser snapshot -i -c -s 'article'
# Processar o(s) artigo(s) visível(is)
done
Problemas Conhecidos:
- CRÍTICO: A visualização inicial da página normalmente mostra apenas o tweet fixado. Você DEVE rolar para baixo para ver postagens recentes. Agentes frequentemente pensam erroneamente que o tweet fixado é o único conteúdo.
- O X usa uma lista virtualizada — apenas 1-2 artigos no viewport estão no DOM a qualquer momento. Artigos que passaram pela rolagem são removidos do DOM.
- Rolagem de 3000px + espera de 2 segundos carrega o próximo lote de forma confiável
- O tweet fixado tem o texto
"Fixado"no início da descrição do seu artigo — use isso para identificá-lo e ignorá-lo - O perfil tem abas: Postagens, Respostas, Destaques, Mídia, Curtidas — o padrão é "Postagens" que exclui respostas. Use
https://x.com/<nome_de_usuário>/with_repliespara postagens + respostas.
1.5 Ler Thread de Tweet / Respostas
Objetivo: Abrir um tweet e ler a thread completa e as respostas abaixo dele.
Pré-condições: Ter a URL do tweet.
Passos:
# 1. Abrir o tweet
agent-browser open "https://x.com/<nome_de_usuário>/status/<id_do_tweet>"
# 2. Rolar para baixo para carregar respostas
agent-browser scroll down 800
# 3. Ler respostas (elas aparecem como elementos adicionais de article abaixo do tweet principal)
agent-browser snapshot -i -c -s 'article'
Verificação:
# Múltiplos elementos article devem estar presentes — o primeiro é o tweet principal, o restante são respostas
agent-browser snapshot -i -c -s 'article'
Problemas Conhecidos:
- As respostas podem ser paginadas — procure por
button "Mostrar mais respostas"e clique nele - A seção "Mostrar provável spam" pode aparecer — ignore-a
- O contexto da thread (tweets pais) aparece acima do tweet principal
- Armadilha de clique em citação: Se uma resposta ou entrada da timeline for um tweet de citação, clicar no corpo do artigo navega para a postagem original citada em vez da página de detalhes do tweet de citação. Para navegar para o tweet correto, clique no link do carimbo de data/hora. Consulte a seção 3.4 Problemas Conhecidos para detalhes completos.
1.6 Ler Notificações
Objetivo: Abrir a aba de notificações e ler notificações recentes.
Pré-condições: Logado.
Passos:
agent-browser open https://x.com/notifications
Verificação:
# O título deve conter "Notificações / X"
agent-browser get title
# A URL deve ser https://x.com/notifications
agent-browser get url
Elementos-chave:
- Abas de notificação: Todas, Verificadas, Menções
- O link da barra lateral mostra contagem de não lidas:
link "Notificações (N notificações não lidas)"
Problemas Conhecidos:
- As notificações têm sub-abas: Todas, Verificadas, Menções
1.7 Ler DMs (Mensagens Diretas)
Objetivo: Abrir DMs e ler mensagens recentes.
Pré-condições: Logado.
Passos:
# Nota: /messages redireciona para /i/chat
agent-browser open https://x.com/messages
Verificação:
# A URL será https://x.com/i/chat (redirecionamento automático)
agent-browser get url
Problemas Conhecidos:
- A URL redireciona de
/messagespara/i/chat - A interface de DM é um painel lateral ou página inteira, dependendo do viewport
- Pode exigir X Premium para alguns recursos de DM
2. Engajamento — Reagir a Conteúdo
2.1 Curtir um Tweet
Objetivo: Curtir um tweet específico.
Pré-condições: Em uma página onde o tweet está visível (timeline, detalhes do tweet, resultados de pesquisa).
Passos:
# 1. Snapshot para encontrar o botão Curtir para o tweet alvo
agent-browser snapshot -i -c -s 'article'
# Procure por: button "N Curtidas. Curtir" (ainda não curtido) dentro do article alvo
# 2. Clicar no botão Curtir
agent-browser click <referencia_botao_curtir>
Verificação:
# Snapshot novamente — o texto do botão deve mudar de "Curtir" para "Curtido"
agent-browser snapshot -i -c -s 'article'
# Procure por: button "N Curtidas. Curtido"
Identificação do Elemento:
- Não curtido:
button "N Curtidas. Curtir"— texto termina com. Curtir - Já curtido:
button "N Curtidas. Curtido"— texto termina com. Curtido - A contagem de curtidas N incrementa em 1 após curtir
Problemas Conhecidos:
- Limitação de taxa: O X pode restringir curtidas rápidas
- A referência do botão pode mudar após a mudança de estado (faça um novo snapshot para obter a nova referência)
2.2 Descurtir um Tweet
Objetivo: Remover uma curtida de um tweet anteriormente curtido.
Pré-condições: O tweet já está curtido.
Passos:
# 1. Snapshot para encontrar o botão Curtido
agent-browser snapshot -i -c -s 'article'
# Procure por: button "N Curtidas. Curtido"
# 2. Clicar no mesmo botão para descurtir
agent-browser click <referencia_botao_curtido>
Verificação:
# O texto do botão deve reverter de "Curtido" para "Curtir"
agent-browser snapshot -i -c -s 'article'
# Procure por: button "N Curtidas. Curtir"
Identificação do Elemento:
- O mesmo botão alterna entre os estados Curtir/Curtido
- A referência pode mudar entre estados — sempre faça um novo snapshot
Problemas Conhecidos:
- Nenhum
2.3 Retweetar (Repostar)
Objetivo: Repostar um tweet na própria timeline.
Pré-condições: Em uma página onde o tweet está visível.
Passos:
# 1. Snapshot para encontrar o botão Repostar
agent-browser snapshot -i -c -s 'article'
# Procure por: button "N reposts. Repostar" [expanded=false]
# 2. Clicar no botão Repostar — isso abre um MENU DROPDOWN, não a ação em si
agent-browser click <referencia_botao_repostar>
# 3. Snapshot para ver os itens do menu dropdown
agent-browser snapshot -i -c -s '[role="menuitem"]'
# Mostra: menuitem "Repostar" e menuitem "Citar"
# 4. Clicar no item de menu "Repostar" para executar o repost
agent-browser click <referencia_item_menu_repostar>
Verificação:
# Snapshot — o texto do botão deve mudar de "Repostar" para "Repostado"
agent-browser snapshot -i -c -s 'article'
Identificação do Elemento:
- Botão Repostar:
button "N reposts. Repostar" [expanded=false] - Itens do dropdown:
menuitem "Repostar"emenuitem "Citar" - Após repostar: o botão se torna
button "N reposts. Repostado"
Problemas Conhecidos:
- Operação em duas etapas: clicar no botão abre um dropdown; você deve então clicar no item de menu
- Para cancelar/fechar o dropdown sem agir:
... [cortado para tradução]