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.

← work · home