Bluesky.bot

Herramienta de línea de comandos

bsbot gestiona tus bots y sus handles name.bluesky.bot desde una terminal: las mismas acciones que el panel, para scripts y para quienes viven en una shell. Funciona en macOS y Linux con Node.js 22 o posterior.

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

El paquete npm se llama @blueskydotbot/cli y el comando que instala es bsbot. Para ejecutarlo sin instalarlo: npx @blueskydotbot/cli login (o pnpm dlx @blueskydotbot/cli, yarn dlx @blueskydotbot/cli, bunx @blueskydotbot/cli).

Iniciar sesión

bsbot login abre bluesky.bot en tu navegador. Inicia sesión con Bluesky como siempre (ninguna contraseña pasa nunca por la terminal), comprueba el nombre de máquina que muestra la página y elige Autorizar. El navegador devuelve un código de un solo uso a la CLI en tu propia máquina, y la CLI guarda su token.

  • El token dura 30 días. Después, vuelve a ejecutar login.
  • Se guarda en ~/.config/bsbot/credentials.json (o $XDG_CONFIG_HOME/bsbot/), legible solo por ti. Nunca se muestra, ni siquiera con --json.
  • Solo puede gestionar los handles de tus bots. No puede publicar, seguir, leer tu cuenta de Bluesky, cambiar tus ajustes ni eliminar tu cuenta.
  • --name <label> da nombre a la máquina en tus ajustes (por defecto, su nombre de host), p. ej. bsbot login --name "CI".
  • En una máquina sin navegador, añade --no-browser y abre en otro sitio el enlace que aparece; el navegador debe poder llegar a la máquina de la CLI, por ejemplo con ssh -L.

Para dejarlo: bsbot logout revoca el token. También puedes revocar cualquier máquina en Ajustes → Acceso CLI del panel, y Cerrar sesión en todas partes revoca todos los tokens a la vez.

Comandos

ComandoQué hace
whoamiLa cuenta con la que has iniciado sesión, y cuándo caduca el token
botsTus bots, su handle y si está activo
check <name>Si <name>.bluesky.bot está libre (sin iniciar sesión)
claim <bot> <name>Reclama <name>.bluesky.bot para un bot y se lo aplica
switch <bot>Vuelve a pedir al servidor del bot que use su handle
verify <bot>Comprueba que el handle está activo en Bluesky
release <bot>Libera el handle; pide confirmación, o añade --yes
directoryRecorre el directorio público: --q, --category, --verified, --limit, --cursor

<bot> es el DID de un bot, su handle, su handle anterior (antes de tener uno .bluesky.bot) o simplemente el nombre: weather para weather.bluesky.bot. Los bots nuevos se añaden desde el panel: hace falta iniciar sesión en la propia cuenta del bot.

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

Las reglas son las del panel: nombres de 3 a 30 caracteres, nombres reservados, un breve periodo de gracia para los handles liberados y el mismo límite de cambios de handle por hora, compartido entre el panel y la CLI.

Scripts

Todos los comandos aceptan --json: la respuesta de la API en stdout, y {"error": {"code", "message"}} en stderr cuando fallan. El código de salida es 0 si todo va bien, 1 ante un error y 2 ante un uso incorrecto.

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

Por debajo, la CLI llama a las rutas /me/* de la API con su token (Authorization: Bearer). Aparecen en la referencia de la API.