A Windows file browser with whole-PC search built on the NTFS master file table, recursive folder
sizes shown the way file sizes are, tabs and split panes, and a fully themed interface.
Moves, renames and deletes are undoable, and deleting holds items aside rather than erasing them.
README
bertbrowser
An offline Windows 10/11 file browser built for my personal preferences.
Offline - BertBrowser does not connect to the Internet except a startup check against GitHub Releases for app updates.
Fast global search - MFT indexing and USN journal tracking for fastest possible performance.
Directory sizes — Show total size on directories, just like files.
Split panes with tabs - Infinite pane splitting and tabs per pane.
Themes - Rich theming system, with many pre-loaded themes.
git clone https://github.com/robgwalsh/bertbrowser.git
cd bertbrowser
dotnet build bertbrowser.sln # build
dotnet test bertbrowser.sln # run tests
dotnet run --project src/BertBrowser.App # launch
dotnet run --project src/BertBrowser.App -- C:\Some\Dir # launch at a specific folder
Note that warnings are treated as errors across the solution (Directory.Build.props), so a clean build is a warning-free build.
See docs/build-and-release.md for packaging, the tag-driven release workflow, and how updates reach installed copies.
Data locations
What
Where
Size-cache + search-index database
%USERPROFILE%\.bertbrowser\bertbrowser.db
Window/session settings
%USERPROFILE%\.bertbrowser\settings.json
Delete the folder to reset the app completely.
Project layout
src/BertBrowser.Core — everything testable and UI-free: SQLite persistence and migrations, path canonicalization, search-index and directory-size services.
src/BertBrowser.App — the WPF shell (MVVM via CommunityToolkit.Mvvm, DI via Microsoft.Extensions.DependencyInjection).
tests/BertBrowser.Core.Tests — xUnit tests for Core; they run against real temp SQLite databases and directory trees.
See CLAUDE.md for a deeper architecture walkthrough (path-key invariants, migrations, the size-scan algorithm).