About this project
## What this is
Snoop is an open-source desktop keyboard and mouse activity logging tool positioned as local-first: all data is written to a single SQLite file on the local machine, and the README explicitly states that nothing is uploaded to the network. It supports Windows 10/11 and macOS 10.15+. The brand belongs to Feedra, and the mascot is a cat.
Its goal is to answer a few everyday questions: which apps take up the most time, which parts of the day are the most active, how the keyboard and mouse activity intensity curve changes, and how much a week's routine pattern differs from your subjective impression.
## Privacy boundaries (explicitly stated in the README)
The tool records only the frequency and intensity of keyboard and mouse activity. It does not record:
- the specific key-value sequences of keystrokes (so passwords, chat content and search terms are not captured)
- the clipboard, screenshots, microphone or camera
- anything that would need to be uploaded to the network
The granularity in the database is how many times an app was typed into and how many pixels the mouse moved within a given 5-second interval. The keyboard heatmap is based on de-sequenced counts of how many times each key position was pressed, which per the README makes it impossible to reconstruct input content.
## Main feature modules
- Overview / today's snapshot: a status card for the current app and intensity bucket, a numeric overview of the day, a ranking of app usage time, and a 24-hour intensity heat strip.
- Timeline: a swimlane-style Gantt chart with one row per app, time on the horizontal axis and color blocks using a fixed color per app; it supports scroll-wheel zoom, drag-to-pan and date switching; blank intervals longer than 2 hours are compressed into gray blocks.
- Keyboard heatmap: rendered according to a real keyboard layout, with 40/60/68/87/98/104 and other layouts built in and switchable; it can be filtered by app and by time period; the keyboard, mouse and top-keys sections are linked; coloring uses quantile buckets so that high-frequency keys such as Enter do not overwhelm the others.
- Insights / cross-week report: a weekly trend bar chart, an app ranking with week-over-week changes, and a 7×24 routine heat grid.
- Other: a persistent tray icon, launch at startup (can be disabled), light and dark themes, an ignore-app list, a cat-snark toggle with an adjustable venom level, and one-click data export and clearing.
## Installation and running
Download the installer for your platform from Releases:
- Windows: Snoop_x.y.z_x64-setup.exe; if SmartScreen blocks it, choose More info → Run anyway.
- macOS Apple Silicon: Snoop_x.y.z_aarch64.dmg; macOS Intel: Snoop_x.y.z_x64.dmg.
- On macOS, the first run requires authorization in System Settings → Privacy & Security → Accessibility for global keyboard and mouse monitoring; if Gatekeeper blocks it the first time, you can right-click to open.
Automatic updates are built in: on Windows it downloads in the background and then shows Restart to install in the tray menu; on macOS it prompts you to open the download page and overwrite manually.
## Implementation and performance notes
The stack is Tauri 2 + React 19 + TypeScript + Vite (frontend), with Rust as the backend, using rusqlite for storage, rdev/Raw Input for capture, and platform-specific code isolated with #[cfg]. The UI is built from in-house components plus semantic CSS variables to implement the dual light/dark theming.
The README states that global monitoring goes through native operating system channels (Raw Input on Windows, a low-level event channel on macOS), that event callbacks only count in memory, that data is written to the database in batches every 5 seconds, and that everyday CPU usage stays below 1%. The Windows version deliberately avoids low-level hooks to prevent conflicts with anti-cheat mechanisms such as EAC and Vanguard; Snoop does not inject DLLs, does not read other processes' memory and does not send simulated input.
Data locations: %APPDATA%\org.feedra.snoop\ on Windows and ~/Library/Application Support/org.feedra.snoop/ on macOS.
## Building from source
Node 22+, Rust stable and the build toolchain for the relevant platform are required. The README notes that Vite 7 requires Node 20.19+/22.12+, and that using Node 18 causes crypto.hash is not a function, which prevents the dev server from starting.
npm ci
npm run tauri dev # development mode
npm run tauri build # produce an installer
Windows builds require Visual Studio Build Tools (the Desktop development with C++ workload), and macOS builds require Xcode Command Line Tools. The packaging and release workflow is described in docs/打包与发布.md in the repository.
## Known limitations and license
Linux is not supported for now, and the README states this is not a current release target. Syncing to phone or cloud is not supported, which the author describes as a design choice.
Brand and copyright belong to Feedra (© 2026). The code is open source, but the README asks that the Snoop brand and mascot not be used for similar products. The formal license terms have not yet been settled, and the LICENSE file is still to be added.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.