your timesheet, written for you.

lowkey is a Dynamic Island for your laptop. It notices which client you're working on, lets Gemma 4 running on your own machine turn it into invoice-ready lines, and sends nothing anywhere.

open source · MITGemma 4 via Ollamano account, no cloud
the film

lowkey in 99 seconds.

The island, the model writing your day, review, and the bill. Sound on.

how it works

three steps, all on your laptop.

If you bill by the hour, your timesheet is a guess. lowkey turns it into receipts.

1

it notices

Every 5 seconds lowkey notes the app and window title in front of you, into a plain file on your disk. No screenshots, no keystrokes.

idle, private windows and "go dark" are never recorded
2

Gemma writes the line

Every 5 minutes, Gemma 4 on your own GPU reads those titles and picks the client from your list, so it can't invent one. Then it writes the invoice line.

~0.46 s per label on an RTX 4050 laptop GPU
3

you bill it

Each session becomes a card. Approve it, fix it, or say nah. Only what you approve reaches the invoice, as a PDF or CSV.

"why?" shows the exact windows behind every line
live demo

the real dashboard, in your browser.

Not a video and not a mock-up: it's lowkey's own dashboard and its own Python, running inside this browser tab on a made-up freelancer's week. Nothing you click leaves the tab.

  • bill or "nah" sessions, and edit their lines
  • tap why? to see the windows behind a line
  • log missed time by clicking a gap in the day
  • send the bill as a receipt-style invoice
open the live demo
lowkey's dashboard: the day's earnings, a timeline of client blocks, and session cards to review
the details

small things, done right.

the island tucked away, as a pill on hover, and fully open

an island, not an app window

A notch at the edge of your screen, glowing in your client's colour. Hover and it opens: who you're working for, this session, what you've earned today.

a nudge when you drift, and one-tap progress when you move on

it keeps you on track, gently

Say what you're working on. Drift to YouTube for 8 minutes and you get one quiet nudge, at most three an hour, never over a fullscreen movie.

click a gap in your day and say what it was

log what it couldn't see

A phone call or a meeting shows up as a gap in your day. Click it, type "call with nimbus", and it's billed like any other session.

the creature's nine moods

every client gets a creature

A little blob in the client's colour that follows your cursor, blinks, falls asleep when you walk away, and morphs when you switch clients.

privacy

0 bytes of your screen leave your laptop.

localhost onlyThe dashboard binds to 127.0.0.1 and refuses requests from other sites.
one network calllowkey talks only to Ollama on your own machine. No accounts, no telemetry.
plain filesYour activity is plain JSONL on your disk. Open it, edit it, delete it.
read every lineMIT-licensed, standard library for the core. See exactly what watches you.
install

three commands.

Python 3.10+ and Ollama. The model is about 4.6 GB and runs on a 6 GB laptop GPU, or on CPU, more slowly.

1 · get the model
ollama pull gemma4:e2b
2 · get lowkey
git clone https://github.com/nirajkhetre/lowkey
cd lowkey
pip install -r requirements.txt
3 · run it
python -m lowkey --demo   # try it
python -m lowkey          # for real

Daily use is on Windows 11. The macOS and Linux trackers are covered by tests but haven't run on real hardware yet. Reports are welcome.