Blueskyクライアントシェルを作った


Bluesky のリストをバルク処理したかったので、APIをコールするクライアントをBashで作りました。

https://github.com/taikii/bsky-sh

最初にコマンドを実行したときにハンドルとAppパスワードを要求されます。Appパスワードは https://bsky.app/settings/app-passwords から生成してね。 refleshJwt~/.bskysession に保存され、以降ログイン操作は必要としません。 ~/.bskysession は秘匿にしてね。

ユーザを切り替えたいときは ./bsky.sh login します。

機能は色々足らないですけど、タブ区切りで出てくるから cut コマンドで必要なフィールドだけにして流し込むとかできます。

本当はmattnさんの https://github.com/mattn/bsky にリスト系のコマンドを追加するPRだしたかったんですけど、あまりgo-langに明るくないのでできる範囲でつくっちゃった。

BlueskyはAPIもその ドキュメント も充実してるので、ありがたいですね。楽しい。しかも、今日 連語を組めるようになった そうで、さらには 500万人も達成 したそうなので、これからどうなっていくのか、ますます楽しみです。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
./bsky.sh login

./bsky.sh refresh-session

./bsky.sh profile [HANDLE]
  did handle displayName description

./bsky.sh search-user QUERY
  did handle displayName description

./bsky.sh follows [HANDLE]
  did handle displayName description

./bsky.sh followers [HANDLE]
  did handle displayName description

./bsky.sh lists [HANDLE]
    uri collection name

./bsky.sh list LIST_URI
    rkey did handle displayName description

./bsky.sh addmember LIST_URI USER_DID
USER_DIDs | ./bsky.sh addmember LIST_URI

./bsky.sh delmember LIST_URI USER_DID
USER_DIDs | ./bsky.sh delmember LIST_URI

./bsky.sh delmember-rkey LIST_MEMBER_RKEY 
LIST_MEMBER_RKEYs | ./bsky.sh delmember_rkey

./bsky.sh feed FEED_URI
  uri createdAt handle text

./bsky.sh list-feed LIST_URI
  uri createdAt handle text

./bsky.sh user-feed HANDLE
  uri createdAt handle text

./bsky.sh post TEXT
TEXT | ./bsky.sh post