How to track time offline on a Mac

· 6 min read

Offline time tracking on a Mac means the app records, stores and reports entirely on the machine, with no server in the loop. Most trackers were designed around a web account and either stall or quietly queue when the network is gone; a few work fully offline because they never used the network at all. Here is how to tell which you have, and how to set up one that does not care whether you are connected.

What offline should actually mean

“Works offline” gets used loosely. Three tests separate a tracker that tolerates being offline from one that is offline.

  1. It records with Wi-Fi off. Not for a while, not until a sync window. Indefinitely.
  2. The data is in a file on your Mac that you can find, copy and open. Not a cache waiting to upload.
  3. The reports and the license work without a connection. An app that tracks offline but cannot show you the week, or that locks after some days without checking in with a server, is not offline in any useful sense.

If a tracker passes all three, the network is simply not part of how it works. If it passes the first and fails the others, you have a client for a web service that can survive a plane ride.

Test any tracker in half an hour

You can check this yourself without reading documentation.

  1. Turn off Wi-Fi from the menu bar (and unplug Ethernet if you have it).
  2. Work normally for thirty minutes with the tracker running.
  3. Open its report or summary. Does the last half hour appear? If the view is blank, spinning, or shows a “reconnecting” message, it is a web client.
  4. Open Finder, choose Go > Go to Folder, and enter ~/Library/Application Support. Look for a folder with the app’s name. Is there a database or data file inside that changed in the last half hour? If the only thing there is a settings file, the data lives elsewhere.
  5. Open Activity Monitor, choose the Network tab, and find the app. The Sent Bytes and Rcvd Bytes columns show whether it has been talking to anything since launch. Turn Wi-Fi back on and watch those columns for a minute.

Step five is the honest one. An app that sends nothing has nothing to send. For a longer walk through the same check, how-to-check-what-an-app-sends-over-the-network-on-a-mac.html covers the tools in more detail.

Set up tracking that has no network to lose

Punchcard is a Mac menu bar app that passes the three tests by construction: it contains no networking code at all, and the release build fails if a networking symbol appears. There is no sync because there is nothing to sync with.

  1. Download Punchcard (about 4 MB) and open it. It runs on macOS 13 Ventura or later, on Apple silicon and Intel.
  2. It asks for no macOS permissions: no Accessibility, no Screen Recording, no Full Disk Access. It appears in the menu bar and that is the installation.
  3. Set a closing time.
  4. Work. Punchcard notices which app is in front and keeps the totals locally. It records app names only: no window titles, document names, URLs or keystrokes.
  5. At closing time, it prints a paper receipt of the day: one line per app, a day total, a stamp. The Wi-Fi state does not enter into it.

On Sunday a week roll prints; at month end, a month roll. If the Mac was asleep at closing time, the receipt prints late under the heading SORRY WE MISSED YOU. None of this needs a connection at any point.

Licensing is offline too. Tracking is free and never expires; the first seven receipts are free; after that it is $9 once for two Macs, with a license key sent by email. You type the key in, and because there is no networking code, there is no license server to reach and nothing to expire when you are away from a connection.

Where the data is and how to keep it

Everything Punchcard records is in one SQLite file:

~/Library/Application Support/Punchcard/punchcard.sqlite

That is the whole record. Two ways to keep a copy without a network:

  • Export CSV from the Punchcard menu. You get app names and time by day in a plain text file that opens anywhere.
  • Copy the SQLite file itself, with Punchcard quit, to an external drive or a folder Time Machine covers.

Burn the roll deletes everything, if you ever want a clean start. time-tracker-data-where-it-lives-and-who-can-read-it.html goes through the same question for trackers in general.

When offline is not enough

Being honest about the trade is part of choosing well. An app with no network cannot do some things.

  • No sync between Macs. The $9 license covers two Macs, but each keeps its own roll. how-to-track-time-across-two-macs.html covers how to live with that.
  • No team features. Nobody else can see your totals unless you send them a receipt.
  • No iPhone app and no integrations. Time on the phone is not on the receipt, and nothing flows into an invoicing or project tool.
  • No projects, clients, rates or manual timers. Punchcard answers “where did the day go,” not “how many hours for client A.”

If your need is any of those, an offline tracker of this kind is the wrong shape, and it is better to know that before you rely on it. If your need is a trustworthy record of your own days that does not depend on a server being up, on a subscription staying current, or on a connection existing at all, it is exactly the right shape.

Questions

Will an offline tracker lose data if my Mac is never online?

Not if it is genuinely offline. Punchcard never uploads, so there is nothing to lose by not uploading. The only copy is the one on your Mac, which is why exporting a CSV or backing up the SQLite file is worth doing.

How can I be sure an app has no networking code, rather than just not using it right now?

You cannot prove a negative from outside, but you can check the evidence: Activity Monitor’s Network tab over days, the absence of any sign-in or sync option, and the developer’s own statement. an-app-with-no-networking-code-what-that-means-and-how-to-check.html goes through what that claim means and how to test it.

Does the license key need to be activated online?

For Punchcard, no. The key arrives by email and is entered in the app. There is no activation server because there is no networking code.