misskey – matoken's blog https://matoken.org/blog Is there no plan B? Tue, 26 Mar 2024 22:17:42 +0000 ja hourly 1 https://wordpress.org/?v=6.9 https://matoken.org/blog/wp-content/uploads/2025/03/cropped-1865f695c4eecc844385acef2f078255036adccd42c254580ea3844543ab56d9-32x32.jpeg misskey – matoken's blog https://matoken.org/blog 32 32 misskey-cli で Misskey を読み書き https://matoken.org/blog/2024/03/27/read-and-write-misskey-with-misskey-cli/ https://matoken.org/blog/2024/03/27/read-and-write-misskey-with-misskey-cli/#respond Tue, 26 Mar 2024 22:17:40 +0000 https://matoken.org/blog/?p=4002

Misskey クライアントの sayaka ちゃんは sixel で画像が表示できとても便利ですが,投稿ができません.

Terminal から投稿もしたいので他の cli クライアントの misskey-cli を試してみました.

早速導入します.
今回 go install で導入しましたが, Releases に各種環境向けのバイナリも用意されています.自分の環境にあったバイナリをダウンロードして実行権を付与してあげれば簡単に利用できます.hash や 署名は無さそうです.

install
$ go install github.com/mikuta0407/misskey-cli@latest
$ ~/go/bin/misskey-cli
misskey-cli  Misskey CLI Client

Usage:
  misskey-cli [command]

Available Commands:
  help        Help about any command
  note        Create/Reply/Delete note
  renote      Renote note by noteId
  stream      streaming timeline
  tl          Show timelime (local/home/global)
  version     Show version and build revision.

Flags:
      --config string     config file (default "/home/matoken/.config/misskey-cli.toml")
  -h, --help              help for misskey-cli
  -i, --instance string   connect instance name(not host name)
  -t, --toggle            Help message for toggle

Use "misskey-cli [command] --help" for more information about a command.
$ misskey-cli version
misskey-cli  version:

設定ファイルを用意します.
~/.config/misskey-cli.toml を作成します.host は Misskey の url ,name は任意の名前,token は Misskey の「設定」→「API」→「アクセストークンの発行」から発行したものを使います.
複数の Misskey を登録できます.以下は2つの Misskey を登録しました.実行時に一番上の設定がデフォルトになるのでよく使う Misskey を一番上にするといいです.

$ vi ~/.config/misskey-cli.toml
$ cat ~/.config/misskey-cli.toml
[[Instance]]
  host = "https://msky.ospn.jp/"
  name = "OSPN"
  token = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
[[Instance]]
  host = "https://misskey.io/"
  name = "misskey.io"
  token = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

早速使ってみます.

misskey-cli をで note や 閲覧
$ misskey-cli note 'misskey-cli から note
https://github.com/mikuta0407/misskey-cli'
misskey-cli  Create Note: @ (https://msky.ospn.jp/)
===============================================================================================================================================================================================================================================
Note Success! id : 9rcgksz5uzfb00f6
"misskey-cli から note
https://github.com/mikuta0407/misskey-cli"
$ misskey-cli tl -l1
misskey-cli  Timeline: local  @ (https://msky.ospn.jp/)
===============================================================================================================================================================================================================================================
2024/03/27 06:33:58 matoken(@matoken)    misskey-cli から note
https://github.com/mikuta0407/misskey-cli (9rcgksz5uzfb00f6)

複数のインスタンスを登録している場合は -i name (name は設定の tolm の name )で任意のインスタンスを指定できます.

$ misskey-cli -i misskey.io stream
misskey-cli  Stream: local  @ (https://misskey.io/)
===============================================================================================================================================================================================================================================
2024/03/27 06:59:02 Connected to server
  :

その他詳細は README.md に日本語で書かれています.

とりあえず一通りのことはできそうです.

環境
$ misskey-cli version
misskey-cli  version:
$ ls ~/go/pkg/mod/github.com/mikuta0407/
misskey-cli@v0.0.0-20230730142608-ab80e8e6583c
$ dpkg-query -W golang
golang:armhf    2:1.19~1
$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 12 (bookworm)
Release:        12
Codename:       bookworm
$ arch
aarch64
]]>
https://matoken.org/blog/2024/03/27/read-and-write-misskey-with-misskey-cli/feed/ 0
misskey クライアント sayaka ちゃん https://matoken.org/blog/2023/10/31/sayaka-chang_which_supports_misskey/ https://matoken.org/blog/2023/10/31/sayaka-chang_which_supports_misskey/#comments Tue, 31 Oct 2023 10:28:22 +0000 https://matoken.org/blog/?p=3921

「twitter クライアント sayaka ちゃん」が,「misskey クライアント sayaka ちゃん」 になっていたので試してみました.

sayaka ちゃんはターミナルに特化したクライアントで,SIXEL にも対応しているのでアイコンや画像つきでタイムラインを流すことができて便利です.
以前はTwitter クライアントですが,3.7.0 (2023/10/09) からTwitter への接続機能を廃止してMisskey 対応開始したようです.(–record などで保存していたファイルを –play で再生することはできる.※要configure option )

メール購読していたISSUE でsite 見に行って気づきました.

早速build します.

$ git clone https://github.com/isaki68k/sayaka
$ cd sayaka
$ sudo apt install libbsd-dev libwebp-dev libgif-dev libwslay1 libwslay-dev libmbedtls-dev libssl-dev bmake build-essential
$ ./configure
$ bmake -DRELEASE sayaka
$ install src/sayaka ~/bin/
$ sayaka
sayaka: No command option specified.
usage: sayaka [<options>...]
   command option:
        --local <server> : show <server>'s local timeline.
        --play : read JSON from stdin.
   other options:
        --color <n> : color mode { 2 .. 256 or x68k }. default 256.
        --font <width>x<height> : font size. default 7x14
        --full-url : display full URL even if the URL is abbreviated. (twitter)
        --light / --dark : Use light/dark theme. (default: auto detect)
        --no-color : disable all text color sequences
        --no-image : force disable (SIXEL) images.
        --force-sixel : force enable SIXEL images.
        --jis / --eucjp : Set output encoding.
        --progress: show startup progress (for very slow machines).
        --protect : don't display protected user's tweet. (twitter)
        --record <file> : record JSON to file.
        --record-all <file> : record all received JSON to file.
        --timeout-image <msec>
        --version
        --x68k : preset options for x68k (with SIXEL kernel).

        -4 / -6                         --ciphers <ciphers>
        --debug       <0-2>             --debug-format
        --debug-http  <0-2>             --debug-image <0-1>
        --debug-sixel <0-2>             --debug-show  <0-2>
        --mathalpha                     --no-combine
        --max-cont <n>                  --max-image-cols <n>
        --ormode <on|off> (default off) --palette <on|off> (default on)
Note
Linux 環境だとmake(GNU Make)ではなくbmake(bsd make) を使います.

現在は指定したMisskey サーバのローカルタイムラインの表示ができます.認証などは必要ありません.Misskey サーバについては以下のページを参考にすると良さそうです.

$ sayaka --local <servername>

動作確認には流量の多い misskey.io が良さそう.

$ sayaka --local misskey.io
Tip
サーバに https:// を付けるとホスト名の解決に失敗します
$ sayaka --local https://misskey.yukineko.me/
Ready...mbedtls_net_connect_nonblock https:443 - NET - Failed to get an IP address for the given hostname
sayaka: WebSocket connection failed
Tip
ローカルタイムラインを無効にしているサーバだと何も流れてきません.
$ sayaka --local misskey.yukineko.me
Ready...Connected

大量に流れてきます :)

misskey.io htl

NSFW画像は既定値ではぼかされます.表示したい場合は --show-nsfw オプションを付けると表示されます.
CW 投稿は既定値では展開されません.表示したいときは --show-cw オプションを付けると表示されます.

$ sayaka --show-nsfw --show-cw --local misskey.io

画像が表示されない場合は端末がSIXEL に対応しているか確認しましょう.そういえば最近は Microsoft Visual Studio Code も対応しているようです.(要設定変更※未検証)

laptop なんかでサスペンドしたりネットワークが切れると終了するので無限ループの中に入れたり.

$ while true; do sayaka --show-cw --show-nsfw --local nijimiss.moe --local misskey.io ; sleep 30; done
環境
$ sayaka --version
sayaka version 3.7.2 (2023/10/19)
$ dpkg-query -W libbsd-dev libwebp-dev libgif-dev libwslay1 libwslay-dev libmbedtls-dev libssl-dev bmake build-essential
bmake   20200710-16
build-essential 12.10
libbsd-dev:amd64        0.11.7-4
libgif-dev:amd64        5.2.1-2.5
libmbedtls-dev:amd64    2.28.5-1
libssl-dev:amd64        3.0.12-1
libwebp-dev:amd64       1.3.2-0.3
libwslay-dev:amd64      1.1.1-4
libwslay1:amd64 1.1.1-4
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux trixie/sid
Release:        n/a
Codename:       trixie
$ arch
x86_64
]]>
https://matoken.org/blog/2023/10/31/sayaka-chang_which_supports_misskey/feed/ 1