Hata's Blog

ブックマークをサボり時間に消化するCLIツール作った

LLM の推論待ち時間が多くなった。LLM に仕事を任せて効率化できた時間は、積極的にサボりたいと思っている。

そのサボり時間に積んでた Chrome のブックマークをなんとなく読むためのツールを作った。LLM の SKILL とかで書けそうだけど、まあ手を動かしたかったので。

GitHub - sho-hata/nibble: A CLI tool that randomly surfaces forgotten Chrome bookmarks.A CLI tool that randomly surfaces forgotten Chrome bookmarks. - sho-hata/nibble
favicon of https://github.com/sho-hata/nibblegithub.com
ogp of https://opengraph.githubassets.com/828467ea26c2141ef7e1f98fc432f91ab45d28c0fce3b59dec012628fcb011ef/sho-hata/nibble

なぜ作ったか

気になったり良いと思ったページはとりあえずブックマークするのだが、積み上がる一方で能動的に見返すことはほぼないんですよね。たまにブックマークを整理するときに「これ良かったな」という記事が出てきたりして、大掃除中に昔の漫画を読み始めるアレがよくある。

そこで、ブックマークをランダムにサジェストしてくれて、サクッと読めるものが欲しくて作った。「nibble」は「少しずつかじる」みたいな意味があり、つまみ食いするツールみたいなイメージ。

できること

  • Chrome のブックマークからランダムに数件提示してくれる
  • 読みたい記事をそのままブラウザで開く
  • 「もう見ないな」と思った記事はその場でブックマークから削除できる

使い方

npx @sho-hata/nibble
nibble

コマンドを実行すると、以下のようにブックマークされているWebページがランダムに表示され、選択してブラウザで開いたりブックマークを削除したりできる。実際の様子は README の GIF をみて欲しい。

  Some article you saved example.com
     A tool you meant to try github.com
     That blog post from last year note.com
     ...
 
j/k: move  d: remove from bookmarks  o: open in browser  Enter: confirm

この仕組みはとくに Chrome の API を呼び出しているわけではなく、Chrome がローカルに書き込むブックマークファイルの中身を読み込んでいるだけ。 Mac の場合は ~/Library/Application Support/Google/Chrome/Default/Bookmarks に存在する。ブックマークの削除機能は、このブックマークファイルを上書きすることで実現している。 そのため、Chrome が起動中に削除を行うと、Chrome 終了時に上書きされる場合がパターンがあるので、牧歌的な挙動になっているのだけれど、まあ自分しか使わないのでいいかなと。

蛇足

CLI の 挙動を README に載せたくて、GIFをどうやって作るか迷っていたのだけれど、https://github.com/asciinema/asciinema というターミナルのレコーディングツールで録画して GIF に変換するのがとても捗った。 有名なやつらしいが自分は初めて知った。これからお世話になると思う。

x(Twitter)にポスト
Profile
Shoki Hata

決済領域のソフトウェアエンジニア。週末はコーヒー豆を焙煎しています。