Windrecorder - 画面上のあらゆるものを巻き戻して検索できるオープンソースのWindowsアプリ
(tonoko.notion.site)- Windrecorderは、Windowsの画面記録をローカルに蓄積し、あとから巻き戻し・検索できるオープンソースアプリで、Rewind/Copilot Recallの代替に近い個人向け記憶ツール
- 画面はffmpegまたは一定間隔の連続スクリーンショットで15分単位の断片ファイルとして保存され、WindowsのローカルOCR APIと画像埋め込みでインデックス化される
- ローカルWeb UIでは、ウィンドウタイトル、テキストキーワード、画像説明から過去の画面を探せるほか、特定のプログラムや画面領域を記録から除外できる
- データ処理はクラウドを使わずユーザーのコンピューター上だけで行われ、Pythonベースなので構造を確認・修正しやすい一方、性能は遅くなる可能性がある
- 現在の保存先は暗号化されていないローカル構造で、LLM機能は限定的であり、日次のタイトル概要と検索が実質的な利用範囲
画面記録と巻き戻し検索
- Windrecorderは、ユーザーが見たもののあとから見つけにくいWebページ、動画、チャットメッセージなどの情報を再発見するための個人向け画面記憶ツール
- 主な着想元はMacアプリのRewindとBlack Mirror S1E3「The Entire History of You」
- 画面記録の方式はシンプル
- ffmpegまたは一定間隔の連続スクリーンショットを使用
- 画面を15分単位の断片ファイルとして保存
- WindowsのローカルOCR APIと画像埋め込みで記録をインデックス化
- ユーザーは記録しないプログラムや画面範囲を指定できる
- ローカルWeb UIでは、次の手がかりで過去の画面を巻き戻して検索できる
- ウィンドウタイトル
- テキストキーワード
- 画像説明
- 付加機能として、日別・周期別の画面使用時間、日次サマリー、月間ライトボックス生成が含まれる
ローカルファースト設計と現在の限界
- すべての処理はユーザーのコンピューター上だけで行われ、クラウド保存やサブスクリプションを前提としない
- Pythonで複数の機能をつなぎ合わせて作られた構造のため、内部動作が透明で、ユーザーが自分で修正しやすい
- その代わり、性能が遅くなる可能性がある
- 開発者は専門の開発者ではなく、個人的な関心と利用目的からこのツールを作った
- しばらく使ったうえで、十分に成熟し堅牢だと判断した
- Issueの報告、議論、コントリビューションを歓迎している
- 現在の欠点も明確
- データストアが透明で暗号化されていない
- ユーザーは構造化されたローカルデータを自由に活用できるが、保護にも注意する必要がある
- LLM機能は大きく組み込まれていない
- 現在のLLM機能は、ユーザーの意図に応じたAPI呼び出しの判断と検索結果の調整に主に限定されている
- すべてのデータを直接理解・分析・想起し、ユーザーの意図に応じて行動する段階にはまだ至っていない
- 現在提供されている日次のタイトル概要と検索機能が、Windrecorderで実現可能な範囲
1件のコメント
Hacker News の意見
ほぼ20年前にすでに似たものを作っており、過去の特定時点まで巻き戻して、そこから実行を再開する機能まで含まれていた
http://www.cs.columbia.edu/~orenl/papers/sosp07-dejaview.pdf
DejaView はデスクトップ利用体験全体を記録し、再生・探索・検索・復元できる個人用の仮想コンピューター記録機で、画面出力、アプリケーション/ファイルシステム状態のチェックポイント、文脈付きの表示テキストをまとめて保存し、インデックス化していた
アプリケーション、ウィンドウシステム、OSカーネルを変更せずに、ディスプレイ/OS/ファイルシステムの仮想化を組み合わせ、実際のデスクトップアプリでユーザーが体感する性能低下なしに連続記録と対話的な検索/再生が可能だという結果を示していた
macOS 向けに似たオープンソースプロジェクトもある
https://rem.ing
https://github.com/jasonjmcghee/rem
開発者が3か月前に HN に投稿していて、なかなか良い議論もあった
https://news.ycombinator.com/item?id=38787892
MIT ライセンスで、Rust 製のクロスプラットフォーム版 https://github.com/jasonjmcghee/xrem も始めたが、まだ初期段階なのでさらに多くの助けが必要
貢献したいが Swift はまったく分からず、自分が作ったものは全部 launchd で動かす bash スクリプトだった
こういうものを作ると面白そうだ。Meta Smart Glasses が2秒ごとに写真を撮り、画像をクラウドサーバーに送り、OCR と物体検出/ラベリングを実行したうえで、過去を検索したり会話したりできるアプリを提供するという方式
そうすれば LLM に「財布をどこに置いたっけ?」「昨日レストランで会計したあとクレジットカードを返してもらった?」「今日、娘の新しいTシャツには何と書いてあった?」といったことを聞ける
ここに音声録音と文字起こしまで加われば、会議で決まった締め切り、公園で会った人の電話番号、今日会った投資家の名前も聞けるし、電話までアクセスして相手の発言を文字起こし・インデックス化できればさらに良い
Black Mirror の「The Entire History of You」エピソードを思い出す: https://en.wikipedia.org/wiki/The_Entire_History_of_You
すでに予約購入した
OCR の代わりに、あるいは OCR と併用してアクセシビリティ APIを使ってこういうものを作った人がいるのか気になる
アクセシビリティ API からテキストを直接取得できるのに、全部 OCR するのは無駄に見える
LLM を UI につなぐ良い方法にもなり得るし、こうしたツールが学習データを集める手段にもなり得る
Microsoft Office が独自ウィジェットをレンダリングしていた問題は、ウィジェットやボタンのテキストを OCR で読んでラベルを把握する形で解決していた
思ったよりずっと頻繁にこういう方式が必要になる。開発者は期待を裏切って、用意された API を使わないことが多い
アプリによっては重要なデータを落としたり、誤って実装していたりする。アクセシビリティは簡単だと思っていたが、実際には OCR のほうが簡単な場合が多かった
このアプローチが本当に有効なら、Microsoft や Apple が、すべてを記憶してユーザーの知識を支援する Copilot の一部として OS に標準搭載するだろうと考えた
自分が作った画面履歴はここで紹介されているアプリほど高度ではなく、自分でも使っていなかった
Notion で「JavaScript must be enabled in order to use Notion」と「Please enable JavaScript to continue」というブロック画面が出るが、NoScript を使っていると、このブロック方式のせいで実際にはサイトで JavaScript を有効にできない
静的ページにリダイレクトしないでほしい。そのページにはケースごとに許可すべき JavaScript がなく、リダイレクトが速すぎてメインページで JavaScript を有効にする機会もない
notion.so 自体だけを許可しても、このブロックは回避できない
HTML が JavaScript なしのリダイレクトを許可していることも意外
Windows には TimeSnapper もあります。オープンソースではありませんが、開発者は時々 Hacker News にいます。
https://timesnapper.com/
https://www.manictime.com/
こうしたプロジェクトをいくつか覚えています。最初に見たのは 2014 年の Savant Recall で、YC に採択されずオープンソースとして公開されました。
その後、Napster 共同創業者の Ritter が引き取り、Atlas Recall に改名し、新しい UI を付け、2,000 万ドルの投資を受けました。
ところが 1 年後に突然終了し、LinkedIn には「Xinova に買収」と書かれています。ほかに聞いたものとしては、2019 年の Apse がありました。
元の Savant ソースである可能性があるリポジトリ: https://bitbucket.org/theluxury/savant/src/master/
その後 Atlas Recall がどのように動作していたかを示す動画群: https://www.youtube.com/@atlasinformatics3316/videos
https://www.geekwire.com/2021/invention-network-company-xino...
https://apse.io/ とかなり似ているように見えます。こちらも OCR で画面上で見たすべてのものを検索可能なインデックスにします。
windrecorder は オープンソース である点が気に入っています。
GitHub README によると、動画は 年間 100〜200GB 程度なので、それほど悪くありません。
「なぜこういうアプリがないのだろう?」というアイデアがあるなら、このように自分でうまく実装してしまうことは、みんなに刺激を与えます。
クラウド保存を強制されずに済むのでありがたく、これはおそらく近いうちに有料顧客をやめる人間としての発言です。