A simple, elegant desktop timer application for Windows that helps you stay focused on your tasks with customizable audio notifications.
- Task Management: Create, edit, and delete tasks with custom names and durations
- Timer: Visual countdown timer showing remaining time in HH:MM:SS format
- One Task at a Time: Focus on a single task without distractions
- System Tray Integration: Runs quietly in the background, accessible via system tray icon
- Persistent Storage: Tasks are saved locally and persist between sessions
- Multiple Notification Triggers: Set unlimited notifications at different intervals before task completion
- Flexible Timing: Configure notifications for any number of minutes before the task ends (e.g., 15 min, 5 min, 0 min)
- Pleasant Sounds: Choose from 5 different Windows system sounds:
- Beep (default)
- Asterisk
- Exclamation
- Hand
- Question
- Sound Preview: Test sounds before adding them with quick preview buttons
- Adjustable Beep Count: Set 1-10 beeps per notification for different urgency levels
- Windows Toast Notifications: Visual pop-up notifications appear in the bottom-right corner at 5 minutes remaining and when task completes
- Always Audible: Notifications play even when the app is minimized to the system tray
- Modern Design: Clean, minimal interface with Material Design-inspired styling
- Clear Visual Feedback: Color-coded buttons with proper enabled/disabled states
- Intuitive Controls: Easy-to-use task management and timer controls
- Responsive Layout: Well-organized sections for timer, task input, and task list
The main interface shows the countdown timer, task input form, and your list of saved tasks.
Customize notification triggers with specific timings, sounds, and beep counts.
- Download the latest release from the Releases page
- Extract
TaskBeat.exefrom the archive - Run
TaskBeat.exe- no installation required!
- .NET 9.0 SDK or later
- Windows 10/11
-
Clone the repository:
git clone https://github.com/yourusername/TaskBeat.git cd TaskBeat -
Build the project:
cd TaskBeat dotnet build -c Release -
Run the application:
dotnet run
-
(Optional) Publish as a self-contained executable:
dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=trueThe executable will be located at:
bin\Release\net9.0-windows\win-x64\publish\TaskBeat.exe
- Launch TaskBeat: Run the executable or double-click the system tray icon
- Create a Task:
- Enter a task name (e.g., "Deep Work Session")
- Set duration in hours and minutes
- Click "Add Task"
- Start Timer: Select a task from the list and click "▶ Start"
- Work Focused: The timer counts down and notifies you at configured intervals
- Stop or Complete: Click "■ Stop" to end early, or let the timer complete
- Edit: Click the "Edit" button next to any task to modify its name or duration
- Delete: Click the "Delete" button to remove a task from your list
- Reuse: Tasks persist between sessions - create your daily routine once and reuse it
- Click "⚙ Settings" at the bottom of the window
- Preview Sounds: Use the quick preview buttons at the bottom to hear each sound type
- Add Notification:
- Set "Minutes Before" (0 = when task completes)
- Choose number of beeps (1-10)
- Select sound type
- Click "🔊 Preview" to test your configuration
- Click "Add" to save
- Edit/Delete: Modify or remove existing notification triggers
- Click "Save" to apply changes
- Minimize: Close the window to minimize to system tray
- Restore: Double-click the tray icon to restore the window
- Exit: Right-click the tray icon and select "Exit" to close the app completely
TaskBeat stores your data locally in:
%AppData%\TaskBeat\
├── tasks.json # Your saved tasks
└── settings.json # Notification preferences
This data is never sent to external servers and remains completely private on your device.
TaskBeat comes with three pre-configured notification triggers:
- 15 minutes before: 1 beep (Beep sound)
- 5 minutes before: 2 beeps (Beep sound)
- Task completion: 3 beeps (Exclamation sound)
You can modify, add, or remove these in Settings.
- Framework: .NET 9.0
- UI: WPF (Windows Presentation Foundation)
- Language: C#
- Data Storage: JSON files (Newtonsoft.Json)
- Audio: Windows System Sounds (System.Media)
TaskBeat/
├── Models/
│ ├── TaskItem.cs # Task data model
│ ├── NotificationTrigger.cs # Notification configuration
│ └── AppSettings.cs # Application settings
├── Services/
│ ├── StorageService.cs # JSON file persistence
│ ├── SoundService.cs # Audio notification handler
│ └── TimerService.cs # Countdown timer logic
├── Windows/
│ ├── SettingsWindow.xaml # Settings UI
│ └── SettingsWindow.xaml.cs # Settings logic
├── MainWindow.xaml # Main UI
├── MainWindow.xaml.cs # Main application logic
└── App.xaml.cs # Application entry point
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by the Pomodoro Technique and other focus timer methodologies
- Built with love for developers, writers, and anyone who needs to manage their time effectively
If you find TaskBeat helpful, please consider:
- ⭐ Starring this repository
- 🐛 Reporting bugs via Issues
- 💡 Suggesting features via Issues
- 📣 Sharing with others who might benefit
Made with ❤️ for focused work