コマンドラインツール
bsbot は、ボットとその name.bluesky.bot ハンドルをターミナルから管理するツールです。ダッシュボードと同じ操作を、スクリプトやシェルで作業する人のために提供します。macOS と Linux の Node.js 22 以降で動作します。
npm install --global @blueskydotbot/cli
bsbot loginnpm パッケージ名は @blueskydotbot/cli で、インストールされるコマンドは bsbot です。インストールせずに実行するには npx @blueskydotbot/cli login を使います(pnpm dlx @blueskydotbot/cli、yarn dlx @blueskydotbot/cli、bunx @blueskydotbot/cli でも可)。
パッケージはまだ npm に公開されていません。それまでは、プロジェクトのチェックアウトから実行してください: node packages/cli/src/bin.ts <command>(Node.js 24)。
サインイン
bsbot login を実行すると、ブラウザで bluesky.bot が開きます。いつもどおり Bluesky でサインインし(パスワードがターミナルを通ることはありません)、ページに表示されるマシン名を確認して 許可する を選びます。ブラウザはあなたのマシン上の CLI にワンタイムコードを渡し、CLI はトークンを保存します。
- トークンの有効期間は 30 日 です。期限が切れたら、もう一度
loginを実行します。 - トークンは
~/.config/bsbot/credentials.json(または$XDG_CONFIG_HOME/bsbot/)に保存され、あなただけが読めます。--jsonを付けても表示されることはありません。 - できるのはボットのハンドルの管理だけです。投稿、フォロー、Bluesky アカウントの閲覧、設定の変更、アカウントの削除はできません。
--name <label>で設定画面に表示するマシン名を指定できます(デフォルトはホスト名)。例:bsbot login --name "CI"。- ブラウザのないマシンでは
--no-browserを付け、表示されたリンクを別の場所で開きます。そのブラウザから CLI のマシンに到達できる必要があります(たとえばssh -L経由)。
やめるときは、bsbot logout でトークンを取り消します。ダッシュボードの 「設定」→「CLI アクセス」 から任意のマシンを取り消すこともでき、すべての端末でサインアウト ですべてのトークンを一度に取り消せます。
コマンド
| コマンド | 内容 |
|---|---|
whoami | サインイン中のアカウントと、トークンの有効期限 |
bots | 自分のボット、そのハンドル、有効かどうか |
check <name> | <name>.bluesky.bot が空いているか(サインイン不要) |
claim <bot> <name> | ボットに <name>.bluesky.bot を取得し、そのハンドルに切り替える |
switch <bot> | ボットのサーバーに、ハンドルを使うようもう一度依頼する |
verify <bot> | ハンドルが Bluesky で有効 か確認する |
release <bot> | ハンドルを解放する。確認を求めるので、省略するには --yes を付ける |
directory | 公開ディレクトリを表示する: --q、--category、--verified、--limit、--cursor |
<bot> には、ボットの DID、ハンドル、以前のハンドル(.bluesky.bot のハンドルを取得する前のもの)、または名前だけ(weather.bluesky.bot なら weather)を指定します。新しいボットはダッシュボードから追加します。ボットのアカウント自体でのサインインが必要だからです。
bsbot check weather
bsbot claim weather.bsky.social weather
bsbot verify weatherルールはダッシュボードと同じです。名前は 3〜30 文字で、予約済みの名前があり、解放されたハンドルには短い猶予期間があります。1 時間あたりのハンドル変更の上限も同じで、ダッシュボードと CLI で共有されます。
スクリプト
すべてのコマンドで --json が使えます。成功すると API の応答が stdout に、失敗すると {"error": {"code", "message"}} が stderr に出力されます。終了コードは、成功で 0、エラーで 1、使い方の誤りで 2 です。
bsbot bots --json | jq -r '.bots[] | select(.verifiedAt == null) | .did'内部では、CLI はトークン(Authorization: Bearer)を付けて API の /me/* ルートを呼び出しています。これらは API リファレンスに掲載されています。