Timeslice app icon

Timeslice

A time tracker for fast, restless, multitasking brains. It lives in your menu bar and runs from your keyboard — so you can see where the day went without ever babysitting a stopwatch.

macOS 14+ iPhone + Dynamic Island Local-first · no account Open source

Scroll to live one day with it ↓

scheduler.swift — your-project
// Whatever you were doing. Timeslice never asks you to leave it.
struct Scheduler {
    var queue: [Job] = []

    mutating func admit(_ job: Job) {
        guard job.budget > 0 else { return }
        queue.append(job)
        queue.sort { $0.deadline < $1.deadline }
    }

    func next() -> Job? {
        queue.first { $0.isReady(at: .now) }
    }
}
↑↓ select⇥ project↵ createesc cancel
hold fn⌘⇧ · \ next · ] prev · release to start
Tracking
▶

Welcome back — resume “Code Review”?

Timeslice paused it when your screen turned off. Resume timing, or leave it paused?

Leave pausedResume

1h 38m without a break

Pause for 10m, or keep going?

Not todayKeep goingTake a break

Meetings started on iPhone

Design Review paused on this Mac at 4:12 PM.

Timeslice on iPhone
MacBook Prowork
iPhonepocket
MacBook Airpersonal
your Google Drive · a folder only Timeslice can see
Timeslice window

 

THU · 9:02 AM

Start a task without leaving what you're doing.

Hold fn ⌘ ⇧, tap A, type a name. Tab files it into a project. It's timing before you've let go.

10:28 AM

Switch tasks like you switch apps.

Hold fn ⌘ ⇧ and tap \ to flick through tasks, most recent first. ] goes back. Let go, and you've switched.

12:10 → 12:58 PM

Walk away. It notices.

Screen off means you're gone, so the timer pauses, back-dated to when you left. Lunch never counts as work.

2:36 PM

A nudge, not an interruption.

Too long without a break, across tasks, and a note floats in the corner. Ignore it and it's gone.

4:12 PM

Pick up your phone. The Mac lets go.

Start a task on the iPhone and the Mac stops its own timer, then tells you so. No minute counts twice.

4:12 → 9:00 PM

Every device. One timeline.

Work laptop, phone, the personal laptop at home. Each one syncs through your own Google Drive, and only one timer runs across all of them — start on one, and the one you left stops itself.

9:05 PM

Where the day actually went.

Tracked against your waking hours, focus from unbroken blocks, every switch counted — and a lane for each of your three devices. This is the real app, showing this day.

ANY RANGE

Then zoom out.

Day, week, month, six months, a year. Everything on the page follows the range you pick.

ORGANISING

Projects group. Tags cut across.

A task lives in one project. A tag can span many — work here covers Product, Docs and two Inbox tasks — so one goal can cover all of it.

PLANNING

Plan the week. Or the month.

Per day gives every day its own share. Catch up fair-shares what you're behind on across the days left — so you plan with what's real.

ANY TIME

Share your screen, not your day.

fn ⌘ ⇧ P drops the menu bar to just its icon, and Timeslice's windows go blank to screen sharing.

Now it's your turn.

A working Timeslice, in this page. Start and stop tasks, flick through them, and watch your own day build up — computed the way the app does it. It all stays in your browser.

Timeslice

Hold ⇧ and tap \ to cycle, let go to switch. / opens the palette. A browser can't see fn or ⌘ — in the app it's fn⌘⇧.

hold ⇧ · \ next · ] prev · release to start
↑↓ select↵ start or createesc cancel

Under the hood.

Native Swift, no Electron, no server. Built to be trusted with the one record of your day you can't reconstruct later.

Multi-device sync

Mac and iPhone stay in step, with one timer across all of them. Start on one and the other stops, so no minute counts twice.

Your Google Drive, your permissions

Sync runs through your own Drive, in a folder only Timeslice can see. No account, and no servers of ours.

Swift · SwiftUI · SQLite

One Swift package shared by the Mac and iPhone apps, so both compute every number with the same code. The phone adds a Live Activity and an Action Button switcher.

Keyboard first, honestly

The switcher reads fn and the moment you let go through a system event tap. It never sees anything else you type.

Vibe-coded, passionately

One person vibed hard with Claude Code to make this.

Get it.

Free and open source. Builds with Apple's command line tools — no Xcode needed for the Mac app.

# macOS 14 or later
git clone https://github.com/saikrn112/timeslice.git
cd timeslice
./scripts/install.sh   # builds, installs to /Applications, launches

Then enable Timeslice under System Settings › Privacy & Security › Accessibility for the hotkeys.

View on GitHub v1.0 source