Skip to content

コマンドラインリファレンス

bills-appworks edited this page Feb 8, 2025 · 59 revisions

対応バージョン:v0.14.0

当ドキュメントの書式

<>で囲まれている部分は、対応する文字列を指定することを意味しています。例えば<パスワード>は、パスワード文字列を該当の場所に入力することを意図しています。

[]で囲まれている部分は、省略可能であることを意味しています。例えば[--password <パスワード>]は、--passwordオプションおよびパスワード文字列の入力が省略可能であることを意図しています。

...は、その前の部分が何回か繰り返し指定可能であることを意味しています

一般形式

bsky [<グローバルオプション>] <コマンド> [<パラメタ>]

<グローバルオプション>は、bskyコマンドの全般的な動作を制御するためのオプションです。詳細についてはグローバルオプションを参照してください。

<コマンド>は、bskyコマンドが実行する機能を指定します。詳細についてはコマンド別リファレンスを参照してください。 現時点ではほとんどのコマンドは、loginコマンドによりセションが成立していることが前提条件となっています。

<パラメタ>は、<コマンド>の動作を制御するためのオプションです。詳細についてはコマンド別リファレンスを参照してください。

グローバルオプション

プロファイルの指定(-P--profile

bskyコマンドが対象とするプロファイル(=コマンド実行対象のアカウントを識別する名前)を指定します。指定しなくても利用可能です。プロファイルを指定した場合は、そのプロファイルを指定してloginしたアカウントが対象となります。

Tip

bsky login --handle A
bsky --profile B login --handle B
bsky --profile C login --handle C
bsky timeline  # ←アカウント(ハンドル)Aのタイムラインを表示
bsky --profile B timeline  # ←アカウント(ハンドル)Bのタイムラインを表示
bsky --profile C timeline  # ←アカウント(ハンドル)Cのタイムラインを表示

オプション部分の書式は以下になります。

-P <プロファイル名>

または

--profile <プロファイル名>

<プロファイル名>は、以下の条件を満たす任意の文字列を指定します。ハンドル名と同じでも異なってもかまいません

  • 1文字目は(半角)英数字
  • 2文字目以降は(半角)英数字、.(ピリオド)、_(アンダースコア)、-(ハイフン)

強制セションリフレッシュ(--session-refresh

Blueskyサーバとのセション(ログイン状態)を管理するため、セションを識別する情報をBlueskyサーバとやり取りしています。この情報はセキュリティ上の理由から一定時間ごとに更新されます。そのためbskyコマンドから期限切れのセション識別情報を使ってBlueskyサーバに接続すると、期限切れのエラーとなります。bskyコマンドでは、期限切れのエラーを判別して自動的にセション識別情報の更新を行います。

セション情報に起因する何らかの理由でBlueskyサーバへの接続ができなくなった場合、このオプションを指定すると強制的に更新を実施するため、解決する可能性があります。ただし問題が生じた場合にのみ利用し、むやみに指定しないでください。

オプション部分の書式は以下になります。

--session-refresh

バージョン情報表示

bskyコマンドのバージョン情報を表示します。このオプションを指定した場合は、他のオプションやコマンドの指定は無視されます。

オプション部分の書式は以下になります。

--version

コマンド

このドキュメント作成・更新時点でのコマンド一覧を以下に記します。メンテナンスの都合により、実態との差異が生じる場合があることを御了承ください。

以下のように各コマンドの次にhelpを指定することにより、各コマンドのヘルプを表示できます。

bsky <コマンド> help

コマンド名 概要 コマンド別リファレンス
login 指定のアカウント(ハンドル)によるセションを確立します。 ログイン(login
logout 現在のセションを破棄します。 ログアウト(logout
timeline 自身のアカウントのタイムラインを表示します。 タイムライン表示(timeline
feed カスタムフィード(フィードジェネレータ)を表示します。 カスタムフィード表示(feed
author-feed 指定ユーザのフィード(投稿)を表示します。 指定ユーザフィード表示(author-feed
post 投稿(ポスト)をします。 投稿(ポスト)(post
posts 複数投稿(ポスト)をします(スレッド投稿など)。 複数投稿(ポスト)(posts
reply 指定のポストへの返信(リプライ)をします。 返信(リプライ)(reply
repost 指定のポストをリポスト(フォロワーへシェア)します。 リポスト(repost
quote 指定のポストを引用して投稿(ポスト)をします(現時点ではテキストのみ)。 引用ポスト(quote
like 指定のポストにいいね(ライク)をします。 いいね(ライク)(like
thread 指定のポストに関するスレッド(リプライ関係)を表示します。 スレッド(リプライ関係投稿)の表示(thread
profile 指定ユーザのプロフィールを表示します。 プロフィール表示(profile
social ソーシャル情報(フォロー/フォロワー)を表示します。 ソーシャル表示(social
info bskyコマンドに関わる情報を表示します。 bskyコマンド関連情報表示(info
size 指定テキストの文字数を表示します。 サイズ表示(size
update ツールをアップデートします。 ツールアップデート(update)
help コマンド一覧のヘルプ情報を表示します。 コマンド一覧ヘルプ表示(help
version bskyコマンドのバージョン情報を表示します。 bskyコマンドバージョン番号表示(version

コマンド別リファレンス

コマンドで概要を一覧した各コマンドの詳細を以下に記します。

ログイン(login

認証を実施して、指定のアカウントによるセション(ログイン状態)を確立します。

bsky login [--handle <ハンドル名>] [--password <パスワード>]

  • <ハンドル名>には、利用しているBlueskyアカウントのユーザ名を指定します。ユーザ名先頭のアットマークは不要です。現時点ではメールアドレスによるログインはできません。Blueskyデフォルトのアカウントの場合はドメイン名(.bsky.social)は省略可能です。自分で設定したドメインも指定可能です。
  • <パスワード>には、ハンドル(ユーザ名)に対応するパスワードを指定します。パスワードにはアプリパスワードを使用することを推奨します。

--handle--passwordのいずれかまた両方を省略すると、画面上にプロンプトが表示され、省略した対象を入力することができます。

認証は2FA(2要素認証)にも対応しています。2FAを有効にしている場合、認証コードの入力待ちとなります。アカウントに登録しているメールアドレスに認証コードを記したメールが送付されていますので、メールに記載の認証コードを入力することにより認証が完了します。

ログアウト(logout

セション(ログイン状態)を破棄します。

bsky logout

タイムライン表示(timeline

ログイン中のアカウントのタイムライン(自分やフォローしているユーザの投稿など)を表示します。

bsky timeline [--limit <最大表示件数>] [--next] [--output-langs] [--output-id] [--output-via] [--output-json]

  • --limit <最大表示件数>は、表示される投稿の最大数を指示します。削除投稿等はカウントされても表示されないなど、指定した数の投稿が必ずしも表示されるとは限りません。1から100までの指定が可能です(--limitオプション指定を省略した場合のデフォルトは50)。
  • --nextは、前回timelineコマンドで表示した件数の続きを表示することを指示します。
  • --output-langsは、投稿時に指定された言語情報を併せて表示することを指示します。
  • --output-idは、(AT-)URIやCIDなど内部用の識別情報を併せて表示することを指示します。
  • --output-viaは、投稿に使用されたクライアント(アプリ)の名前を、投稿データ中に情報が存在すれば表示することを指示します(非公式フィールドvia)。
  • --output-jsonは、JSON形式で出力します。API app.bsky.feed.getTimelineの応答内容になります。--output-langs --output-id --output-viaオプションは無視されます。

カスタムフィード表示(feed

指定するカスタムフィード(フィードジェネレータ)の投稿を表示します。

bsky feed --actor <ハンドルまたはDID> --record-key <レコードキー> [--limit <最大表示件数>] [--next] [--output-langs] [--output-id] [--output-via] [--output-json]

bsky feed --handle <ハンドル> --record-key <レコードキー> [--limit <最大表示件数>] [--next] [--output-langs] [--output-id] [--output-via] [--output-json]

bsky feed --did <DID> --record-key <レコードキー> [--limit <最大表示件数>] [--next] [--output-langs] [--output-id] [--output-via] [--output-json]

bsky [--url] <bsky.appフィードURL> [--limit <最大表示件数>] [--next] [--output-langs] [--output-id] [--output-via] [--output-json]

  • --actor--handle--didは、カスタムフィード(フィードジェネレータ)の作成ユーザを指定します。それぞれの違いは、指定可能とするハンドルやDID(ユーザを示す内部ID)の種類が違うだけです。
  • --record-key <レコードキー>は、カスタムフィード(フィードジェネレータ)の作成ユーザにおける識別文字列です。たとえばbsky.appユーザの代表的なレコードキーはwhats-hotです(アカウント作成時に「Discover」として提案されるもの)。
  • [--url] <bsky.appフィードURL>は、Bluesky公式クライアントでカスタムフィード(フィードジェネレータ)を表示するURLを指定します。一般的に以下の形式となります。
    • https://bsky.app/profile/<ハンドルまたはDID>/feed/<レコードキー>
    • たとえばbsky.appユーザのwhats-hotレコードキーのフィードURLは以下になります。
    • https://bsky.app/profile/bsky.app/feed/whats-hot
  • --limit <最大表示件数>は、表示される投稿の最大数を指示します。削除投稿等はカウントされても表示されないなど、指定した数の投稿が必ずしも表示されるとは限りません。1から100までの指定が可能です(--limitオプション指定を省略した場合のデフォルトは50)。
  • --nextは、前回feedコマンドで表示した件数の続きを表示することを指示します。
  • --output-langsは、投稿時に指定された言語情報を併せて表示することを指示します。
  • --output-idは、(AT-)URIやCIDなど内部用の識別情報を併せて表示することを指示します。
  • --output-viaは、投稿に使用されたクライアント(アプリ)の名前を、投稿データ中に情報が存在すれば表示することを指示します(非公式フィールドvia)。
  • --output-jsonは、JSON形式で出力します。API app.bsky.feed.getFeedの応答内容になります。--output-langs --output-id --output-viaオプションは無視されます。

指定ユーザフィード表示(author-feed

指定するユーザのフィード(投稿)を表示します。

bsky author-feed --actor <ハンドルまたはDID> [--filter <フィルタ>] [--limit <最大表示件数>] [--next] [--output-langs] [--output-id] [--output-via] [--output-json]

bsky author-feed --handle <ハンドル> [--filter <フィルタ>] [--limit <最大表示件数>] [--next] [--output-langs] [--output-id] [--output-via] [--output-json]

bsky author-feed --did <DID> [--filter <フィルタ>] [--limit <最大表示件数>] [--next] [--output-langs] [--output-id] [--output-via] [--output-json]

  • --actor--handle--didは、ユーザを指定します。それぞれの違いは、指定可能とするハンドルやDID(ユーザを示す内部ID)の種類が違うだけです。
  • --filter <フィルタ>は、表示する投稿の種別を指示します。以下が指定可能です。
<フィルタ>に指定する文字列 フィルタ概要
posts-with-replies 返信(リプライ)を含む投稿(ポスト)を表示します。--filterオプションを指定しない場合のデフォルトになります。
posts-no-replies 返信(リプライ)を含まない投稿(ポスト)を表示します。
posts-with-media 画像などのメディアが添付(埋め込み)されている投稿(ポスト)を表示します。
posts-and-author-threads 返信(リプライ)を含まない投稿(ポスト)および指定ユーザのみのスレッドを表示します。
  • --limit <最大表示件数>は、表示される投稿の最大数を指示します。削除投稿等はカウントされても表示されないなど、指定した数の投稿が必ずしも表示されるとは限りません。1から100までの指定が可能です(--limitオプション指定を省略した場合のデフォルトは50)。
  • --nextは、前回author-feedコマンドで表示した件数の続きを表示することを指示します。
  • --output-langsは、投稿時に指定された言語情報を併せて表示することを指示します。
  • --output-idは、(AT-)URIやCIDなど内部用の識別情報を併せて表示することを指示します。
  • --output-viaは、投稿に使用されたクライアント(アプリ)の名前を、投稿データ中に情報が存在すれば表示することを指示します(非公式フィールドvia)。
  • --output-jsonは、JSON形式で出力します。API app.bsky.feed.getAuthorFeedの応答内容になります。--output-langs --output-id --output-viaオプションは無視されます。

投稿(ポスト)(post

投稿(ポスト)を行います。

bsky post [--text '<テキスト>'] [--text-file '<テキストファイルパス>'] [--image<画像番号> <画像ファイルパス> [--alt<画像番号> '<ALTテキスト>']]... [--linkcard-index <リンク番号>] [--url <表示モード>] [--langs '<言語コード>[,...]'] [--preview] [--output-json]

  • --text '<テキスト>'で、投稿(ポスト)するテキストを指定します。空白や改行、エスケープ対象文字がシェルによって解釈されることを防ぐため、シングルクォートで囲むことを推奨します。
    • 標準入力(パイプ/リダイレクト)を指定した場合、このオプションは無視されます。
  • --text-file '<テキストファイルパス>'で、投稿(ポスト)するテキストが記述されているファイルのパスを指定します。単一のファイルのみ指定可能です。
    • 例:--text-file '/path/to/a.txt'
    • 標準入力(パイプ/リダイレクト)を指定した場合、このオプションは無視されます。
  • --image<画像番号> <画像ファイルパス>で、投稿(ポスト)に添付する画像を指定します。最大4つまで指定可能です。
    • <画像番号>は1から4の数字を指定します。省略した場合は1を指定した場合と同じになります。--imageに続けてスペースを空けずに指定してください。
    • <画像ファイルパス>は添付する画像のファイルのパスを指定してください。現時点ではローカルファイルパスのみが指定可能です。
  • --alt<画像番号> '<ALTテキスト>'で、画像に対するALT(代替)テキストを指定します。視覚障害者や低視力者向けに提供する画像の説明文です。
    • <画像番号>--image<画像番号>で指定した画像に対応した1から4の数字を指定します。省略した場合は1を指定した場合と同じになります。--altに続けてスペースを空けずに指定してください。
  • --linkcard-index <リンク番号>で、テキストにリンクURLが含まれる場合のリンクカード表示対象とするリンクURLを指定します。このオプションを省略した場合は<リンク番号>に1が指定されたものとみなします(1番目のリンクURLが対象)。
    • <リンク番号>は数字を指定します。テキスト中に存在する複数のリンクURLのうち、リンクカードの生成対象とする出現順番号を指定します。0を指定した場合はリンクカードを生成しないようにします。
  • --url <表示モード>で、投稿(ポスト)テキスト中に含まれるURLの表示方法を指定します。以下が指定可能です。
<表示モード>に指定する文字列 URL表示方法
omit-tail URLが一定以上の長さの場合、末尾部分を省略する短縮を行います。--urlオプションを指定しない場合のデフォルトになります。
omit-middle URLが一定以上の長さの場合、中間部分を省略する短縮を行います。
full URLを短縮せず指定された通りにします。ただし表示するクライアントによっては短縮表示されます。
  • --langs '<言語コード>[,...]'は投稿(ポスト)に含まれる言語のコード(en、ja、ptなど)を指定します。複数の言語コードの場合はカンマ区切りで列挙指定します。
  • --previewは、実際の投稿(ポスト)を行わず、確認のために投稿(ポスト)内容の表示(プレビュー)のみを行います。
  • --output-jsonは、JSON形式で出力します。API app.bsky.feed.getPostsの応答内容になります。

実行結果として、投稿(ポスト)が表示されます。

--textオプションと--text-fileオプションはいずれか一方のみ指定可能です。

テキストは標準入力(パイプ/リダイレクト/対話式)から指定することが可能です。--textオプション、--text-fileオプション、標準入力(パイプ/リダイレクト)の全てを指定しなかった場合、対話式で入力します。

画像を指定した場合、テキスト中にリンクURLが存在してもリンクカードは生成されません。

テキスト末尾の改行は無視されます。

複数投稿(ポスト)(posts

複数投稿(ポスト)を行います。スレッド投稿等を選択できます。現時点ではテキストのみが指定可能です。

bsky posts [--mode <複数投稿モード>] [--text '<テキスト>'] [--text-files '<ファイルパス>[:...]'] [--url <表示モード>] [--langs '<言語コード>[,...]'] [--separator-prefix '<区切り文字列>'] [--preview] [--output-json]

  • --mode <複数投稿モード>で、複数の投稿(ポスト)の関係を指定します。以下が指定可能です。
<複数投稿モード>に指定する文字列 投稿動作概要
thread 先頭以外の投稿を、1つ前の投稿への返信(リプライ)とします。--modeオプションを指定しない場合のデフォルトになります。
sibling 先頭以外の投稿を、先頭の投稿への返信(リプライ)とします。
independence すべての投稿を単独投稿とし、返信(リプライ)関係にしません。
  • --text '<テキスト>'で、投稿(ポスト)するテキストを指定します。空白や改行、エスケープ対象文字がシェルによって解釈されることを防ぐため、シングルクォートで囲むことを推奨します。
  • --text-files '<ファイルパス>[:...]'で、投稿(ポスト)するテキストが記述されているファイルのパスを指定します。複数のファイルパスはコロン区切りで列挙指定します。
    • 例:--text-files '/path/to/a.txt:/path/to/b.txt'
  • --url <表示モード>で、投稿(ポスト)テキスト中に含まれるURLの表示方法を指定します。以下が指定可能です。
<表示モード>に指定する文字列 URL表示方法
omit-tail URLが一定以上の長さの場合、末尾部分を省略する短縮を行います。--urlオプションを指定しない場合のデフォルトになります。
omit-middle URLが一定以上の長さの場合、中間部分を省略する短縮を行います。
full URLを短縮せず指定された通りにします。ただし表示するクライアントによっては短縮表示されます。
  • --langs '<言語コード>[,...]'は投稿(ポスト)に含まれる言語のコード(en、ja、ptなど)を指定します。複数の言語コードの場合はカンマ区切りで列挙指定します。
  • --separator-prefix '<区切り文字列>'は、1つの指定テキスト(--textオプション、--text-filesオプションの1ファイル、標準入力)内で、指定した<区切り文字列>で始まる行(区切り行)を区切りとして投稿(ポスト)を分割します。
    • 区切り行自体は投稿(ポスト)から除外されます。
    • 区切り行において、<区切り文字列>から行末(改行)までは無視(コメント扱い)されます。
    • 区切った単位の内容が改行のみの場合は、その部分は投稿(ポスト)から除外されます。
  • --previewは、実際の投稿(ポスト)を行わず、確認のために投稿(ポスト)内容の表示(プレビュー)のみを行います。
  • --output-jsonは、JSON形式で出力します。--modeオプションの指定によって以下の内容になります。
--modeオプションの<複数投稿モード>に指定する文字列 JSON出力内容
thread 先頭の投稿を指定したAPI app.bsky.feed.getPostThreadの応答内容になります。
sibling 先頭の投稿を指定したAPI app.bsky.feed.getPostThreadの応答内容になります。
independence すべての投稿を指定したAPI app.bsky.feed.getPostsの応答内容になります。

実行結果として、投稿(ポスト)が表示されます。

テキストは標準入力(パイプ/リダイレクト/対話式)から指定することが可能です。--textオプション、--text-filesオプション、標準入力(パイプ/リダイレクト)の全てを指定しなかった場合、対話式で入力します。

標準入力(パイプ/リダイレクト)、--textオプション、--text-filesオプションは同時に指定することが可能です。複数投稿の順番は、標準入力に指定したテキスト -> --textに指定したテキスト -> --text-filesに指定したファイル、の順になります。

投稿の合計最大数は10になります。

現時点では画像、リンク番号はサポートしていません。

テキスト末尾の改行は無視されます。

  • --separator-prefixオプション指定等で区切り文字列(区切り行)が有効な場合「セクションオプションディレクティブ」機能を使用できます。区切り行の区切り文字列直後の文字に%を記述するといくつかのコマンドラインオプションを指定することができます。
    • これによりコマンドラインで指定しなくても(指定し忘れても)、テキスト(ファイル)にオプションを記述しておくことによってオプション指定ができます。
    • また区切りごとにオプションを変更することができます。たとえば1つ目のセクションのポストはlangsを英語で指定し、2つ目のセクションのポストはlangsを日本語で指定し、3つ目のセクションのポストはlangsをポルトガル語で指定できます。
    • 区切りセクションオプションディレクティブによる指定は、コマンド内での以降のポスト(別セクション、別ファイル、別パラメタ)に引き継がれます。
    • 区切りセクションオプションディレクティブで有効なオプションは以下です。以下以外を指定するとエラーになります。
      • --url <表示モード>
      • --langs '<言語コード>[,...]'
    • 以下は区切りセクションオプションディレクティブの指定例です(区切り文字指定は'########')。
      ########% --langs 'en'
      ######## This post language is English.
      Hello!
      ########% --langs 'ja'
      ######## This post language is Japanese.
      こんにちは!
      ########% --langs 'pt'
      ######## This post language is Portuguese.
      Olá!
      

返信(リプライ)(reply

指定した投稿(ポスト)に対する返信(リプライ)をします。

bsky reply --index <インデックス> [--text '<テキスト>'] [--text-file '<テキストファイルパス>'] [--image<画像番号> <画像ファイルパス> [--alt<画像番号> '<ALTテキスト>']]... [--linkcard-index <リンク番号>] [--url <表示モード>] [--langs '<言語コード>[,...]'] [--preview] [--output-json]

bsky reply --uri <AT-URI> --cid <CID> [--text '<テキスト>'] [--text-file '<テキストファイルパス>'] [--image<画像番号> <画像ファイルパス> [--alt<画像番号> '<ALTテキスト>']]... [--linkcard-index <リンク番号>] [--url <表示モード>] [--langs '<言語コード>[,...]'] [--preview] [--output-json]

  • --index <インデックス>は、timelinefeedコマンド等で表示した投稿の先頭に表示される[ViewIndex:<インデックス>]の値を指定します。これにより返信(リプライ)対象の投稿を指示します。
  • --uri <AT-URI>および--cid <CID>は、timelinefeedコマンド等で--output-idオプションを指定した場合に表示される[uri:<AT-URI>][cid:<CID>]の値を指定します。これにより返信(リプライ)対象の投稿を指示します。
  • --text '<テキスト>'で、投稿(ポスト)するテキストを指定します。空白や改行、エスケープ対象文字がシェルによって解釈されることを防ぐため、シングルクォートで囲むことを推奨します。
    • 標準入力(パイプ/リダイレクト)を指定した場合、このオプションは無視されます。
  • --text-file '<テキストファイルパス>'で、投稿(ポスト)するテキストが記述されているファイルのパスを指定します。単一のファイルのみ指定可能です。
    • 例:--text-file '/path/to/a.txt'
    • 標準入力(パイプ/リダイレクト)を指定した場合、このオプションは無視されます。
  • --image<画像番号> <画像ファイルパス>で、投稿(ポスト)に添付する画像を指定します。最大4つまで指定可能です。
    • <画像番号>は1から4の数字を指定します。省略した場合は1を指定した場合と同じになります。--imageに続けてスペースを空けずに指定してください。
    • <画像ファイルパス>は添付する画像のファイルのパスを指定してください。現時点ではローカルファイルパスのみが指定可能です。
  • --alt<画像番号> '<ALTテキスト>'で、画像に対するALT(代替)テキストを指定します。視覚障害者や低視力者向けに提供する画像の説明文です。
    • <画像番号>--image<画像番号>で指定した画像に対応した1から4の数字を指定します。省略した場合は1を指定した場合と同じになります。--altに続けてスペースを空けずに指定してください。
  • --linkcard-index <リンク番号>で、テキストにリンクURLが含まれる場合のリンクカード表示対象とするリンクURLを指定します。このオプションを省略した場合は<リンク番号>に1が指定されたものとみなします(1番目のリンクURLが対象)。
    • <リンク番号>は数字を指定します。テキスト中に存在する複数のリンクURLのうち、リンクカードの生成対象とする出現順番号を指定します。0を指定した場合はリンクカードを生成しないようにします。
  • --url <表示モード>で、投稿(ポスト)テキスト中に含まれるURLの表示方法を指定します。以下が指定可能です。
<表示モード>に指定する文字列 URL表示方法
omit-tail URLが一定以上の長さの場合、末尾部分を省略する短縮を行います。--urlオプションを指定しない場合のデフォルトになります。
omit-middle URLが一定以上の長さの場合、中間部分を省略する短縮を行います。
full URLを短縮せず指定された通りにします。ただし表示するクライアントによっては短縮表示されます。
  • --langs '<言語コード>[,...]'は投稿(ポスト)に含まれる言語のコード(en、ja、ptなど)を指定します。複数の言語コードの場合はカンマ区切りで列挙指定します。
  • --previewは、実際の投稿(ポスト)を行わず、確認のために投稿(ポスト)内容の表示(プレビュー)のみを行います。
  • --output-jsonは、JSON形式で出力します。API app.bsky.feed.getPostsの応答内容になります。

実行結果として、投稿(ポスト)が表示されます。

--textオプションと--text-fileオプションはいずれか一方のみ指定可能です。

テキストは標準入力(パイプ/リダイレクト/対話式)から指定することが可能です。--textオプション、--text-fileオプション、標準入力(パイプ/リダイレクト)の全てを指定しなかった場合、対話式で入力します。

画像を指定した場合、テキスト中にリンクURLが存在してもリンクカードは生成されません。

テキスト末尾の改行は無視されます。

リポスト(repost

指定した投稿(ポスト)をリポスト(フォロワーへシェア)します。

bsky repost --index <インデックス> [--output-json]

bsky repost --uri <AT-URI> --cid <CID> [--output-json]

  • --index <インデックス>は、timelinefeedコマンド等で表示した投稿の先頭に表示される[ViewIndex:<インデックス>]の値を指定します。これによりリポスト対象の投稿を指示します。
  • --uri <AT-URI>および--cid <CID>は、timelinefeedコマンド等で--output-idオプションを指定した場合に表示される[uri:<AT-URI>][cid:<CID>]の値を指定します。これによりリポスト対象の投稿を指示します。
  • --output-jsonは、JSON形式で出力します。以下の内容になります。--output-idオプションは無視されます。
{
  "repost":<API com.atproto.repo.createRecordの応答内容>,
  "original":<API app.bsky.feed.getPostsの応答内容>
}

実行結果として、リポスト対象の投稿(ポスト)とリポストuri(AT-URI)が表示されます。

引用ポスト(quote

指定した投稿(ポスト)を引用して投稿(ポスト)します。

bsky quote --index <インデックス> [--text '<テキスト>'] [--text-file '<テキストファイルパス>'] [--image<画像番号> <画像ファイルパス> [--alt<画像番号> '<ALTテキスト>']]... [--linkcard-index <リンク番号>] [--url <表示モード>] [--langs '<言語コード>[,...]'] [--preview] [--output-json]

bsky quote --uri <AT-URI> --cid <CID> [--text '<テキスト>'] [--text-file '<テキストファイルパス>'] [--image<画像番号> <画像ファイルパス> [--alt<画像番号> '<ALTテキスト>']]... [--linkcard-index <リンク番号>] [--url <表示モード>] [--langs '<言語コード>[,...]'] [--preview] [--output-json]

  • --index <インデックス>は、timelinefeedコマンド等で表示した投稿の先頭に表示される[ViewIndex:<インデックス>]の値を指定します。これにより引用対象の投稿を指示します。
  • --uri <AT-URI>および--cid <CID>は、timelinefeedコマンド等で--output-idオプションを指定した場合に表示される[uri:<AT-URI>][cid:<CID>]の値を指定します。これにより引用対象の投稿を指示します。
  • --text '<テキスト>'で、投稿(ポスト)するテキストを指定します。空白や改行、エスケープ対象文字がシェルによって解釈されることを防ぐため、シングルクォートで囲むことを推奨します。
    • 標準入力(パイプ/リダイレクト)を指定した場合、このオプションは無視されます。
  • --text-file '<テキストファイルパス>'で、投稿(ポスト)するテキストが記述されているファイルのパスを指定します。単一のファイルのみ指定可能です。
    • 例:--text-file '/path/to/a.txt'
    • 標準入力(パイプ/リダイレクト)を指定した場合、このオプションは無視されます。
  • --image<画像番号> <画像ファイルパス>で、投稿(ポスト)に添付する画像を指定します。最大4つまで指定可能です。
    • <画像番号>は1から4の数字を指定します。省略した場合は1を指定した場合と同じになります。--imageに続けてスペースを空けずに指定してください。
    • <画像ファイルパス>は添付する画像のファイルのパスを指定してください。現時点ではローカルファイルパスのみが指定可能です。
  • --alt<画像番号> '<ALTテキスト>'で、画像に対するALT(代替)テキストを指定します。視覚障害者や低視力者向けに提供する画像の説明文です。
    • <画像番号>--image<画像番号>で指定した画像に対応した1から4の数字を指定します。省略した場合は1を指定した場合と同じになります。--altに続けてスペースを空けずに指定してください。
  • --linkcard-index <リンク番号>で、テキストにリンクURLが含まれる場合のリンクカード表示対象とするリンクURLを指定します。このオプションを省略した場合は<リンク番号>に1が指定されたものとみなします(1番目のリンクURLが対象)。
    • <リンク番号>は数字を指定します。テキスト中に存在する複数のリンクURLのうち、リンクカードの生成対象とする出現順番号を指定します。0を指定した場合はリンクカードを生成しないようにします。
  • --url <表示モード>で、投稿(ポスト)テキスト中に含まれるURLの表示方法を指定します。以下が指定可能です。
<表示モード>に指定する文字列 URL表示方法
omit-tail URLが一定以上の長さの場合、末尾部分を省略する短縮を行います。--urlオプションを指定しない場合のデフォルトになります。
omit-middle URLが一定以上の長さの場合、中間部分を省略する短縮を行います。
full URLを短縮せず指定された通りにします。ただし表示するクライアントによっては短縮表示されます。
  • --langs '<言語コード>[,...]'は投稿(ポスト)に含まれる言語のコード(en、ja、ptなど)を指定します。複数の言語コードの場合はカンマ区切りで列挙指定します。
  • --previewは、実際の投稿(ポスト)を行わず、確認のために投稿(ポスト)内容の表示(プレビュー)のみを行います。
  • --output-jsonは、JSON形式で出力します。API app.bsky.feed.getPostsの応答内容になります。

実行結果として、投稿(ポスト)が表示されます。

--textオプションと--text-fileオプションはいずれか一方のみ指定可能です。

テキストは標準入力(パイプ/リダイレクト/対話式)から指定することが可能です。--textオプション、--text-fileオプション、標準入力(パイプ/リダイレクト)の全てを指定しなかった場合、対話式で入力します。

画像を指定した場合、テキスト中にリンクURLが存在してもリンクカードは生成されません。

テキスト末尾の改行は無視されます。

いいね(ライク)(like

指定した投稿(ポスト)にいいね(ライク)をします。

bsky like --index <インデックス> [--output-json]

bsky like --uri <AT-URI> --cid <CID> [--output-json]

  • --index <インデックス>は、timelinefeedコマンド等で表示した投稿の先頭に表示される[ViewIndex:<インデックス>]の値を指定します。これによりいいね(ライク)対象の投稿を指示します。
  • --uri <AT-URI>および--cid <CID>は、timelinefeedコマンド等で--output-idオプションを指定した場合に表示される[uri:<AT-URI>][cid:<CID>]の値を指定します。これによりいいね(ライク)対象の投稿を指示します。
  • --output-jsonは、JSON形式で出力します。以下の内容になります。
{
  "like":<API com.atproto.repo.createRecordの応答内容>,
  "original":<API app.bsky.feed.getPostsの応答内容>
}

実行結果として、いいね(ライク)対象の投稿(ポスト)とライクuri(AT-URI)が表示されます。

スレッド(リプライ関係投稿)の表示(thread

指定した投稿(ポスト)に関するスレッド(投稿のリプライ先、投稿へのリプライのチェーン)を表示します。

bsky --index <インデックス> [--depth <指定投稿へのリプライの表示最大階層数>] [--parent-height <指定投稿からのリプライ先の表示最大階層数>] [--output-langs] [--output-id] [--output-via] [--output-json]

bsky --uri <AT-URI> [--depth <指定投稿へのリプライの表示最大階層数>] [--parent-height <指定投稿からのリプライ先の表示最大階層数>] [--output-langs] [--output-id] [--output-via] [--output-json]

  • --index <インデックス>は、timelinefeedコマンド等で表示した投稿の先頭に表示される[ViewIndex:<インデックス>]の値を指定します。これによりスレッド表示対象の投稿を指示します。
  • --uri <AT-URI>は、timelinefeedコマンド等で--output-idオプションを指定した場合に表示される[uri:<AT-URI>]の値を指定します。これによりスレッド表示対象の投稿を指示します。
  • --depth <指定投稿へのリプライの表示最大階層数>は、指定した投稿(ポスト)に対するリプライについて、リプライのリプライ…といったチェーン(階層)の表示対象とする最大階層数を指定します。0から1000までの指定が可能です(--depthオプション指定を省略した場合のデフォルトは6)。
  • --parent-height <指定投稿からのリプライ先の表示最大階層数>は、指定した投稿(ポスト)からのリプライ先のさらにリプライ先…といったチェーン(階層)の表示対象とする最大階層数を指定します。0から1000までの指定が可能です(--parent-heightオプション指定を省略した場合のデフォルトは80)。
  • --output-langsは、投稿時に指定された言語情報を併せて表示することを指示します。
  • --output-idは、(AT-)URIやCIDなど内部用の識別情報を併せて表示することを指示します。
  • --output-viaは、投稿に使用されたクライアント(アプリ)の名前を、投稿データ中に情報が存在すれば表示することを指示します(非公式フィールドvia)。
  • --output-jsonは、JSON形式で出力します。API app.bsky.feed.getPostThreadの応答内容になります。--output-langs --output-id --output-viaオプションは無視されます。

実行結果として、指定した投稿を中心とするリプライ関係のスレッドが表示されます。指定した投稿のインデックスを0として、リプライ先方向は負の数で始まるインデックス、投稿へのリプライは正の数で始まるインデックスとなります。投稿へのリプライは複数の場合がありますので、ハイフン区切りで各階層のリプライ数を示すツリー構造となります。

プロフィール表示(profile

指定したユーザのプロフィールを表示します。

bsky profile --actor <ハンドルまたはDID> [--output-id] [--output-json]

bsky profile --handle <ハンドル> [--output-id] [--output-json]

bsky profile --did <DID> [--output-id] [--output-json]

bsky profile [--output-id] [--output-json]

  • --actor--handle--didは、ユーザを指定します。それぞれの違いは、指定可能とするハンドルやDID(ユーザを示す内部ID)の種類が違うだけです。
    • いずれも省略した場合は、ログインしているユーザ自身のプロフィール情報を表示します。
  • --output-idは、(AT-)URIやCIDなど内部用の識別情報を併せて表示することを指示します。
  • --output-jsonは、JSON形式で出力します。API app.bsky.actor.getProfileの応答内容になります。--output-idオプションは無視されます。

ソーシャル表示(social

フォロー・フォロワーなどソーシャル情報を表示します。

bsky social --actor <ハンドルまたはDID> [--follows] [--followers] [--known-followers] [--limit <最大表示件数>] [--next] [--output-id] [--output-json]

bsky social --handle <ハンドル> [--follows] [--followers] [--known-followers] [--limit <最大表示件数>] [--next] [--output-id] [--output-json]

bsky social --did <DID> [--follows] [--followers] [--known-followers] [--limit <最大表示件数>] [--next] [--output-id] [--output-json]

bsky social [--follows] [--followers] [--known-followers] [--limit <最大表示件数>] [--next] [--output-id] [--output-json]

  • --actor--handle--didは、ユーザを指定します。それぞれの違いは、指定可能とするハンドルやDID(ユーザを示す内部ID)の種類が違うだけです。
    • いずれも省略した場合は、ログインしているユーザ自身のソーシャル情報を表示します。
  • --followsは、指定したユーザがフォローしているユーザを表示します。
  • --followersは、指定したユーザをフォローしているユーザ(フォロワー)を表示します。
  • --known-followers、指定したユーザをフォローしているユーザ(フォロワー)を表示します(ログインしているユーザがフォローしているユーザに限定)。
  • --limit <最大表示件数>は、--follows/--followersの表示最大数を指示します(--known-followersは対象外)。指定した数が必ずしも表示されるとは限りません。1から100までの指定が可能です(--limitオプション指定を省略した場合のデフォルトは50)。
  • --nextは、前回socialコマンドで表示した件数の続きを表示することを指示します(--known-followersは対象外)。
  • --output-idは、DIDなど内部用の識別情報を併せて表示することを指示します。
  • --output-jsonは、JSON形式で出力します。API app.bsky.graph.getFollows/app.bsky.graph.getFollowers/app.bsky.graph.getKnownFollowersの応答内容になります。--output-idオプションは無視されます。

bskyコマンド関連情報表示(info

bskyコマンドに関連する情報を表示します。

bsky info <サブコマンド>

<サブコマンド>には、以下の値を指定できます。

<サブコマンド> 表示内容
session セションに関する情報。
ログイン状態、ハンドル、表示インデックスなど。
meta bskyコマンドのメタ情報。
パスやカスタマイズ構成など。

sessionサブコマンド

bsky info session [<表示対象オプション>]

以下の表示対象オプションを指定することにより、指定した対象のみを表示することができます。省略した場合は全ての対象が表示されます。

<表示対象オプション> 表示内容
--all 全対象を表示します。
--which セション情報格納ファイルパスを表示します。
--status ログイン状態を表示します。
--login ログイン日時を表示します。
--refresh 最新のセション識別情報更新日時を表示します。
--handle ログインしているユーザのハンドルを表示します。
--did ログインしているユーザのDIDを表示します。
--index timeline/feed/threadコマンド等の表示インデックス情報(インデックス)を表示します。--output-idオプションを併せて指定すると、インデックスに対応するAT-URIやcid等の内部用識別情報も表示されます。
--cursor timeline/feedコマンド等で--nextオプションを指定してページ送りをする場合のカーソル情報を表示します。
--output-id いくつかの表示対象で内部用識別情報も表示します。
--output-json JSON形式で出力します。他のオプションは無視されます。

metaサブコマンド

bsky info meta [<表示対象オプション>]

以下の表示対象オプションを指定することにより、指定した対象のみを表示することができます。省略した場合は全ての対象が表示されます。

<表示対象オプション> 表示内容
--all 全対象を表示します。
--path 関連ディレクトリやファイルのパス情報を表示します。
--config カスタマイズ情報を表示します。
--profile アクティブ(ログアウトしていない)セションのプロファイル名を表示します。(default)はグローバルオプションでプロファイルオプションを指定しない場合のセションです。
--output-json JSON形式で出力します。他のオプションは無視されます。

サイズ表示(size

指定テキストの文字数を表示します。

bsky size [--text '<テキスト>'] [--text-files '<テキストファイルパス>[:...]'] [--separator-prefix '<区切り文字列>'] [--count-only] [--url <表示モード>] [--output-json]

  • --text '<テキスト>'で、文字数表示の対象とする投稿(ポスト)予定のテキストを指定します。空白や改行、エスケープ対象文字がシェルによって解釈されることを防ぐため、シングルクォートで囲むことを推奨します。
  • --text-files '<テキストファイルパス>[:...]'で、文字数表示の対象とする投稿(ポスト)予定のテキストを含むファイルのパスを指定します。複数のファイルの場合はコロン区切りで列挙指定します。
  • --separator-prefix '<区切り文字列>'は、1つの指定テキスト(--textオプション、--text-filesオプションの1ファイル、標準入力)内で、指定した<区切り文字列>で始まる行(区切り行)を区切りとして投稿(ポスト)を分割します。
    • 区切り行自体は投稿(ポスト)から除外されます。
    • 区切り行において、<区切り文字列>から行末(改行)までは無視(コメント扱い)されます。
    • 区切った単位の内容が改行のみの場合は、その部分は投稿(ポスト)から除外されます。
  • --count-onlyを指定すると、文字数のみを表示します。
  • --url <表示モード>で、投稿(ポスト)テキスト中に含まれるURLの表示方法を指定します。以下が指定可能です。
<表示モード>に指定する文字列 URL表示方法
omit-tail URLが一定以上の長さの場合、末尾部分を省略する短縮を行います。--urlオプションを指定しない場合のデフォルトになります。
omit-middle URLが一定以上の長さの場合、中間部分を省略する短縮を行います。
full URLを短縮せず指定された通りにします。ただし表示するクライアントによっては短縮表示されます。
  • --output-jsonは、JSON形式で出力します。--count-onlyオプションは無視されます。

テキストは標準入力(パイプ/リダイレクト/対話式)から指定することが可能です。--textオプション、--text-filesオプション、標準入力(パイプ/リダイレクト)の全てを指定しなかった場合、対話式で入力します。

標準入力(パイプ/リダイレクト)、--textオプション、--text-filesオプションは同時に指定することが可能です。

テキスト末尾の改行は無視されます。

--count-onlyを指定しない場合、投稿(ポスト)の制限である300文字の超過有無や、テキストファイルパスも表示されます。

ツールアップデート(update

ツール自身を最新バージョンにアップデートします。

bsky update [--skip-confirm] [--leave-updater] [--preview]

  • --skip-confirmは、アップデート実行の最終確認入力待ちをスキップします。
  • --leave-updaterは、ダウンロードしたアップデートファイルをアップデート完了後に削除せず残します。
  • --previewは、アップデートを実行せずにアップデート処理内容表示のみを行います。

コマンドを実行するとGitHubのリポジトリ( https://github.com/bills-appworks/bsky-sh-cli )から最新バージョンのリリースパッケージをダウンロードし、インストーラを実行してセルフアップデートを行います。

アップデート対象(インストール先)は、実行したbskyコマンドが存在するbinディレクトリおよび隣接するlibディレクトリになります。

前回のインストール時にsudoコマンド等でスーパーユーザとしてインストールした場合は、インストール先に対して同じ権限が必要となるため、同様にsudoコマンド等でbsky updateを実行してください。sudoコマンド経由の場合はbskyコマンドに対するPATH環境変数設定が必要になりますので、-iオプションを指定してログイン時の環境変数設定を行うようにしてください。

スーパーユーザでインストールしていた場合:

sudo -i bsky update

一般ユーザでインストールしていた場合:

bsky update

既にインストールが実施されて環境が整備されていることを前提としており、以下のようにいくつかの処理をスキップするオプション(詳細はインストールを参照)を指定して最新バージョンのインストーラを実行します。

install.sh --install-dir <アップデートを実行したbskyコマンドが存在するbinディレクトリの上位ディレクトリ> --skip-config-path --skip-rcfile-copy --skip-confirm

インストーラでインストールしたbskyコマンドではなく、GitHubからクローンしたリポジトリのローカルで利用している場合は、bsky updateコマンドを実行するとローカルリポジトリのファイルが置き換えられるなどバージョン管理が混乱しますの御注意ください。

コマンド一覧ヘルプ表示(help

コマンドの一覧を表示します。

bsky help

bskyコマンドバージョン番号表示(version

bskyコマンドのバージョン番号を表示します。

グローバルオプションで--versionを指定した場合と同じです。

bsky version