Timelog app icon

iOS & macOS

Track time.
Natively.

A lightweight time tracking app built with SwiftUI and SwiftData. Your data stays on your device; no account, no cloud, no subscription.

iOS 17+ macOS 14+ Swift 5.10 SwiftData SwiftUI Open Source
View on GitHub Explore features
scroll
📱

iPhone & iPad

Timelog for iOS

Full featured mobile app with real time session tracking and Live Activity on your lock screen and Dynamic Island.

  • Today view; log time manually or start live sessions, with a running daily total
  • Clients & Projects; color coded, archivable, swipe to edit
  • Timer; Stopwatch or Pomodoro with ring progress and notifications
  • Live Activity on lock screen & Dynamic Island
  • Smart Tracking; session alert if you forget to stop
  • Automatic pull at launch + push with 2 second debounce
🖥

macOS 14+

Timelog for Mac

Native macOS app that lives in your menu bar. Always visible, never in the way, with a full window for deep work sessions and client management.

  • Menu bar icon; live elapsed time while timer is running
  • Today view; active sessions with live ticker and context menus
  • Clients & Projects; NavigationSplitView with native Table
  • Pomodoro / stopwatch window; Space to start/pause
  • Auto updates via Sparkle; one click updates inside the app, signed with EdDSA
  • Settings window accessible via ⌘,

In Action

Native by design.

Every pixel follows the macOS HIG. No Electron, no web views, just SwiftUI rendering on Metal.

Timelog macOS, History view with weekly bar chart and date navigation
Today view, active sessions and daily entries Timer, Stopwatch and Pomodoro mode

Highlights

Every detail, considered.

Built for developers and freelancers who want a native app, not another Electron wrapper or subscription SaaS.

⚡️

Instant tracking

Tap once to start a session. Duration is logged automatically when you stop. Multiple sessions can run simultaneously.

🍅

Pomodoro built in

Configurable focus and break intervals with a ring progress view and lock screen notification when a phase ends.

🔒

Local first

Every session, client and project lives in a SwiftData store on your device. Nothing is uploaded, nothing is tracked, nothing to sign up for.

🏝

Dynamic Island

Active sessions and the running timer appear live in your Dynamic Island and on the lock screen via ActivityKit.

🔐

Privacy first

All credentials live exclusively in the system Keychain. No analytics, no third party SDKs, no data leaves your infrastructure.

🎨

Color coded clients

Assign colors to each client. Projects inherit the client palette and collapse cleanly when archived.

📊

Daily totals

The Today view sums all sessions in real time. See exactly how much time went to each client without doing the math.

🛎

Smart reminders

Configure a daily reminder to start tracking, and a threshold alert if a session is still open past your end of day time.

📦

Zero dependencies (iOS)

The iOS app uses only first party Apple frameworks; no CocoaPods, no SPM cloud packages, no Electron.

⬆️

Auto updates (macOS)

Sparkle integration delivers one click updates inside the app. Each release is signed with EdDSA; the app verifies the signature before installing. No App Store, no manual DMG download after the first install.

Architecture

Your data never leaves.

There is no server, no account and no telemetry. Timelog writes to a local SwiftData store and that is the whole story.

iOS + macOS

On device storage

Clients, projects, sessions and entries live in a SwiftData store on the device that created them. No network call is made to save your work.

No account

Nothing to sign up for

Pick a nickname on first launch and start tracking. No email, no password, no server to deploy and keep alive.

Export

Your hours, your file

Export the week straight to email from Settings whenever you need to hand your hours to someone else.

Stack

First party, all the way.

No Electron, no React Native, no subscriptions. Just Swift and Apple frameworks the way they were designed to be used.

Swift 5.10 SwiftUI SwiftData @Observable ActivityKit MenuBarExtra UserNotifications Sparkle Xcode 16+

Download

Get Timelog for Mac.

Download the latest DMG, drag it to Applications, and you're done. No App Store, no account required.

🖥
Timelog for macOS
Requires macOS 14 Sonoma or later · Apple Silicon & Intel
Download DMG
1
Open the DMG and drag to Applications
Open the downloaded .dmg, then drag Timelog.app into your Applications folder.
2
Remove the quarantine attribute
macOS blocks unsigned apps with a misleading "damaged" message. Run this once in Terminal to fix it:
$ xattr -cr /Applications/Timelog.app
3
Launch Timelog
Open Timelog from Applications or Spotlight. The menu bar icon appears immediately, no setup required to start tracking.
↑
Future updates are automatic
Timelog uses Sparkle to deliver signed updates. The app notifies you when a new version is available; click "Install and Relaunch" and you're done. No manual DMG download required after the first install. You can also trigger a check anytime via Timelog, Check for Updates…
🧑‍💻

Free & Open Source

Timelog is fully open source. Fork it, extend it, or just read the code. No vendor lock in, ever.