このプロジェクトについて
## これは何ですか
Snoopは、オープンソースのデスクトップキーマウス活動記録ツールで、「ローカルファースト」を位置づけています。つまり、すべてのデータはローカルのSQLiteファイルに書き込まれ、READMEにはネットワークへのアップロードは行わないと明記されています。Windows 10/11とmacOS 10.15+をサポートしており、ブランドはFeedraに属し、マスコットは猫です。
このツールは、以下のような日常的な疑問に答えることを目指しています。どのアプリが最も多くの時間を消費しているか、一日のどの時間帯が最も活動的か、キーマウスの活動強度はどのように変化しているか、一週間の作息リズムは主観的な感覚とどれくらい一致しているか。
## プライバシーの境界(READMEで明記)
このツールは、キーマウスの頻度と強度のみを記録し、以下は記録しません。
- キーの具体的なシーケンス(そのため、パスワード、チャット内容、検索語はキャプチャされません)
- クリップボード、スクリーンショット、マイク、カメラ
- ネットワークにアップロードする必要がある内容
データベースの粒度は、「あるアプリが5秒間のスロットでN回キーを叩き、マウスをどれだけ動かしたか」です。キーボードヒートマップは、各キーが押された回数の非シーケンス化されたカウントに基づいており、READMEによると、入力内容を再構築することはできません。
## 主要な機能モジュール
- **概要/今日のスナップショット**:現在のアプリと強度レベルのカード、当日の数字のまとめ、アプリ使用時間のランキング、24時間の時間帯ごとの強度ヒートバー。
- **タイムライン**:泳道式のガントチャートで、各アプリが一行に表示され、横軸は時間、色ブロックはアプリ固有の色です。ホイールによるズーム、ドラッグによるパン、日付の切り替えが可能です。2時間以上の空白区間は、灰色のブロックに圧縮されます。
- **キーボードヒートマップ**:実際のキーボードレイアウトでレンダリングされ、40/60/68/87/98/104などの配列を切り替えることができます。アプリと時間帯でフィルタリングが可能で、キーボード、マウス、トップキーの3つのセクションが連動しています。色はパーセンタイルで分かれており、高頻度のキー(例えばエンターキー)が他のキーを圧倒しないようになっています。
- **洞察/週をまたいだレポート**:一週間のトレンドの棒グラフ、前週比の増減を含むアプリランキング、7×24の作息ヒートグリッド。
- **その他**:トレイ常駐、起動時の自動起動(オフに可能)、ライト/ダークテーマ、無視するアプリのリスト、猫のツッコミのオン/オフと毒舌度の調整、データのワンクリックエクスポートとクリア。
## インストールと実行
Releasesから対応するプラットフォームのインストーラーをダウンロードします。
- Windows:`Snoop_x.y.z_x64-setup.exe`。SmartScreenがブロックした場合は、「詳細情報 → 実行」を選択します。
- macOS Apple Silicon:`Snoop_x.y.z_aarch64.dmg`。macOS Intel:`Snoop_x.y.z_x64.dmg`。
- macOSでは、初回実行時に「システム設定 → プライバシーとセキュリティ → アクセシビリティ」で権限を付与する必要があります。これは、グローバルなキーマウスリスニングに必要です。Gatekeeperがブロックした場合は、右クリックで開きます。
自動更新は組み込まれています。Windowsでは、バックグラウンドでダウンロードされた後、トレイメニューに「再起動してインストール」と表示されます。macOSでは、ダウンロードページを開いて手動で上書きするよう促されます。
## 実装と性能の説明
技術スタックは、Tauri 2 + React 19 + TypeScript + Vite(フロントエンド)です。バックエンドはRustで、rusqliteでストレージ、rdev/Raw Inputでデータ収集を行っています。プラットフォーム固有のコードは`#[cfg]`で分離されています。UIは、カスタムコンポーネントとセマンティックなCSS変数を使用して、ライト/ダークの両方のテーマをサポートしています。
READMEによると、グローバルリスニングはオペレーティングシステムのネイティブチャンネル(WindowsではRaw Input、macOSでは低レベルのイベントチャンネル)で行われます。イベントコールバックはメモリ内でカウントされ、5秒ごとにバッチでデータベースに書き込まれます。日常的なCPU使用率は1%未満です。Windows版は、EACやVanguardなどのアンチチートメカニズムと衝突しないよう、低レベルフックを使用していません。Snoopは、DLLを注入したり、他のプロセスのメモリを読み取ったり、シミュレートされた入力を送信したりしません。
データの保存場所は、Windowsでは`%APPDATA%\org.feedra.snoop\`、macOSでは`~/Library/Application Support/org.feedra.snoop/`です。
## ソースコードからのビルド
Node 22+、Rust stable、および対応するプラットフォームのビルドツールチェーンが必要です。READMEには、Vite 7はNode 20.19+/22.12+を要求し、Node 18を使用すると`crypto.hash is not a function`というエラーが発生して開発サーバーが起動しないことが記載されています。
```bash
npm ci
npm run tauri dev # 開発モード
npm run tauri build # インストーラーの作成
```
Windowsのビルドには、Visual Studio Build Tools(C++デスクトップ開発ワークロード)が必要です。macOSのビルドには、Xcode Command Line Toolsが必要です。パッケージングとリリースプロセスについては、リポジトリ内の`docs/打包与发布.md`を参照してください。
## 既知の制限とライセンス
現時点ではLinuxはサポートされていません。READMEには、これは現在のリリース目標ではないと記載されています。携帯電話やクラウドへの同期はサポートされておらず、これは設計上の選択とされています。
ブランドと著作権はFeedra(© 2026)に属します。コードはオープンソースですが、READMEでは、「Snoop」ブランドとマスコットを同様の製品に使用しないよう求めています。正式なライセンス条項はまだ確定しておらず、`LICENSE`ファイルは後で追加される予定です。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.