informational · 2026 · active
Birds Eye
github.com/keiken-shin/birds-eye
Problem
A scattered external drive is unnavigable in a file explorer: you can't see where the space went, what's duplicated, or what you even have. Cloud indexing tools are a non-starter for personal archives. Birds Eye turns a raw filesystem into a structured, explorable index — entirely offline.
Architecture
- Scanner — parallel Rust filesystem traversal with cancellation and symlink-safe handling, emitting progress events to the UI.
- Index — SQLite schema covering files, folders, scan sessions, extension stats, media rollups, duplicate groups, and scan history. Incremental rescans mark missing files deleted and rebuild projections rather than starting over.
- Deduplication — two scan modes: Smart (progressive XXH3 hashing with parallel refinement, so full hashes are only computed for plausible duplicate candidates) and Metadata Only (fast index, no hashing).
- Frontend — React dashboard in a Tauri shell: canvas-rendered treemap with drilldown, indexed search, largest-files and category rollups, duplicate detail preview.
Decisions
- Index, don't just visualize. The persistent SQLite index is the product; the treemap is one projection of it. This makes rescans incremental and search instant.
- Progressive hashing. Hashing every file to find duplicates is wasted work; size-then-partial-then-full XXH3 refinement touches only candidates.
- Canvas over DOM for the treemap. Tens of thousands of rectangles rule out DOM nodes; a canvas renderer keeps drilldown interactive.
Results
A working offline desktop app: pick a folder, get a live-updating index with treemap exploration, search, rollups, and duplicate candidates — files never leave the machine. The same instinct as Verdant, pointed at a filesystem instead of conversations: raw personal data into navigable structure.