One-click start from the menu bar
Click the icon in the status bar to start a timer instantly, or pause and resume one that's already running: no popover required. Clicking the time itself, or right-clicking, opens the full HUD.
Every feature, in detail
No dashboards to configure, no team settings to ignore. Tracky is a focused set of tools for tracking billable time alone, built to disappear into your workflow and hold up when you invoice at the end of the month.
Menu bar & HUD
Everything you need to start, adjust, and stop work lives one click below the menu bar. The main window stays closed all day if you want it to.
Click the icon in the status bar to start a timer instantly, or pause and resume one that's already running: no popover required. Clicking the time itself, or right-clicking, opens the full HUD.
The status item shows an orange icon while a timer runs and turns white when paused or stopped. Optionally show the elapsed hours and minutes right next to it.
A floating panel under the menu bar shows the active timer large, with pause, resume, and stop controls, plus a quick "+" to start a new timer, which automatically stops the current one.
A seven-day Monday–Sunday overview inside the HUD, showing total tracked hours per day. Click any day to inspect it, and step through weeks with a "back to today" shortcut.
See every entry for the selected day, with client, project, description, and duration, plus start, pause, stop, or edit actions right there and a right-click menu for quick changes.
A compact form with autocomplete search across client and project, notes, a duration field, and a billable toggle. On today it starts a timer; on any other day it saves a completed entry directly.
Type duration however it comes to mind: 1:30, 1.5, 1,5, 90m, 2h. Tracky parses it correctly every time.
Change project, description, billable status, or duration on a timer that's still running, without stopping and restarting it.
"Start Timer" on an existing entry resumes that entry as the active timer instead of creating a new one, handy for picking up a task you stepped away from.
Pause and resume a timer as many times as you like. Every run is stored as its own segment and summed into the entry's total duration.
If Tracky quit or the Mac restarted while a timer was active, it offers to continue or stop that timer the next time the app opens. Nothing is silently lost.
Closing the HUD while a timer runs asks whether to stop and close, or leave the timer running in the background.
After a configurable period without input (5, 10, 15, 30, or 60 minutes, or off) while a timer runs, Tracky flags it and lets you stop at the last-active moment, keep counting, or skip the idle stretch entirely, cleanly removed from the session.
When nothing is running, the HUD shows a quiet, rotating quote instead of an empty box, fully editable in Settings.
Main window
A proper table for reviewing and correcting time, once the day is done and you're looking at everything at once.
Every entry with date, client, project, description, duration, log count, billable, invoiced, and invoice number, with date, client, and project editable inline, right in the table.
Switch from the flat table to a client → project view with subtotals rolled up at each level.
Date presets (today, yesterday, this/last week, this/last month, custom range, all time), client, project, billable state, invoiced state, and free-text search across client, project, description, and invoice number.
Select multiple entries and mark them invoiced or not, assign an invoice number, toggle billable, export, or delete, all in one pass.
Fix a description right in the row: it saves the moment you press Enter, no dialog needed.
Adjust client, project, date, duration, description, billable, invoiced status, and invoice number, including the individual time logs behind an entry, each removable on its own as long as one stays behind.
Type a duration that differs from the logged segments and Tracky keeps both: the override is what's used, but the table still shows the raw tracked time underneath.
Single or bulk deletes ask first, with a reminder that this can't be undone without a backup.
Round entries to the nearest 5, 10, or 15 minutes, up or down, set globally or overridden per project. It applies to display, reports, and export without touching the underlying tracked time.
Organization
Keep active work visible and old work out of the way, without ever losing the history behind it.
Add, rename, and archive clients at will. Archiving a client archives its projects with it, with a confirmation so it's never accidental.
Create, rename, and archive projects under each client, without breaking any of the time entries already logged against them.
Switch visibility for both clients and projects so the list only shows what you're currently working on, or everything, when you need to look back.
Set a default billable state, rounding interval, and rounding direction per project, each one overriding the app-wide default, and saved the moment you change it.
A client list with project counts on the left, a detail table of that client's projects on the right. Fast to scan, fast to edit.
Before you invoice
A clean read on billable and invoiced time, grouped the way an invoice actually needs it.
See entry counts and rounded totals per project, rolled up into a total per client: the same shape most invoices need.
Date range, client, project, billable, and invoiced filters, scoped to completed entries only, so a report never includes a timer that's still running.
Total, billable, invoiced, and uninvoiced time, each shown as its own HH:MM:SS figure: enough to know exactly what's left to bill.
One click sends the filtered report to Excel or CSV, with a filename built from the date range you're looking at.
CSV & Excel
Built for handing time off to bookkeeping, or an invoice template, without a manual cleanup pass afterward.
Export as plain CSV or a real Excel file, built natively with proper worksheet styling: no third-party library, no dependency on Excel being installed.
Date, client, project, description, start time, end time, duration, billable, invoiced, and invoice number: toggle each on or off for the export.
HH:MM:SS, plain minutes, or decimal hours like 1.5. Pick whichever your invoicing tool expects.
Split the export into billable and non-billable sections, each with its own subtotal, no manual sorting after the fact.
Entries that share a project, description, billable state, invoiced state, and invoice number get merged into one row with the durations summed: a tidier export with no loss of detail.
When billable groups are split out, XLSX exports can use real =SUM(...) formulas for each subtotal instead of a static number, so the sheet recalculates itself if you tweak a row in Excel.
Independently toggle bold styling for column headers and subtotal rows in the Excel output.
Set a prefix template with a {Client} placeholder. Tracky fills in the client name (or "Multiple Clients" for a mixed export) and appends the date range automatically.
Export all filtered entries, just a selection, or a full report. Each goes through a native macOS save panel with the correct file type already set.
Invalid characters get cleaned up automatically, and Excel sheet names are kept within its 31-character limit: one less thing to think about.
Make it yours
A short, honest settings page: five groups, no hidden toggles buried three menus deep.
Show elapsed time in the menu bar, default new entries to billable, set the idle-reminder threshold, choose the default date filter for Entries on launch, and enable Launch at Login.
Set the app-wide default rounding interval and direction. Every project can still override it individually.
Filename template, file format, duration notation, Excel styling, grouping behavior, and column selection: all the export options from one place.
Manual backup export and import, right inside Settings. See Data & backups below.
See the app name and current storage mode at a glance, whether that's local-only or local plus iCloud.
Edit the HUD's empty-state quotes as free text, one per line, with a reset button that restores the seven built-in defaults from Franklin, Covey, Drucker, Gandhi, Jim Rohn, and William Penn.
Ownership
No account, no company server. Your data lives on your Mac, and a full backup is always one click away.
Everything is stored on your Mac using Apple's SwiftData framework. Nothing leaves the machine unless you export it yourself.
CloudKit sync is already built into the storage layer, waiting for a public toggle. When it ships, it will run through your own Apple account, off by default, and never through a Tracky server.
Export every client, project, entry, time log, and setting to a single readable JSON file, and restore it later through the same panel, with a clear warning before a restore overwrites current data.
Tracky's storage layer has already been rebuilt once, with a dedicated migration path that moved every existing user's data across without loss. The same care applies to anything that comes next.