Bluesky.bot

Ferramenta de linha de comandos

O bsbot gere os seus bots e os respetivos handles name.bluesky.bot a partir de um terminal: as mesmas ações que o painel, para scripts e para quem vive numa shell. Funciona em macOS e Linux com Node.js 22 ou superior.

bash
npm install --global @blueskydotbot/cli
bsbot login

O pacote npm chama-se @blueskydotbot/cli e o comando que instala é bsbot. Para o executar sem instalar: npx @blueskydotbot/cli login (ou pnpm dlx @blueskydotbot/cli, yarn dlx @blueskydotbot/cli, bunx @blueskydotbot/cli).

Entrar

bsbot login abre o bluesky.bot no seu navegador. Entre com o Bluesky como habitualmente (nenhuma palavra-passe passa alguma vez pelo terminal), confirme o nome da máquina que a página mostra e escolha Autorizar. O navegador devolve um código de utilização única à CLI na sua própria máquina, e a CLI guarda o seu token.

  • O token dura 30 dias. Depois, execute login novamente.
  • Fica guardado em ~/.config/bsbot/credentials.json (ou $XDG_CONFIG_HOME/bsbot/), legível apenas por si. Nunca é mostrado, nem mesmo com --json.
  • Só pode gerir os handles dos seus bots. Não pode publicar, seguir, ler a sua conta do Bluesky, alterar as suas definições nem eliminar a sua conta.
  • --name <label> dá nome à máquina nas suas definições (por predefinição, o nome do anfitrião), por exemplo bsbot login --name "CI".
  • Numa máquina sem navegador, acrescente --no-browser e abra noutro lado a ligação apresentada; o navegador tem de conseguir chegar à máquina da CLI, por exemplo através de ssh -L.

Para parar: bsbot logout revoga o token. Também pode revogar qualquer máquina em Definições → Acesso CLI no painel, e Terminar sessão em todo o lado revoga todos os tokens de uma vez.

Comandos

ComandoO que faz
whoamiA conta com que tem sessão iniciada, e quando o token expira
botsOs seus bots, o respetivo handle e se está ativo
check <name>Se <name>.bluesky.bot está livre (sem sessão)
claim <bot> <name>Reivindica <name>.bluesky.bot para um bot e aplica-o
switch <bot>Pede novamente ao servidor do bot que use o seu handle
verify <bot>Verifica que o handle está ativo no Bluesky
release <bot>Liberta o handle; pede confirmação, ou acrescente --yes
directoryExplora o diretório público: --q, --category, --verified, --limit, --cursor

<bot> é o DID de um bot, o seu handle, o handle anterior (antes de ter um .bluesky.bot), ou apenas o nome: weather para weather.bluesky.bot. Os bots novos são adicionados a partir do painel: é preciso entrar na própria conta do bot.

bash
bsbot check weather
bsbot claim weather.bsky.social weather
bsbot verify weather

As regras são as do painel: nomes de 3 a 30 caracteres, nomes reservados, um curto período de carência nos handles libertados e o mesmo limite de mudanças de handle por hora, partilhado entre o painel e a CLI.

Scripts

Todos os comandos aceitam --json: a resposta da API no stdout, e {"error": {"code", "message"}} no stderr quando falham. O código de saída é 0 em caso de sucesso, 1 em caso de erro e 2 em caso de utilização incorreta.

bash
bsbot bots --json | jq -r '.bots[] | select(.verifiedAt == null) | .did'

Por baixo, a CLI chama as rotas /me/* da API com o seu token (Authorization: Bearer). Estão listadas na referência da API.