Liber is a lightweight, portable personal document manager for Windows. It stores everything in a single flat folder and encodes metadata directly in the file name through a small naming convention, so documents stay findable without a database, a cloud service, or any external dependency.
Classic folder hierarchies break down for cross-cutting documents: an insurance contract belongs to "insurance", "finance" and "car" at the same time. Liber drops the hierarchy and instead names files with a date prefix, bracketed tags and a free description:
2024-03-15 - identity, passport - renewal.pdf
2025-01-10 - contract, insurance, car - macif renewal.pdf
The name is human-readable, sortable in Explorer, grep-able, and parseable by the app. Liber's job is to make capturing and searching these files effortless.
- Runs from the system tray; left-click opens search, right-click opens the menu.
- Drop a file on the executable (or "Save as" into the watched inbox) and a tagging window appears automatically, pre-filled when the file is already in Liber format.
- Search filters by a small tag algebra (
a + b,a * b,!a, parentheses), description keywords and file type, and renders tags as rounded coloured chips. - A bulk-import assistant reintegrates existing files in batches, detecting dates from file names.
- Confidential documents are kept in a local waiting area excluded from search by default. Encryption at rest (e.g. a OneDrive Personal Vault) is planned as an optional, per-profile configured target.
See Liber-spec.md (product _workspace) for the full specification.
- .NET 10, WPF (
net10.0-windows). - Published as a self-contained single-file
win-x64executable — no runtime to install. - Configuration lives in
%APPDATA%\SharpPyxis\Liber\(config.json,tags.json); the executable itself stays alone in its portable root folder.
src/SharpPyxis.Liber/: WPF application (executable nameLiber.exe)tests/SharpPyxis.Liber.Tests/: xUnit test projectSharpPyxis.Liber.slnx: repository solution
dotnet build .\SharpPyxis.Liber.slnxdotnet run --project .\src\SharpPyxis.Liber\SharpPyxis.Liber.csprojA publish profile bundles everything into one Liber.exe — no .NET runtime to install on the
target machine, which suits handing builds to beta testers.
dotnet publish .\src\SharpPyxis.Liber\SharpPyxis.Liber.csproj -p:PublishProfile=win-x64The executable lands in src\SharpPyxis.Liber\bin\publish\win-x64\Liber.exe. Because it is
self-contained (the whole .NET + WPF runtime is embedded), it is a sizeable file (~65 MB with
single-file compression) rather than a tiny one — that is the cost of "no runtime to install".
Distribute Liber.exe alone; the accompanying .pdb is optional debug symbols.
For manual end-to-end verification (provisioning, registry, desktop shortcut) without polluting
bin/, publish into sandbox/ and run from there.
MIT. Third-party components and their licenses are listed in
THIRD-PARTY-NOTICES.md.