CapyTimer is a lightweight macOS menu bar app built with SwiftUI. It combines a Pomodoro timer with a simple todo list and quick notes, designed for focus and flow.
- Pomodoro timer with configurable focus and break durations
- Menu bar window with compact, touch-friendly UI
- Todo list with check/strike and delete
- Notes pane for quick jotting
- Local notification when a session finishes
- Optional sound at end of session (bundled
capysound.wav
)
- Timer with progress, start/pause, reset
- Todo list with add, complete, remove
- Notes editor
- Settings for durations
- macOS 14+
- Xcode 15+
- Open the project:
- Double-click
CapyTimer.xcodeproj
- Double-click
- Build and run (⌘R) with the
CapyTimer
scheme. - Grant notification permission on first launch.
The project includes CapyTimer/capysound.wav
. The app plays this sound at the end of a focus session. Replace it with another short WAV if desired (same name), or adjust the resource name in TimerManager.playSound()
.
- In the app window, set focus and break minutes in Settings and press Save. The timer resets using the new durations.
CapyTimer/
├── CapyTimerApp.swift # Main app entry point
├── CapyTimer.entitlements # App entitlements
├── Core/ # Business logic and data management
│ ├── Managers/ # Manager classes
│ │ ├── TimerManager.swift # Timer functionality
│ │ ├── TodoManager.swift # Todo list management
│ │ ├── NotesManager.swift # Notes management
│ │ └── NotificationManager.swift # Notification handling
│ └── Models/ # Data models (ready for future expansion)
├── UI/ # User interface components
│ ├── Views/ # SwiftUI views
│ │ ├── ContentView.swift # Main content view
│ │ ├── TodoView.swift # Todo list view
│ │ ├── NotesView.swift # Notes view
│ │ └── SettingsView.swift # Settings view
│ ├── Components/ # Reusable UI components (ready for future expansion)
│ └── Theme/ # Design system and styling
│ └── CapyTheme.swift # Theme, colors, and UI components
└── Resources/ # App resources
├── Images/ # Image assets
│ └── Assets.xcassets/ # App icons and color sets
└── Sounds/ # Audio files
└── capysound.wav # Timer completion sound
PRs welcome. Keep code clear and consistent with existing SwiftUI style. Prefer reusable components in CapyTheme.swift
.
- Go to Latest Release.
- Download the
.dmg
file. - Drag CapyTimer.app into your Applications folder.
How to use it: Open the Terminal application. Type
xattr -cr
(note the trailing space). Drag the application or file you want to modify from Finder into the Terminal window. This will automatically populate the full path of the item. Press Enter to execute the command.