Skip to content
Joh Flow흐름
Joh · consistency tracking

A tracker that tells the truth about your time.

Track wake and sleep, workouts, small goals, and what you actually do on the computer — screen time block by block. Data is a single SQLite file you own. Use the app or the terminal; both read and write the same data, so mix them freely.
Two ways to use it

Click things, or type things.

The app has five tabs — Today, Screen time, Week, Progress, Wins. The terminal has short commands for the same data. Both write to one SQLite file, so you can log a set from the keyboard and read the week back in the app.

The whole habit takes about ten seconds a day.

the daily habit — ~10 seconds
# right when you get up
joh wake 8am          # or 730, 19:15, 7.30 — it figures it out
joh plank 95         # or run a live timer, press Enter when you drop
joh workout push day  # what you did — or "no" for a rest day
joh sleep             # heading to bed
Five tabs

Your day, your week, your wins.

Today

Wake and sleep, plank, workout, a session timer, today's goals, a win box, and today's screen time at a glance.

Screen time

Your day block by block, like phone screen time. Arrow through any past day; toggle Show every switch to see even the five-second ones.

Week

7, 14 or 21 days as stacked bars — screen, offline, sleep — on one shared scale. Whether distraction is trending up or down.

Progress

Streak, plank best, workouts, average wake, focus vs distraction. A 12-week heatmap, time-split bars, and how long things take you.

Wins

Completed goals with their full numbers — the rate, the elapsed days, and what the distraction actually cost — then everything else worth remembering.

Small goals

Time anything with a start and a stop — a language unit, a chapter — and learn your own average. joh start reading joh stop.

joh timeline
21:05–21:10  Editor · project      5m  ////  typing hard
21:10–21:14  Video site           4m  /...  just watching
21:15–21:21  away from the machine 5m  ....  away
Screen tracking

Two hours working, or two hours open?

A background service samples the focused window every five seconds and records the app, the window title, a category, and how much you were actually typing and clicking. That's what separates real work from an editor left open in the background.

  • //// typing hard — sustained typing
  • ///. working — working, with pauses
  • //.. scrolling — consuming, little typing
  • /... just watching — barely touching it

Only input counts are stored — which keys you pressed is never read. Browser pages are tracked from the window title, so sites show up by name without touching your history.

Goals — the point of the Wins page

What did it actually cost?

A goal is anything with a start and a finish — a book, a course, a project. Two friction points only: start and finish. Joh does the rest.

When you finish, the Wins page shows the rate, the elapsed days, and what the distraction actually cost in your own units.

joh goal done "a book"
A book               2026-03-08 → 2026-03-27
TOOK    FOCUSED   PAGES
20d     5h 16m    320
61 pages/hour · 16.0 pages/day

Distracted in that window: 29h 54m
That's 5.7× the time you gave the goal itself.
At your own pace that was worth ~1812 more pages
— about 5.7× this goal again.
Your data

One SQLite file. You own it.

Everything lives in data/joh.db — back it up by copying that one file. A background service (joh-trackd) starts automatically at login. A day runs 4am to 4am, so a 1am session belongs to the day it started.

  • App or terminal — same data, mix freely
  • Unattended time never counts as screen time
  • Offline gaps fill themselves from your wake/sleep log

Honest note: history only accrues forward. Earlier days can't be reconstructed, because nothing recorded them at the time.

install & run
# start the tracker (auto-starts at login after)
systemctl --user start joh-trackd
systemctl --user status joh-trackd

# today at a glance
joh
joh timeline      # every block of the day, in order
joh week          # last 7 days as a table
joh report        # full dashboard in the browser

Stop guessing where the day went.

Joh is a personal tool, built for one user — you. It runs on your own Linux machine, watches only your focused window, and keeps everything in a file you can copy, read, and delete.