Skip to content

Linux time tracker that works on Wayland and ends at the invoice

BillNotch is a native Linux time tracker that installs as a .deb, .rpm or .AppImage, records the active window on X11 and on Wayland under KDE and the wlroots compositors, and never takes a screenshot. On GNOME Wayland it reads app names only. It sorts the captured hours into client projects and turns them into a PDF invoice with an optional payment link. Ubuntu, Fedora, Arch, KDE, Sway, all one download.

.deb · .rpm · .AppImage

Start tracking free14 days, no card. Pro is $9/mo, less than one billable hour.

Why Linux is where this category thins out

Line up the trackers that record your work without a timer and most of them stop at Windows and macOS. Per their sites, Toggl no longer ships a Linux desktop app, and Timely and Rize are Windows and macOS only. Memtime ships one, but as an X11-only AppImage that says nothing about Wayland. On the open-source side, ActivityWatch does not invoice and Kimai tracks by hand, per their sites. So the Linux user who bills by the hour ends up gluing two tools together.

BillNotch is one desktop app compiled for all three platforms in the same release. The hours it captures on Fedora or Ubuntu land on the same PDF invoice as everyone else’s, and the tracker core’s tests run on Linux, Windows and macOS in continuous integration. There is no reduced Linux build and no waiting list.

There is a second reason the list is short. A lot of Linux trackers are hobby projects that stalled: the download link rots, the last release predates your desktop, and the issue tracker fills with Wayland reports nobody answers. TimeCamp’s own Ubuntu roundup says it plainly, that these tools get abandoned or left as unmaintained source. A commercial app you can hold to a release cadence is its own feature here.

It is also a genuinely native app. The tracker is a small Rust core in a Tauri shell, not a bundled copy of Chromium, and the Linux AppImage is roughly 81 MB.

Install the Linux time tracker

Every release publishes three Linux packages, built from the same source. Pick the one that matches your distribution.

.deb

Debian, Ubuntu, Linux Mint, Pop!_OS

Install it through your package manager or a double-click in the software centre. It updates when a new .deb lands, on your package-manager schedule, not the app’s.

.rpm

Fedora, openSUSE, RHEL derivatives

Same story on the Red Hat side: install the .rpm, and future versions arrive as new packages you pull down. No in-app updater runs.

.AppImage

Any distribution, no install

Mark it executable and run it, nothing touches the system. This is the only channel that updates itself: the AppImage checks for a newer build and replaces itself in place.

The AppImage is a direct download, always the current stable build: BillNotch-linux.AppImage (roughly 81 MB). Mark it executable and run it. The .deb and .rpm are published with each tagged release, and the AppImage is the only channel that updates itself.

One Linux-specific thing to know before you close the window: the app lives in the system tray, using the AppIndicator or StatusNotifier host your desktop provides. On desktops that run one (KDE, and GNOME with the AppIndicator extension) it keeps tracking after you close the window. Where no tray host exists, closing the window quits the app, so leave it open. If idle detection matters to you, avoid the Snap build of anything similar: strict Snap confinement blocks the D-Bus screensaver call that idle detection needs. The .deb, .rpm and .AppImage are not confined and do not have that problem.

X11 and Wayland support, compositor by compositor

This is the question that decides whether a Linux tracker is any use to you, so here is the specific answer rather than a checkbox. On X11 the active window is readable and capture simply works. On Wayland it depends on your compositor, because Wayland deliberately does not let one application read another’s window by default. BillNotch speaks the wlr-foreign-toplevel protocol, which covers the whole wlroots family plus KDE’s KWin. On an X11 session the active window is always readable; on GNOME Wayland, which answers no such protocol, the app records app names only.

Wayland was designed so one application cannot snoop on the windows around it, which is good for security and awkward for an honest tracker that only wants a title. The fix the ecosystem settled on is an explicit protocol a compositor can choose to implement. The wlroots compositors implement it, KWin implements it, and Mutter has decided not to.

Session / compositorWindow titlesApp namesIdle detectionNotes
X11 (any desktop)YesYesYesThe universal fallback. Works on GNOME, KDE, XFCE, Cinnamon, anything running an X server.
KDE Plasma, KWin (Wayland)YesYesYesKWin answers the wlr-foreign-toplevel protocol, so capture is complete.
Sway (Wayland)YesYesYeswlroots compositor. Titles read directly.
Hyprland (Wayland)YesYesYeswlroots, with Hyprland’s own IPC as a second source.
river (Wayland)YesYesYeswlroots compositor.
Wayfire (Wayland)YesYesYeswlroots compositor.
labwc (Wayland)YesYesYeswlroots compositor.
GNOME, Mutter (Wayland)NoYesYesMutter exposes no title protocol. You get the app name and a banner. Use an Xorg session or the browser extension.

GNOME on Wayland is the one real gap, and it is worth stating plainly rather than hiding in a footnote. Mutter answers neither the wlr protocol nor an XWayland fallback, so on a stock GNOME Wayland session BillNotch cannot read window titles. It does not record a silent zero: each entry degrades to the bare app name, and the app raises a banner telling you capture is degraded. Your two ways out are to pick an “Xorg” or “X11” session from the login-screen gear menu, if your distribution still ships one, or to let the browser extension cover the web side of your work by domain. Wayland is a wall every automatic tracker on Linux hits, not a BillNotch quirk.

What it records, and what it never does

The tracker reads the active window’s title, the application name and the timestamps around each interval. That is the whole capture. There is no screen recording, no keystroke logging, no webcam, no GPS, and the browser companion reports domains only, never a full URL or a page title unless you opt in. If you want the argument in full, the case against screenshots sets out why a title beats a picture for billing.

Window titles can be sensitive, so you decide how much of one ever leaves the machine. Three sync modes control it:

An unmatched title that reaches the server is compared against your own confirmed history by a local embedder that runs on our servers and calls no outside service. Only genuinely novel activity can reach a language model, and only when you ask for AI suggestions on the review screen, never in the upload path; titles are never sold or used to train models. The privacy policy writes down exactly this.

Two companions widen the same log without widening what is captured. The browser extension reports the domain of your active tab, github.com or figma.com, never the full URL or the page title unless you turn that on, which is how web work on a GNOME Wayland session still gets categorized. And a read-only Google or Microsoft calendar connection turns your meetings into suggested entries, so an hour spent away from the keyboard is not an hour lost.

Where the API key is kept

You connect the desktop app to your account with a key you issue and can revoke. On Linux that key goes into the Secret Service, GNOME Keyring or KWallet, whichever your desktop provides, and on a session without one, into the kernel keyring instead. It is never written to a dotfile, an environment variable or a config directory, and there is no plaintext fallback to fall back to.

From active windows to an invoice

Capture is half the job. As the app records, a keyword matcher runs on your own machine against your own project list and stamps a project when it is confident above a set threshold. Anything it is unsure of waits for you as a draft on the Review screen in the dashboard, rather than being guessed at and quietly billed.

None of this depends on staying online. Every captured interval is written to a local SQLite file first and uploaded in batches once the network is back, and the uploads are idempotent, so a dropped connection or a reboot mid-sync can never bill the same hour twice. When you stop touching the machine the interval closes, so lunch, a phone call and an hour in a meeting room do not quietly accumulate against whatever window happened to be open.

You confirm the day’s suggestions, billable status is inherited per project, and the running billable total adds itself up. A client and a date range become a PDF invoice with a Stripe payment link on your own connected account, and the same hours can push straight into QuickBooks or Xero. The whole path, capture to paid, the invoicing side covers in detail.

How it compares to other Linux time trackers

The tools a Linux user actually weighs, side by side on the things that decide it. Where a rival’s Linux behaviour is not something we could confirm, the cell says so rather than guessing.

FeatureBillNotchMemtimeClockifyToggl TrackActivityWatch
Native package formats.deb, .rpm, .AppImage.AppImage only.deb, .rpm, .AppImageNone (desktop deprecated)Native, open source
Wayland window titlesYes (wlroots + KWin)No (X11 only)Not verifiedNo native desktopPartial, compositor-dependent
Automatic active-window captureYesYesLimited on LinuxWindows and macOS onlyYes
InvoicingYes, PDFNo (export or sync)Yes, Standard tierNoNo
Price$9/mo Pro, $12/seat Team$18/user/moFree; Basic $3.99/seatFree; Starter $9/seatFree, open source
ScreenshotsNeverNoYes, Pro tierNoNo

Competitor package formats, platform support, features and prices are per each vendor’s own site and docs, checked Sep 5, 2026, on annual billing where a discount applies; these change often, so confirm before you commit. Per their sites, Clockify’s free plan covers up to five users and gates invoicing to its Standard tier, Toggl’s free plan also covers up to five with no native invoicing, and ActivityWatch is free and open source.

Memtime is the closest rival on capture. It also records the foreground program passively and markets Linux hard, with a page of its own that runs past 1,700 words. Two things separate it. It is X11 only, with no Wayland claim anywhere on that page, and it does not invoice: it exports your time to a billing tool you run somewhere else. At $18 per user a month it is also the priciest passive tracker in this table. BillNotch reads Wayland titles across the whole wlroots family and raises the invoice itself.

For seeing where your hours go without billing, ActivityWatch is free and open source, per its site. For the lowest price, Clockify and the open-source options cost less. On Linux, BillNotch pairs automatic capture with invoicing, which the rest of the field splits apart. The full Linux roundup works through the whole field, commercial and open source, including Kimai and Solidtime.

What it will not do on Linux

The honest list, because a page that only lists strengths is not much use when you are deciding.

And it is hosted software, not a self-hosted binary that emits PDFs on its own. The desktop app tracks; the invoicing lives in the BillNotch dashboard. For part of this audience that is the whole conversation, and if it is yours, Kimai in the roundup above is the self-hosted answer. The broader picture of how the automatic capture behaves across platforms holds for Linux too.

Common questions

Does BillNotch work on Wayland?
Yes, on most Wayland compositors. It reads the active window through the wlr-foreign-toplevel protocol, which covers Sway, Hyprland, river, Wayfire, labwc and KDE Plasma’s KWin. The one exception is GNOME’s Mutter, which exposes no title protocol, so a GNOME Wayland session falls back to the bare app name.
Does it work on Ubuntu 24.04 with GNOME?
Window titles do not capture on Ubuntu’s default GNOME Wayland session, because Mutter hides them from other apps. On GNOME Wayland the app records app names only. Log into an X11 session from the login-screen gear menu, or use the browser extension for web work, which captures domains only.
Is there an AppImage?
Yes. BillNotch ships a .deb for Debian, Ubuntu and Mint, a .rpm for Fedora and openSUSE, and an .AppImage that runs on any distribution. The AppImage is also the only channel that updates itself; the .deb and .rpm update through your package manager on the next release.
Does it take screenshots on Linux?
No. There is no screen-capture code in the app and no permission for it on Linux. It reads the active window’s title and the application name, nothing that is on screen. The macOS Screen Recording prompt some people mention is Apple’s requirement for reading window titles, and it does not exist on Linux.
Can I keep window titles off the server?
Yes. Set the sync mode to LocalOnly and raw window titles never leave your machine. The default Smart mode redacts matched titles to the project keyword before upload; Full mode sends them unchanged. Keyword matching runs on the device and the similarity check runs on our own servers with a local embedder; only genuinely novel activity can reach a language model, and only when you ask for AI suggestions on the review screen, never in the upload path. Titles are never sold or used to train models, and the privacy policy has the full detail.
Is BillNotch open source?
No. The desktop tracker is a native Tauri app built in Rust, but the code is not published and BillNotch is hosted commercial software. If open source is a hard requirement on Linux, ActivityWatch and Kimai are the honest picks, and the roundup below weighs both against BillNotch in detail.
Which Linux time tracker has invoicing?
Very few. Memtime exports or syncs rather than invoicing, and ActivityWatch, per its site, reports without billing. Kimai, per its site, invoices but tracks time by hand. BillNotch is the one here that captures the active window automatically on Linux and turns the billable hours into a PDF invoice with an optional payment link, inside the same account.
What is the best open-source software for time tracking?
On Linux the honest open-source picks are ActivityWatch, which records activity automatically but reports rather than bills, and Kimai, which invoices but needs manual time entry. BillNotch is not open source, but it is the option here that captures the active window automatically and turns the hours into an invoice.
Is Clockify really free?
Clockify keeps a free plan, but since June 2026 it caps at five users and moves invoicing, exports and billable rates to paid tiers. It ships a native Linux app. For automatic capture rather than a manual timer, and for built-in invoicing, it is no longer the free option it once was.
What is the best free software for time tracking?
For a free manual timer, Clockify’s free plan and ActivityWatch, which is open source and automatic but does not bill, are the common Linux picks. Neither invoices for free. BillNotch is paid but bundles automatic capture and invoicing from $9 a month, which the free tools leave you to stitch together.

Linux was never the second-class platform here

Install the .deb, .rpm or .AppImage, work a normal day, and you will see whether capture reads your session and the hours reach an invoice. A 14-day trial, no card. If you would rather read first, the best time tracking software for Linux compares the whole field, and pricing lists both plans.

Start tracking free