Extension Icon

Punch Clock

Track your working hours: set a total work time and break length, then watch a live countdown in the macOS menu bar.
Overview

Punch Clock

Raycast Store GitHub License: MIT

Punch Clock helps you track your working hours for the day directly from the macOS menu bar.

Features

  • ⏱️ Enter your total working time and break length for the day.
  • 📊 Live countdown of your remaining working time (work + break) right in the macOS menu bar.
  • 🕒 See the exact Started and expected Expires time from a dropdown.
  • ⏸️ Stop/ Resume the timer at any time and see when it was Stopped.
  • 🔁 Start New Timer or Reset to begin a fresh countdown.
  • 💾 State is persisted with Raycast's LocalStorage, so it survives Raycast restarts.

Installation

From the Raycast Store

Search for Punch Clock in the Raycast Store and install it, or use this direct link once it's published: raycast.com/FL0R1AN/punch-clock.

From source

git clone https://github.com/FL0R1AN84/punch-clock.git
cd punch-clock
npm install
npm run dev

npm run dev opens Raycast in development mode with both commands available.

How it works

  1. Run Start Work Timer and enter your total working time (hours + minutes) and your break length.

    Start Work Timer form
  2. A countdown (working time + break) starts immediately and is shown live in the menu bar via the Work Timer menu-bar command.

  3. Click the menu bar item to see the Started time and the expected Expires time.

    Menu bar dropdown while running
  4. Stop/ Resume the timer at any time — the dropdown then also shows the Stopped time, and the menu bar icon switches to a paused state.

    Menu bar dropdown while paused
  5. Start New Timer or Reset to begin again.

Development

npm install
npm run dev

This opens Raycast in development mode and enables both commands:

  • Start Work Timer (src/start-timer.tsx) — a form to configure and start the timer.
  • Work Timer (src/menu-bar.tsx) — the live menu bar countdown.

Other useful scripts:

npm run build      # build the extension
npm run lint       # lint the extension
npm run fix-lint   # lint and auto-fix

License

MIT © FL0R1AN