A lightweight desktop time-tracking app for logging work entries and exporting them as Markdown reports.
Built with Avalonia UI on .NET, TimeReport runs on Windows, Linux, and macOS, and stores all data locally in a SQLite database — no account, server, or network connection required.
- Log time entries with a description, project, start time, and end time
- Browse entries within a day and jump between days
- Export a date range to a formatted Markdown table
- English and Swedish UI, switchable at runtime (Swedish is the default)
- Optional compact view that hides the quick-action button row
- All data stored locally in SQLite — nothing leaves your machine
- .NET 10 SDK (to build or run from source)
- Windows, Linux, or macOS
Windows — download the latest installer from the Releases page and run it. It installs per-user, no admin rights required.
Linux / macOS — download the archive for your platform from the Releases page, extract it, and run the TimeReport binary.
Build from source — clone the repository and run:
dotnet runOr publish a self-contained binary for a specific runtime:
dotnet publish TimeReport.csproj -c Release -r linux-x64 --self-contained true -o publish/linux-x64TimeReport stores its database and settings locally:
- Windows:
%APPDATA%\TimeReport\ - Linux:
~/.config/TimeReport/
This includes TimeReport.db (SQLite database of time entries) and settings.json (language and UI preferences).
Build packages locally on Linux:
./Build-Package.shBuild only the Windows installer payload and NSIS installer:
PACKAGE_RIDS=win-x64 ./Build-Package.shThe generated Windows installer is written to installer/TimeReport_<version>_win-x64_setup.exe and installs per-user under %LOCALAPPDATA%\TimeReport.
GitHub Actions builds the Windows installer automatically when a GitHub release is published, and it can also be run manually with workflow_dispatch.
Workflow file:
.github/workflows/release-windows-installer.yml
The release workflow, Build-Package.sh, and Build-Package.ps1 support optional Authenticode signing when these secrets or environment variables are configured:
WINDOWS_SIGN_PFX_BASE64: base64-encoded PFX certificateWINDOWS_SIGN_PFX_PASSWORD: password for the PFX certificateWINDOWS_SIGN_TIMESTAMP_URL: optional timestamp server URL, defaults tohttp://timestamp.digicert.comWINDOWS_SIGN_URL: optional product URL embedded in the signature
For local Linux builds, install osslsigncode before enabling signing.
If the signing secrets are not configured, the workflow still builds and uploads an unsigned installer.
MIT — see LICENSE.