Skip to content

SharpPyxis/SharpPyxis.Liber

Repository files navigation

SharpPyxis.Liber

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.

The idea

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.

How it works

  • 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.

Stack

  • .NET 10, WPF (net10.0-windows).
  • Published as a self-contained single-file win-x64 executable — no runtime to install.
  • Configuration lives in %APPDATA%\SharpPyxis\Liber\ (config.json, tags.json); the executable itself stays alone in its portable root folder.

Structure

  • src/SharpPyxis.Liber/: WPF application (executable name Liber.exe)
  • tests/SharpPyxis.Liber.Tests/: xUnit test project
  • SharpPyxis.Liber.slnx: repository solution

Build

dotnet build .\SharpPyxis.Liber.slnx

Run

dotnet run --project .\src\SharpPyxis.Liber\SharpPyxis.Liber.csproj

Publish (self-contained single file)

A 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-x64

The 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.

License

MIT. Third-party components and their licenses are listed in THIRD-PARTY-NOTICES.md.

About

Lightweight, portable personal document manager for Windows

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages