Bluesky.bot

Outil en ligne de commande

bsbot gère vos bots et leurs handles name.bluesky.bot depuis un terminal : les mêmes actions que le tableau de bord, pour les scripts et pour celles et ceux qui vivent dans un shell. Il fonctionne sur macOS et Linux avec Node.js 22 ou plus récent.

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

Le paquet npm s’appelle @blueskydotbot/cli et la commande qu’il installe bsbot. Pour le lancer sans l’installer : npx @blueskydotbot/cli login (ou pnpm dlx @blueskydotbot/cli, yarn dlx @blueskydotbot/cli, bunx @blueskydotbot/cli).

Se connecter

bsbot login ouvre bluesky.bot dans votre navigateur. Connectez-vous avec Bluesky comme d’habitude (aucun mot de passe ne passe jamais par le terminal), vérifiez le nom de machine affiché par la page, puis choisissez Autoriser. Le navigateur renvoie un code à usage unique à la CLI, sur votre propre machine, et la CLI enregistre son jeton.

  • Le jeton dure 30 jours. Relancez ensuite login.
  • Il est enregistré dans ~/.config/bsbot/credentials.json (ou $XDG_CONFIG_HOME/bsbot/), lisible par vous seul. Il n’est jamais affiché, pas même avec --json.
  • Il ne peut gérer que les handles de vos bots. Il ne peut ni publier, ni suivre, ni lire votre compte Bluesky, ni changer vos réglages, ni supprimer votre compte.
  • --name <label> nomme la machine dans vos paramètres (son nom d’hôte par défaut), par exemple bsbot login --name "CI".
  • Sur une machine sans navigateur, ajoutez --no-browser et ouvrez ailleurs le lien affiché ; le navigateur doit pouvoir joindre la machine de la CLI, par exemple via ssh -L.

Pour arrêter : bsbot logout révoque le jeton. Vous pouvez aussi révoquer n’importe quelle machine sous Paramètres → Accès CLI dans le tableau de bord, et Se déconnecter partout révoque tous les jetons d’un coup.

Commandes

CommandeCe qu’elle fait
whoamiLe compte avec lequel vous êtes connecté, et l’expiration du jeton
botsVos bots, leur handle, et s’il est actif
check <name>Si <name>.bluesky.bot est libre (sans connexion)
claim <bot> <name>Réserve <name>.bluesky.bot pour un bot et le lui applique
switch <bot>Redemande au serveur du bot d’utiliser son handle
verify <bot>Vérifie que le handle est actif sur Bluesky
release <bot>Libère le handle ; demande confirmation, ou ajoutez --yes
directoryParcourt l’annuaire public : --q, --category, --verified, --limit, --cursor

<bot> est le DID d’un bot, son handle, son handle précédent (avant qu’il n’en ait un en .bluesky.bot), ou simplement le nom : weather pour weather.bluesky.bot. Les nouveaux bots s’ajoutent depuis le tableau de bord : il faut se connecter au compte du bot lui-même.

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

Les règles sont celles du tableau de bord : des noms de 3 à 30 caractères, des noms réservés, un court délai de grâce sur les handles libérés, et la même limite de changements de handle par heure, partagée entre le tableau de bord et la CLI.

Scripts

Chaque commande accepte --json : la réponse de l’API sur stdout, et {"error": {"code", "message"}} sur stderr en cas d’échec. Le code de sortie vaut 0 en cas de succès, 1 en cas d’erreur, 2 en cas de mauvaise utilisation.

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

En coulisse, la CLI appelle les routes /me/* de l’API avec son jeton (Authorization: Bearer). Elles figurent dans la référence de l’API.