早寝

早寝早起きです

【2026最新】MuseでLINEを使う方法【メッセージ確認/送信】

MuseにLINEを読ませるには

MuseにはLINEの連携機能がない

Museは個人的に使っているAIエージェントで、毎朝の予定確認などを任せています。

予定確認の情報源は

  • Googleカレンダー
  • Gmail
  • Teams(学校の連絡)
  • Moodle(課題の締切)
  • Discord

と揃ってきたのですが、私的な予定が入っているLINEだけがどうしても繋げませんでした。

というのも、MuseにはLINE用のコネクタが用意されておらず、メッセージ連携で使えるのもWhatsAppだけだったりするんですよね。

そこで、非公式な方法を使ってLINEを読めるようにします。

今回はその方法を説明します。

コマンドを打つのはエージェントのほう

  • どんな指示を投げればいいのか
  • 補足(技術詳細)

の2つに分けて書きます。技術詳細は「エージェントが裏で何をしているのか知りたい人」向けです。読まなくても大丈夫です。

全部非公式な方法ですので、自己責任でお願いします。

どんな指示を投げればいいのか

1. コピペ用指示文

公式ルートが全部ダメだったので、非公式のCLIツールを使うことにしました。

https://github.com/kongesque/line-cli

非公式のCLIツール「line-cli」を使ってLINEに接続してください。導入とログインをお願いします。(https://github.com/kongesque/line-cli)

VMが置き換わっても、LINEのセッションが消えないようにしてください。セッションの保存先を、VMが置き換わっても残る場所にしてください。

ここからはエージェントが作業してくれます。

人間の出番はログインのときだけです。

  • エージェントからログイン用QRコードの画像が送られてくるので、スマホのLINEで読み取る
  • 読み取り後、認証番号(6桁)が伝えられるので、すぐにスマホへ入力する

認証番号の有効時間はかなり短いです。伝えられたら即入力するくらいでちょうどいいです。

QRコードも約5分で失効するので、スマホを手元に用意してから始めてもらうのがおすすめです。

2. (お好みで) 運用の指示を出す

最後に、使い方を決めて伝えます。

毎朝の予定確認に、LINEも含めてください。読み取り専用で確認するだけで、送信やリアクションはしないでください。

私の場合は、毎朝7時の「今日の予定」と、16時の「明日の予定」の確認にLINEも混ぜてもらっています。

※読んでも既読は付かない

CLIでメッセージを読んでも既読は付きません。

ドキュメントにも明記されていますし、ソースを確認しても、既読を送る処理 SendChatCheckedはライブラリ内にあるだけで、どのコマンドからも呼ばれていませんでした。

相手に「既読」が表示されることも、スマホ側の未読が消えることもありません。地味にありがたい仕様です。

指示まとめ

投げる指示はこれだけです。

非公式のCLIツール「line-cli」を使ってLINEに接続してください。導入とログインをお願いします。(https://github.com/kongesque/line-cli)

VMが置き換わっても、LINEのセッションが消えないようにしてください。セッションの保存先を、VMが置き換わっても残る場所にしてください。

補足(技術詳細)

ここからは、エージェントが裏で何をしていたのかの補足です。(ここからはMuse君に書いてもらった)

なぜChrome拡張機能がダメだったのか

Museが操作するブラウザはChromium系で、公式のChrome版LINEは入りませんでした。

  • ウェブストアのボタンが「Chrome に追加」のまま変わらない(「Chrome に切り替えてください」という案内が出る)
  • 拡張機能のページを直接開いても ERR_BLOCKED_BY_CLIENT でブロックされる

そもそもインストールの時点でできませんでした。

なぜVM内のChromeもダメだったのか

VMにGoogle Chrome本体を入れ、拡張機能のファイル(CRX)も公式の配布元から取得して検証まではできました。

が、Chromeからどのページも開けません。ログを調べると、VMの出口プロキシがChromeからの通信にだけ 403(policy_denied)を返していました。

curlやpythonからの通信は普通に通り、LINEのサーバーにも届きます。ChromeやLINEの問題ではなくVM側のポリシーの問題で、内側からは解除できませんでした。

line-cliについて

https://github.com/kongesque/line-cli

BeeperのLINE実装が元になった非公式CLIで、Chrome版LINEと同じ方式で接続します。Letter Sealing(E2EE)にも対応しています。

動作には gnome-keyring と libsecret-tools が必要でした。

主なコマンドはこのあたりです。

line login
line auth status
line chats --json --details
line messages "会話名" --json --limit 20

ログインはQRコード方式で、端末に表示されたQRを画像化して送ってもらい、スマホで読み取りました。端末の幅が足りないとQRが表示できない、といった細かい詰まりどころもありました。

Chrome版LINEとは併用できない

Chrome方式のセッション枠は1つだけです。

line-cliでログインするとその枠を使うため、Chrome拡張機能版のLINEとは併用できません。私の場合は拡張機能版がどのみち使えなかったので実害なしでした。

セッションの仕組みと、消えないようにする方法

line-cliのセッションは次の2点セットでできています。

  • 暗号化されたセッションファイル session.enc(保存先は XDG_CONFIG_HOME/line-cli/)
  • その復号鍵(Secret Serviceに保存され、実体は XDG_DATA_HOME/keyrings/login.keyring)

初期状態ではこの2つがVMの置き換わりで消える場所に置かれていたため、セッションが失われました。

対策は、ラッパースクリプトで次の2つを設定し、保存先を永続領域に向けることです。

export XDG_CONFIG_HOME=/永続化したい場所/state/config
export XDG_DATA_HOME=/永続化したい場所/state/data

この状態でログインし直すと、セッションが最初から残る場所に保存されます。ダミーのセッションで検証してから本番のログインをやり直しました。

定期バックアップ方式にしなかった理由は、アクセストークンの更新のたびにリフレッシュトークンが差し替わり、session.enc自体が書き換わるからです。古いコピーを戻すとかえって使えなくなる可能性があるので、「コピーする」のではなく「最初から残る場所に置く」ほうが安全でした。

それでも、LINE側からセッションを無効化された場合(別のChrome版LINEでログインするなど)だけは、どの方法でも再ログインが必要です。

おわりに

  • MuseにLINEの公式連携はないので、方法は全部非公式
  • 読むだけなら既読は付かない

お疲れさまでした!

【旧Twitter】Xのブックマークを一括エクスポート&ローカル管理する方法

Twitterのブックマークを一括エクスポート・ダウンロードするには

Twitterのブックマークは使い勝手が悪い

Twitterのブックマークは

  • 過去のブクマになるほど取り出せない
  • 検索機能が弱い
  • 読み込みに時間がかかる

と、あまり使い勝手の良いものではありません。

そこで、ブックマークをすべてローカルPCにダウンロード(エクスポート)して、好きに閲覧・管理できるようにしたいですよね。

今回はその方法を説明します。

標準機能でエクスポートは提供されていない

Twitterの標準機能としてブックマークのエクスポートは用意されていません。

そこで、非公式な方法を使用してブックマークをエクスポートする必要があります。

作業手順

簡単に作業手順を説明します。

  1. PCを用意

  2. ChromeにTampermonkeyという拡張機能を追加

  3. prinss/twitter-web-exporterをTampermonkeyにインストール

  4. ChromeでTwitterを開き、手動でブックマークを最後までスクロールする

  5. スクロール中、ブックマークを自動で記録してくれるので、最後にjsonでダウンロード

  6. メディア(画像は動画)はaria2で高速ダウンロード

7.あとはお好みでフォルダ整理なりEagleで閲覧なり自由に

実際にやってみよう

1. PCを用意

スマホだと不可能なのでPCを用意してください。PCがない人は諦めてください。

2. ChromeにTampermonkeyを追加

Tampermonkeyは任意のユーザースクリプト(javascript)を実行できる拡張機能です。

これ自体は決して怪しい拡張機能ではありませんが、インストールするスクリプトに対しての安全性までは保障されていないので自己責任でお願いします。

chromewebstore.google.com

3. prinss/twitter-web-exporterをTampermonkeyにインストール

このサイトからスクリプトを取得します

github.com

下にスクロールして...

開いた先のページで「インストール」をクリック

3-2. 拡張機能の権限設定

chrome://extensions/

↑これをChromeのアドレスバーに張り付けてenterしてください

もしくは

ここからChromeの拡張機能の設定を開いてください。

さっき入れたTampermonkeyの「詳細」より

「ユーザースクリプトを許可する」にチェックを入れてください。

4. ChromeでTwitterを開き、手動でブックマークを最後までスクロールする

そしたらTwitterを開き、画像のようなUIが新規に表示されていれば成功です

次に、「ブックマーク」を開き、最も古いブックマークまでスクロールします。

マウスのミドルボタンをクリックすると自動でスクロールしてくれるので便利です。

5. エクスポート

ここから

上のほうのチェックを入れるとすべての項目が選択されるので、選ぶor全部選択(お好みで)

5-2. データエクスポート

この「データをエクスポート」をクリックすると、json形式でブックマークをダウンロードできます。

これには投稿文テキストや投稿者アカウント名、画像リンクなども含まれます。

5-3. メディアエクスポート

ブックマークの画像や動画をエクスポートしたい場合はこちらの方法を利用してください。

「エクスポート開始」でダウンロードするのが一般的かと思われます。

【補足】めっちゃ大量にある場合

大量の画像動画があり、それをダウンロードしたい場合はこちらの方法をおすすめします。(少し高度な作業になります)

  1. コマンドプロンプトを開く

  2. 以下のコマンドを実行し。 aria2を導入

winget install -e --id aria2.aria2
  1. media-urls.txtを取得

以下の画像の「URLをコピー」の右隣のアイコンをクリック

  1. aria2で大量DL

実行場所に注意してください。

aria2c -i media-urls.txt -j 16 -x 16 -s 16 --min-split-size=1M -c

Zed for Educationの申請方法について / 申請できない場合の対処法

はじめに

RUST製の次世代エディタであるZed Editorですが、一年間有効の学割が発表されました。

zed.dev

Zed Editorとは

Zed EditorはRust製の高速なコードエディタです。軽量でありながら強力な機能を備えており、めっちゃ高速&低いメモリ使用量です。

まだあまり使っていませんが、様々なAI Providerを利用できるようなのでエディタ移行の敷居も低そうですね。

ほかにも標準搭載の共同編集機能を利用すれば、同じエディタ内でチームメンバーと一緒にコードを書くことができるらしいです。 VScodeのLiveShareみたいな感じでしょうか。

また、オープンソースプロジェクトとしても開発されており、だれでも開発に貢献できます。

Zed for Educationの特典について

Zed for Educationは、現在大学に在籍している学生であれば誰でも申請可能です。 このプログラムでは、通常月額10ドルで提供されているZed Proのすべての機能を1年間無料で利用できます!

Zed Proに含まれる機能

  • 月額10ドル相当のAIトークンクレジット
  • 無制限の編集予測機能(無料版は月2000回だったはず)
  • 共同編集機能

AIクレジットを使い切った後も、自分のAPIキーを使用したり、外部エージェントを追加したりすることで、AI機能を継続して利用できるそうです。さらに、Google Geminiは対象の学生に無料クレジットを提供し、OpenRouterはクレジットカード不要で複数の無料モデルにアクセス可能です。GitHub Copilotの無料版についても、認証済みの学生であれば無料アクセスが可能とのことです。

申請方法

もし、学校のメールアドレスを入力する部分でエラーが出た場合は、この後の対処法を読んでください。

  1. Zed公式サイトの学生向けページにアクセス&ログイン

zed.dev

  1. Apply right nowをクリック

  2. 学校のメアドなどを入力

  3. 完了

メールアドレスを入力する部分でエラーが出た場合

以下のgithub リポジトリにアクセス

github.com

どっかしらに forkというボタンがある(右上らへん)ので、それを押して自分のgithubアカウントにforkしてください。

その後、forkしたほうのリポジトリをgit cloneしてください。

ここでは、tarou@g.hogehoge.ac.jpという架空のメアドを例に説明します。

自分のメアドに置き換えてください。サブドメインは無視してOKです。

自分のPC上で以下のコマンドを実行

git clone https://github.com/自分のgithub垢名/swot.git

すると swotというフォルダーができるので、

swot/lib/domains/jp/ac/

というフォルダーを見つけてください。

その後、そのフォルダーの中に

hogehoge.txt

というテキストファイルを作成してください。

ここで、`tarou@g.hogehoge.ac.jp`の`hogehoge`がtxtファイル名になっていることに注意してください。

テキストファイルを開き、自分の大学の英語名を書き込んで保存してください。

commitして本体のswotリポジトリにプルリクエストを送ってそれが承認されれば完了です!

承認された後数時間しないと反映されないっぽいです