It peeks
Peeko lives in the strip at the top of your screen. It looks at a few simple signals: which app is in front, whether you've touched the keyboard lately, and your public GitHub activity.
peeks in, ticks off
A small menu bar app for macOS that keeps your daily list and ticks things off by itself. Spend half an hour in Preview and Read for 30 minutes ticks itself. Push to GitHub and that one goes green too.
curl -fsSL https://peeko.stack42.tech/install.sh | bash
What it is
Peeko lives in the strip at the top of your screen. It looks at a few simple signals: which app is in front, whether you've touched the keyboard lately, and your public GitHub activity.
When a signal says you did the thing, the task goes green on its own. For things it can't see, like the gym or drinking water, you tap them yourself.
These signals are hints, not proof. Leave a PDF open and nudge the mouse, and it'll count as reading. That's fine. Peeko is a nudge, not a lie detector.
Three faces
Every task wears one of Peeko's faces, and the menu bar icon shows the face for the whole day.
Examples
Counts active time while Preview is in front. Idle time doesn't count, and a sleeping Mac never adds hours.
time in an appSame idea, across VS Code and Terminal. Point it at any app you like, for as many minutes as you want.
time in an appChecks your public activity every 10 minutes for a push made today, in your own time zone.
online checkNo screen time between 00:30 and 05:00? Peeko figures you got some sleep. If you were up late, it just says "no worries".
activity windowYour first stretch at the Mac after 4 AM starts before 8. All-nighters don't count as early mornings.
activity windowPoint Peeko at your notes folder or Obsidian vault. It counts the words you add today, or just ticks when a note changes.
notes folderSome things only you know. Add your own and tap them when they're done.
tap it yourselfAfter an hour at the screen, Peeko suggests standing up for 5 minutes. Stepping away resets the count.
break reminderAt 9 PM, if something's left, one quiet note: "2 tasks left today." Change the time or turn it off.
reminderEvery task is a type plus a few settings. Built-in presets live in a JSON file, and yours are saved the same way, so adding a new preset doesn't need any code.
{
"id": "read-pdfs",
"title": "Read for 30 minutes",
"type": "appTime",
"params": {
"bundleIDs": ["com.apple.Preview"],
"minutes": 30,
"idleCutoffSeconds": 120
}
}
Privacy
Nothing to sign up for. No server, no analytics, no telemetry.
Your tasks and history are JSON in ~/Library/Application Support/Peeko/. Read them, back them up, or delete them.
Only if you turn on the GitHub task: your public activity, every 10 minutes. Your notes folder and activity times never leave your Mac.
Install
curl -fsSL https://peeko.stack42.tech/install.sh | bash
It downloads the latest release, checks its checksum, puts Peeko in Applications, and opens it. Run it again to update. Read the script first if you like; it's short.
Download it from Releases and drag Peeko into Applications. It isn't signed with an Apple Developer ID yet, so the first time:
All you need is Apple's Command Line Tools. No Xcode.
xcode-select --install
git clone https://github.com/STACK-42/peeko.git
cd peeko
make install
Needs macOS 14 Sonoma or later on an Apple silicon Mac.