xurl: instalar, criar a app no X e começar a usar
O caminho seguro para sair de “comprei créditos no X” e chegar em “consigo autenticar, ler perfis e automatizar monitoramento com o Hermes”.
O ponto central é este: comprar créditos do X não basta para usar o xurl. Antes de qualquer comando real, você precisa criar uma app no X Developer Console, habilitar OAuth 2.0 e configurar o callback URI exatamente igual ao esperado. Depois disso, o xurl vira um cliente muito bom para leitura, busca, timelines e acesso bruto à API oficial.
xurl, faça nesta ordem: crie a app no X, ative OAuth 2.0, escolha um callback livre no host, pegue Client ID e Client Secret, instale o xurl, registre a app com xurl auth apps add, rode xurl auth oauth2 --app ... e valide com xurl whoami. Em VPS headless, o fluxo mais confiável é abrir um túnel SSH, capturar a URL de autorização e concluir o login pelo navegador local.
Resposta curta: o que você precisa fazer antes
Se você só comprou créditos de desenvolvedor no X e ainda não criou nenhuma app, o próximo passo não é instalar o xurl e sair rodando comando. O próximo passo é criar a app.
- criar uma app no portal de desenvolvedor do X;
- habilitar OAuth 2.0 nessa app;
- configurar um callback local livre, como
http://localhost:8181/callback, com correspondência exata; - copiar Client ID e Client Secret;
- instalar o
xurl; - registrar a app no
xurl; - fazer o login OAuth;
- testar com
xurl whoami.
xurl depende da app, não apenas do saldo.
O que foi verificado para este guia
Este guia foi montado a partir de quatro camadas de evidência, seguindo um critério mais operacional do que promocional:
- docs oficiais do X sobre OAuth 2.0 Authorization Code Flow com PKCE;
- README oficial do
xurlno GitHub; - estado real do host onde o Hermes roda hoje;
- issues e PRs do repositório oficial do
xurl, para captar armadilhas de onboarding e comportamento recente.
$ command -v xurl
/home/hermes/.local/bin/xurl
$ xurl auth status
▸ default [(no credentials)]
redirect_uri: http://localhost:8080/callback [built-in default]
oauth2: (none)
x-monitor-hermes [client_id: dE01UHQ2…]
redirect_uri: http://localhost:8181/callback [app config]
oauth2: michelmarinho
$ xurl whoami
{
"data": {
"id": "49158482",
"name": "Michel Marinho",
"username": "michelmarinho"
}
}
Em outras palavras: o fluxo foi validado de ponta a ponta neste host. O xurl está instalado, a app foi registrada com callback em 8181, o OAuth 2.0 foi concluído e o whoami já responde com o usuário autenticado.
O modelo mental certo
Vale pensar no fluxo em três camadas.
xurl não tem identidade OAuth para conversar com a API oficial do X.Essa separação ajuda a evitar a confusão mais comum: “eu já paguei, então por que o CLI não funciona?” Porque o pagamento habilita consumo, mas a autenticação ainda depende da app.
Passo 1 — criar a app no X Developer Console
Vá para o portal oficial:
https://developer.x.com/en/portal/dashboard
Crie uma app nova. Para um caso como monitoramento de perfis, notícias de IA e leitura de timelines, um nome simples como x-monitor já resolve.
O importante aqui não é o nome. É a configuração da autenticação.
xurl com Client Secret.
Passo 2 — habilitar OAuth 2.0 e acertar o callback
A documentação oficial do X para OAuth 2.0 Authorization Code Flow with PKCE deixa dois pontos muito claros:
- o OAuth 2.0 precisa estar ativado nas configurações da app;
- o
redirect_uriprecisa fazer exact match.
O caminho mais simples em máquina local costuma ser usar exatamente:
http://localhost:8080/callback
Esse é o valor padrão usado no fluxo documentado do próprio projeto. Se você trocar a URI, tudo bem — mas o valor precisa ser o mesmo tanto no portal do X quanto no registro local do xurl.
Na prática de VPS headless, não trate 8080 como sagrado. Se a porta já estiver ocupada por Docker, app de teste ou proxy local, troque para outra porta livre, como 8181, e atualize o valor nos dois lados.
xurl for outra, o login quebra. Aqui não existe “quase certo”; o X valida correspondência exata.
xurl auth apps redirect-uri set x-monitor-hermes http://localhost:8181/callback
Para o seu caso, também faz sentido já garantir escopos voltados a leitura. Em linguagem prática, pense no mínimo em:
tweet.read;users.read;offline.accessse você quiser refresh token estável.
A própria doc oficial do X indica que, sem offline.access, o token de acesso tende a ter vida curta; com esse escopo, você ganha refresh token.
Passo 3 — pegar Client ID e Client Secret
Depois de salvar a app, abra a seção Keys and Tokens e copie:
- Client ID;
- Client Secret (quando o tipo da app disponibilizar esse campo).
Esses valores não devem ser colados em conversa com agente. O uso certo é inseri-los diretamente no terminal, localmente, durante o registro da app no xurl.
Passo 4 — instalar o xurl
O projeto oficial documenta quatro caminhos principais de instalação. Em Linux, os três mais relevantes são estes:
curl -fsSL https://raw.githubusercontent.com/xdevplatform/xurl/main/install.sh | bash
npm install -g @xdevplatform/xurl
go install github.com/xdevplatform/xurl@latest
Como esta máquina já tem node, npm e go, qualquer um desses caminhos é viável. Ainda assim, o script oficial é o caminho mais neutro para começar, porque já segue a trilha esperada pelo projeto e normalmente instala em ~/.local/bin.
xurl --help
xurl auth status
Se o auth status vier vazio nessa fase, isso é normal. Antes do OAuth, ainda não há app ou token utilizável.
Passo 5 — registrar a app e fazer o login
Com o CLI instalado e as credenciais em mãos, o fluxo mais seguro é este:
xurl auth apps add x-monitor \
--client-id SEU_CLIENT_ID \
--client-secret SEU_CLIENT_SECRET \
--redirect-uri http://localhost:8080/callback
Em uma VPS, você provavelmente vai acabar usando o mesmo comando com outra porta local, por exemplo:
xurl auth apps add x-monitor-hermes \
--client-id SEU_CLIENT_ID \
--client-secret SEU_CLIENT_SECRET \
--redirect-uri http://localhost:8181/callback
xurl auth oauth2 --app x-monitor
xurl auth oauth2 --app x-monitor michelmarinho
xurl auth default x-monitor
xurl auth default x-monitor michelmarinho
xurl auth status
xurl whoami
--app x-monitor no login OAuth. O repositório do xurl teve mudanças recentes justamente para deixar mais claro que, se você omitir --app, o token pode ir para o perfil errado e a autenticação parecer “bem-sucedida” mesmo ficando operacionalmente quebrada depois.
Fluxo validado em VPS headless
Esse foi o cenário real validado aqui: acesso na VPS por outro usuário via SSH, troca posterior para hermes, sem navegador gráfico no servidor, e callback local concluído usando túnel SSH + captura manual da URL de autorização.
- abrir um túnel SSH no computador local para a porta do callback;
- entrar na VPS normalmente e trocar para
hermescomsudo -iu hermes; - rodar o OAuth como
hermes, para que os tokens sejam salvos em/home/hermes/.xurl; - em ambiente headless, capturar a URL de autorização em vez de depender do
xdg-open; - abrir a URL no navegador local e deixar o callback voltar pelo túnel.
ssh -L 8181:127.0.0.1:8181 usuario@seu-servidor
sudo -iu hermes
mkdir -p ~/scripts-temp
cat > ~/scripts-temp/capture-browser-url.sh <<'EOF'
#!/usr/bin/env bash
printf '%s\n' "$@" >> /tmp/xurl-browser-url.log
exit 0
EOF
chmod +x ~/scripts-temp/capture-browser-url.sh
rm -f /tmp/xurl-browser-url.log
BROWSER=$HOME/scripts-temp/capture-browser-url.sh \
xurl auth oauth2 --app x-monitor-hermes michelmarinho
cat /tmp/xurl-browser-url.log
Depois disso, abra a URL no navegador do seu computador. Quando o X redirecionar para http://localhost:8181/callback, o túnel SSH entrega esse retorno ao processo xurl que está escutando na VPS.
localhost, mas o localhost do navegador local é encaminhado para a VPS por ssh -L. Você não precisa instalar xurl na sua máquina local só para concluir o login.
Primeiros comandos que realmente importam
Depois que o whoami funcionar, você já está no ponto certo para começar a testar leitura e monitoramento.
xurl whoami
xurl user @OpenAI
xurl user @AnthropicAI
xurl user @xAI
xurl search "AI OR LLM OR OpenAI OR Anthropic OR xAI" -n 10
xurl search "(AI OR LLM OR OpenAI OR Anthropic OR xAI OR NVIDIA) lang:en -is:retweet" -n 20
xurl /2/users/by/username/OpenAI
Esse último ponto é importante porque o xurl não serve apenas como coleção de atalhos. Ele também funciona como um cliente cru da API v2, o que é ótimo quando você quer encaixar o X em um fluxo de automação mais sério no Hermes.
Como isso vira monitoramento com o Hermes
Depois que a autenticação estiver estável, o desenho recomendado para o seu caso fica muito mais limpo:
- usar o
xurlcomo camada de coleta oficial; - usar o OpenAI já configurado no Hermes como camada de resumo, classificação e filtro;
- entregar o resultado por Telegram via cron.
Em termos de arquitetura, isso é melhor do que misturar scraping, browser automation e análise num mesmo bloco. Você separa coleta oficial de interpretação editorial.
xurl cobre a coleta; o Hermes cobre o julgamento editorial.
Problemas conhecidos e nuances reais
O repositório do xurl mostra algumas armadilhas que valem entrar no seu modelo mental desde já.
- PR #74 e PR #75: reforçaram a documentação porque usuários estavam autenticando sem
--appe salvando token no perfil errado. - Issue #48: mostra usuários presos numa mensagem do tipo “You do not have access to this application…”, o que normalmente aponta para configuração/enrollment da app no X, não para “bug simples de terminal”.
- Issue #76: o upload de mídia sem parâmetros suficientes pode parecer bem-sucedido e falhar depois; para imagem, vale ser explícito com categoria e media type.
- Issue #77: o pacote publicado no npm pode atrasar em relação ao repositório principal; quando você quiser o estado mais novo, o script oficial ou Go podem ser caminhos mais previsíveis.
- Nuance operacional de VPS: em servidor headless, o
xurl auth oauth2pode parecer “parado”, quando na verdade está aguardando o callback local e falhou apenas em abrir o navegador comxdg-open.
xurl whoami falham com algo como client-forbidden ou client-not-enrolled, a suspeita principal passa a ser o package/environment da app no X. O próprio README do projeto cita como correção prática mover a app para Pay-per-use e Production no console do X.
A sequência recomendada para você, sem rodeio
- crie a app no X Developer Console;
- ative OAuth 2.0;
- configure um callback local livre, como
http://localhost:8181/callbackse8080estiver ocupada; - garanta escopos de leitura +
offline.access; - copie Client ID e Client Secret;
- instale o
xurlpelo script oficial; - registre a app como
x-monitor; - se estiver em VPS headless, abra um túnel SSH e prepare a captura da URL de autorização;
- rode
xurl auth oauth2 --app x-monitor; - rode
xurl auth default x-monitorouxurl auth default x-monitor michelmarinho; - valide com
xurl whoamie uma busca simples; - só depois disso passe para a automação no Hermes.
Essa ordem economiza tempo e elimina boa parte dos falsos diagnósticos.
Fontes
- Documentação oficial do X: OAuth 2.0 Authorization Code Flow with PKCE.
- Documentação oficial do X: X Developer Platform Overview.
- Repositório oficial do
xurl: github.com/xdevplatform/xurl. - README oficial do
xurl, incluindo instalação, registro de app e fluxo OAuth 2.0. - PRs/Issues do
xurl: #74, #75, #48, #76, #77. - Verificações locais deste host: presença de
node,npmego; ausência dexurlno PATH no momento da análise.