Alpgiray Kelem
Get in touch
Open Source · macOS
Pulse
Automatic Time Tracking · macOS · Free
Download

Know where your
time actually goes.

Automatic time tracking for macOS — zero effort, total privacy.

The automatic time tracker that replaces manual timers and timesheets. No timers to start, no projects to tag manually. Offline, private, open source.

$ git clone https://github.com/alpgiraykelem/pulse-app.git
<10MB
RAM Usage
~0%
CPU Impact
100%
Offline
MIT
Open Source

A full dashboard,
right inside the app.

Real-time SPA dashboard with client management, bulk assignment, brand merging, and AI-powered project suggestions. Everything runs locally on your Mac.

Live SPA Dashboard

Day, week, and month views with interactive charts, project breakdowns, and a real-time local API. No static HTML — a full single-page app served from your menu bar.

Real-time API Day / Week / Month Charts Timeline
Navigation
Overview
Applications
Timeline
Clients
Northwind Labs
Figma 1h 48m
VS Code 1h 12m
Terminal 32m
Meridian Media
Safari 28m
Claude 17m
Studio Volta
Figma 26m
Spotify 27m
Day
Week
Month
6h 42m
Figma 37%
VS Code 25%
Terminal 10%
Claude 9%
Northwind Labs3h 32m
Figma
1h 48m
VS Code
1h 12m
Terminal
32m
Meridian Media45m
Safari
28m
Claude
17m
Studio Volta53m
Figma
26m
Spotify
27m

Bulk Selection & Assignment

Select dozens of activities, pick a project, assign all at once.

Safaridocs.google.com12m
Safarianalytics.google.com8m
Terminal~/projects/client — npm run dev14m
FigmaApp Icon Exploration22m
3 items selected Assign All

Client Merge

Duplicate client? Merge all projects into another brand with one click.

Meridian Media3 projects
↓ merge into ↓
Northwind Labs9 projects

Client Detail View

Click any client — see projects, hours, and monthly activity.

Northwind Labs48h 32m
Web + Docs
22h
Backend API
14h
Launchpad
8h
Pebble
4h
SepOctNovDecJanFeb

Smart Auto-Creation

Select a client with no projects — one is created on the fly.

1Pick Studio Volta from dropdown
2Project auto-created new
3Activities assigned 127 matched

Period Tabs

All Time, This Week, This Month — switch instantly on any app detail view.

All Time Week Month

It Learns Your Patterns

Scans unassigned activities, detects URL domains, folder names, window titles, and Figma files. Suggests clients, projects, and matching rules.

urlDomain terminalFolder windowTitle figmaFile

Client Management

Add, rename, delete, and color-pick clients and projects directly from the dashboard.

Replace manual time tracking
with automatic tracking.

Manual trackers require you to start timers, log hours, and tag projects by hand. Pulse does all of this automatically.

The manual way
  • ×Start & stop timers manually
  • ×Forget to log? Data is lost forever
  • ×Assign every task to a project by hand
  • ×Context-switch between tracker & real work
  • ×Pay $10-30/mo per seat
  • ×Your data lives on someone else's server
The automatic way
Pulse
  • Tracks every window & app automatically
  • Never misses a second — always running
  • AI detects patterns & assigns projects for you
  • Zero interruption — sits silently in menu bar
  • Free & open source, forever
  • 100% offline — data never leaves your Mac

Stop filling timesheets. Start getting real data.

Automatic time tracking
for every app you use.

No timers to start. No buttons to click. Pulse tracks every app, browser tab, terminal command, and design file on your Mac.

︎

Automatic Window Tracking

Detects your active app and window every 2 seconds. No manual logging needed.

Menu Bar Control

Start, pause, or stop tracking from the menu bar. Minimal and always accessible.

🌐

Smart Site Separation

YouTube, GitHub, ChatGPT, and more are tracked as separate virtual apps inside your browser.

Terminal Monitoring

Tracks background processes like compiling, git operations, and npm scripts in Terminal.

🎵

Now Playing

Logs Safari URLs, Spotify tracks, and Apple Music songs alongside your work sessions.

💤

Idle & Sleep Detection

Auto-pauses when you step away. Detects screen lock, sleep, and 10-minute idle periods.

📊

HTML Reports

Beautiful daily reports with donut charts, timeline views, and per-app breakdowns.

📅

Historical Reports

Browse past days anytime. All data is stored locally in SQLite and never expires.

🤖

JSON Export & AI Analysis

Export weekly or monthly data as JSON. Feed it to Claude or any AI copilot for productivity insights.

Detailed time reports
generated automatically.

Daily productivity reports with time-per-app charts, activity timelines, and project breakdowns.

Activity Report — Friday, 7 February 2025
Friday, 7 February
6h 42m across 8 apps
09:15FigmaE-Commerce Redesign — Product Detail Page37m
09:52VS Codecomponents/Header.tsx — roast-store32m
10:24Terminal~/projects/roast-store — next dev14m
10:38FigmaNomad — Landing Page Wireframes44m
11:22ClaudeHow to optimize SQLite WAL mode for low-write workloads17m
11:39VS CodeDataManager.swift — weather-app48m
12:27Terminal~/projects/weather-app — swift build -c release18m
12:45SpotifyBad Bunny — DtMF
14:10FigmaDesign System — Component Library v232m
14:42VS CodeChartRenderer.swift — weather-app16m
14:58Terminal~/projects/weather-app — git push origin main6m
Work
Figma
2h 14m
Roast & Co — Mobile Checkout Flow58m
Nomad — App Icon Variants44m
Component Library — Button States32m
Terminal
38m
swift buildweather-app — release18m
next devroast-store14m
git pushorigin main6m
Claude
17m
Swift Concurrency best practices for polling10m
macOS idle detection with CGEventSource7m
Side quests
Spotify
27m
Tame Impala — Let It Happen
Nujabes — Feather
Mac DeMarco — Chamber of Reflection
Khruangbin — Time (You and I)
Bad Bunny — DtMF
YouTube
34m
Building a macOS Menu Bar App in Swift
Figma Config 2025 — What's New
Social
26m
X14m
Instagram12m

Offline time tracking.
Your data never leaves your Mac.

Unlike cloud-based time trackers, Pulse runs 100% offline. No accounts, no subscriptions, no data collection.

No Network Dependencies

The only dependencies are SQLite and a CLI parser. Nothing phones home.

// Package.swift dependencies: [ .package(url: "SQLite.swift", from: "0.15.3"), .package(url: "swift-argument-parser", exact: "1.3.1"), ] // That's it. No analytics. No tracking SDKs.

Local SQLite Storage

All data lives in a single file on your machine.

// ActivityStore.swift let appSupport = FileManager.default.urls( for: .applicationSupportDirectory, in: .userDomainMask ).first!.appendingPathComponent("ActivityTracker") path = appSupport.appendingPathComponent("activity.db") // ~/Library/Application Support/ActivityTracker/

Smart Idle Detection

Never tracks when you're away. Auto-pauses after 10 minutes.

// IdleDetector.swift let idleSeconds = CGEventSource.secondsSinceLastEventType( .combinedSessionState, eventType: CGEventType(rawValue: ~0)! ) let nowIdle = idleSeconds >= 600 // 10 minutes

100% Open Source

Every line is auditable. MIT licensed.

// Verify it yourself: $ git clone https://github.com/alpgiraykelem/pulse-app.git $ grep -r "URLSession\|NSURLConnection\|Network" Sources/ // Result: 0 matches $ cat Package.swift | grep .package // Only SQLite.swift + ArgumentParser

Install in 60 seconds.
Track time automatically forever.

1

Install

Clone the repo and run the install script. Takes under a minute.

2

Open

Launch from Spotlight or Applications. Grant accessibility permission once.

3

Forget

It tracks silently from the menu bar. Check your reports whenever you want.

Download Pulse
for macOS. Free.

Works on macOS 13 Ventura and later. No account needed, no credit card, no trial period.

# Clone the repository
$ git clone https://github.com/alpgiraykelem/pulse-app.git
 
# Install (builds & creates .app in /Applications)
$ cd pulse-app && ./Scripts/install.sh

Then open Pulse from Spotlight or Applications folder.

Frequently asked
questions.

How is Pulse different from manual time trackers?

Manual time trackers require you to start and stop timers for each task. Pulse tracks your time automatically by monitoring which app and window is active on your Mac. It also auto-categorizes work using AI pattern detection.

Can Pulse replace manual timesheet logging?

Yes. Pulse captures every minute spent in VS Code, Terminal, Figma, or your browser automatically. Create brand/project hierarchies and auto-assign activities using classification rules.

Is Pulse free? What's the catch?

Pulse is 100% free and open source under the MIT license. No premium tier, no data harvesting, no subscription.

Does Pulse work offline?

Yes, 100% offline with a local SQLite database. No internet required. Your data never leaves your Mac.

What apps does Pulse track?

Every macOS application: VS Code, Figma, Safari, Chrome, Terminal, Slack, Notion. Browser tabs like YouTube, GitHub, ChatGPT are tracked separately.

How does automatic project classification work?

7 rule types: URL domain, URL path, window title, terminal folder, Figma file, bundle ID, page title. AI pattern detector suggests rules automatically.

Is Pulse good for freelancers?

Built for freelancers and agencies. Automatically tracks client projects, generates hour reports, and separates billable from personal time.

Why choose Pulse over manual time tracking?

Manual trackers require discipline. Pulse runs in your menu bar and captures everything automatically, without monthly cost or cloud dependency.