Claude Codeを使っていると、Philosophising...みたいな文字が出て、最初は「おっ哲学をやってるんだな、いいことだ」とか思っていたけど、だんだん、ランダムに出てるだけだと気づいていた。
最近、spinnerVerbsをカスタマイズすることができるようになっている。
appendすると追加、replaceで全部置き換え。
Claude Code settings - Claude Code Docs
{"mode": "append", "verbs": ["Pondering", "Crafting"]}何が出てきたらおもしろくて便利だろうかと考えていたところ、自分が過去にいいなと思った文章が流れてきたらいいだろうと思った。
Kindleでハイライトした文章がふとしたきっかけに現れると、その当時の記憶が蘇るかもしれないし、今は違う考えかもしれない。
こんな感じで、技術的な相談をしていると、発酵菌と酵素のちがいが突然表示される。

実現
Kindleからハイライトデータをどうやって取り出すかが課題で、アプリからは1冊ずつ指定してハイライトをエクスポートすることができる。ただ、そうやってちまちま集めるのは手間なので、ブラウザから取り出すことにした。
前提として、Kindleのハイライトはブラウザからアクセス可能で、このURLで閲覧できる。
https://read.amazon.co.jp/notebook
ここからJavaScriptでハイライトの文言を抜き出してJSONとしてダウンロードし、それを~/.claude/settings.jsonに切り貼りすることで、Spinner Verbsとして利用できる。
ユーザーにJavaScriptのコード片を提示し、お手数ですがこれをコンソールでこれを実行してください、という乱暴な作りになっている。
Chrome拡張で連携することもできるけど、Amazonのドメインで自動操作されるのは嫌だろうと思ってコード手動実行にした。
本当に自動化したかったら、定期的にブラウザを自動操作して、自動的にsettings.jsonに埋め込むことで、セレンディピティに全振りする流れも考えられる。
工夫としては、長すぎると見てられないのでターミナルで1行で表示できるような短い物を選ぶ、とか、1冊から1個ずつ選ぶことでいろんな本との偶然の出会いを重視する、といったことをしている。
最初に有史以来のハイライトを全部抜き出してみたら3MBになってしまい、settings.jsonのうち99%がハイライトという形になってしまった。
おそらくここに長文を入れることが想定されていないのか、2行になると、ハイライトのアニメーションによってレンダリングがおかしくなってしまうのだけど、世界中の人がここに長文を放り込んで遊ぶことで、そのうちissueが立って直してもらえるだろうとは思う。
個人的には、たぶんすぐ飽きて、使うのを数日以内にやめるとは思うのだけど、Gistに置いておいたので使ってみたいという人はどうぞ。
claude-code-kindle-highlights-spinner · GitHub