← cd ~
~/personal/busy
personal project · macos · swift
BUSY
A macOS menu bar app that measures how much of your day goes to work (green) and how much to distractions (red). A switch in the menu bar shows the current state at a glance, and one click opens the recap of the day. No timers to start: it watches the app in front and the site open in the browser.
Green
Red
Top apps & sites
Saturday 3 Octoberno input for 5 min · tracking paused
greenredpausedclick a pill to flip its rule: the whole day recolours
Simulated in the browser with the same logic as the app: one rule per app or domain, idle time paused, colours recomputed from the history every time you look.
download BUSY 1.5 (.zip, 1.3 MB)
macOS 14 or later · Apple Silicon & Intel · free, MIT licence
install
- Install: open the zip and drag
BUSY.appinto Applications. - First launch: BUSY isn't signed with a paid Apple Developer certificate, so macOS blocks it the first time. On macOS 15 and 26, open it once, then go to System Settings → Privacy & Security, scroll down and click Open Anyway. On macOS 14, right-click the app → Open → Open. Or, in Terminal:
xattr -dr com.apple.quarantine /Applications/BUSY.app - Permissions: it only asks to control your browser, to read the domain of the active tab (revoke it in Privacy & Security → Automation). Your activity stays in
~/Library/Application Support/BUSY; the only network request fetches a site's icon from that site. - Is it safe? Scan the zip on VirusTotal. Check the code: upload the source of this exact version to Claude, ChatGPT or any model that reads files, with this prompt:
read it
I'm about to install a macOS app called BUSY, made by a developer I don't know. The attached zip is its full source code. Act as a skeptical security reviewer: don't assume it's safe, and look for anything that could harm me or my privacy. 1. List every network request the code makes: the destination, when it happens, and exactly what data is sent. 2. List every file it reads or writes, every permission it asks macOS for, and every entitlement in the project. 3. Check whether it runs shell commands, downloads or executes code, records keystrokes, screen content, passwords, messages or full browsing history, or sends anything to the developer. 4. Point out any obfuscated, hidden, unused or suspicious code, and anything that doesn't match what the app claims to do (measure time spent on apps and websites, stored locally). Quote the file and line for every finding. If you can't verify something from the code, say so instead of guessing. End with a one-line verdict: safe to install, safe with caveats, or don't install, and why. - Uninstall: delete the app and
~/Library/Application Support/BUSY.
how it works
- Classification: on every app switch the active app is matched by bundle ID. For Safari, Chrome and Arc it reads the URL of the active tab through AppleScript every 2.5 seconds and keeps only the domain, subdomains included.
- Pauses: after 5 minutes without input, and during sleep, shutdown or user switch, tracking stops on its own, so idle time never counts as either colour.
- Recap: day, week, month and year, with a red/green timeline of active time only and a top 10 of apps and sites. Any entry opens its own stats.
- Rules: mark installed apps green or red, add a site by pasting a link. Changes apply instantly, past included, because the recap recolours the stored history with the current rules every time.
- Local only: one SQLite file and one
rules.jsonin Application Support. Your activity never leaves the Mac; the only network request fetches a site's icon from that same site. - Native: the menu bar switch is an
NSStatusItemanimated with Core Animation; the window uses the Liquid Glass sidebar on macOS 26 and still runs on macOS 14, Apple Silicon and Intel.