Skip to content

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Recess

Recess is a macOS menu bar app for taking screen breaks and getting reminded before meetings. It runs on your Mac. There is no account, and no server that stores your calendar.

Recess

What it does

  • Runs a focus timer. When the timer ends, it shows a full screen break with a short eye or breathing exercise.
  • Shows a countdown before your meetings. Google Meet links get a Join button.
  • Reads meetings from Apple Calendar. You can also connect Google Calendar (read only).
  • Lets you add your own reminders, one time or repeating.
  • Skips breaks when you are away from the keyboard, presenting, or the Mac was asleep.
  • Lets you pick the break background: a blurred screenshot, a gradient, or your own image.
  • Can play a sound and pause media while a break is on.

Requirements

  • macOS 13.5 or later
  • Xcode 16 or later
  • Swift 5
  • No third party dependencies

Build and run

  1. Open Recess.xcodeproj in Xcode.
  2. Select the Recess scheme and press Run.
  3. The app starts in the menu bar. There is no Dock icon.
  4. Allow Calendar and Notifications when asked.

Connect Google Calendar (optional)

Google Calendar support needs a Google OAuth client. The settings live in Recess/Services/GoogleAuthConfig.swift.

  1. Create a project in the Google Cloud Console and enable the Google Calendar API.
  2. Add the scopes: calendar.readonly, openid, email, profile.
  3. Create an OAuth client ID of type Desktop app.
  4. Put the client ID and secret in GoogleAuthConfig.swift.

Sign in opens Google in the browser and catches the redirect on 127.0.0.1. That needs the com.apple.security.network.server entitlement, which is already set in Recess/Recess.entitlements. Keep it while Google Calendar is on.

Privacy

  • Your calendar and activity data stay on your Mac.
  • Google Calendar access is read only. Tokens are stored in the macOS Keychain.
  • There is no third party analytics or crash reporting.

Full policy: https://getrecess.xyz/privacy

Project layout

  • App app entry and lifecycle
  • MenuBar menu bar controller and the popover UI
  • Timer the focus and break timer
  • Overlay the full screen break
  • Break break exercises and presentation detection
  • Reminder meeting and personal reminders
  • Models settings and data types
  • Services calendar, auth, activity, sound, screenshots, keychain
  • Settings the settings window

Support

License

Proprietary. Copyright Kester Atakere. All rights reserved.

Releases

Packages

Contributors

Languages