Visual search through git history. Type a word, see every commit where it appears, in messages, in code, and in file paths.
A desktop application. One executable, nothing to install and nothing left
behind: the local server and the interface are embedded in the binary, and the
WebView2 profile lives under %LOCALAPPDATA%\Scrute rather than beside the
file.
Grab Scrute.exe from the releases
and run it. WebView2 ships with Windows 11 and recent Windows 10, so there is
no runtime to install.
Building from source:
scrute build release build
scrute dist build, verify, and place the binary in dist\
scrute list every task
Or directly:
cargo build --release --target x86_64-pc-windows-msvc
The MSVC target matters: build.rs locates the Windows SDK resource compiler
to embed the icon and version metadata. Without it the build still succeeds,
the executable just carries the default icon, which is why
tools/verify_release.ps1 gates every build in CI.
| Syntax | Example | Effect |
|---|---|---|
word1 word2 |
login bug |
AND, both must match |
word1 OR word2 |
login OR docs |
OR, either matches |
NOT word |
login NOT bug |
Exclusion |
-word |
login -bug |
Exclusion, shorter form |
"exact phrase" |
"bug fixed" |
Literal phrase |
Every dimension is case insensitive.
Three dimensions, merged into one timeline:
- Commit messages, through
git log --grep - Code changes, through
git log -G, so a word added or removed in a diff is found even when no message mentions it - File paths, through
git log --name-only
Each commit in the timeline is a dot. Matching dots light up, coloured by which dimension matched. Clicking a result expands the full message, the file list, and the diff hunks that actually contain the term.
src/main.rs window, local server, routes
src/git.rs git invocation with a timeout
src/search.rs query parsing, boolean combination, the three dimensions
templates/ index.html, the whole interface
icons/ master .ico plus the derived window and interface icons
tools/ icon generation, release verification
The window comes from winit and wry, the layer Tauri is built on, used
without the framework. That keeps a single executable and no JavaScript
toolchain. Rendering goes through WebView2.
The server binds loopback only. The API takes a repository path as a parameter, so binding every interface would let anyone on the network read git history from this machine.
scrute check fmt, clippy and tests, the same gates as CI
scrute dev debug build, launched with the console attached
scrute release 0.5.0 bump the version, run every gate, build, tag
See CONTRIBUTING.md.
MIT. See LICENSE.