This is a lightweight extension allowing you to start and stop countdown timers, stopwatches, and alarms. It works directly in Raycast, no external apps or dependencies required. Now available in the Raycast Store!
If you enjoy using Timers for Raycast and/or want to support further development, feel free to donate below!
Note: if you do not receive notifications from the timer completion, you may need to allow Script Editor notifications in your Focus settings.
If you'd like to file an issue, make a feature request, or improve the code in this extension, feel free to open an issue or PR! Here are a few pieces of advice:
raycast/extensions repo, please ping me (@ThatNerdSquared) so that I don't miss your request!@ThatNerd(Squared)) if I have not responded to you in a timely manner.src/hooks/useTimers.ts contains the custom React hook that I use for state management across various commands, and timerUtils.ts contains backend functions I use to create the actual timer files.customTimers.json file as an array of CustomTimers, and running timers are stored as text files where the filename is [date and time started, with illegal characters replaced with __]---[length of timer in seconds] and the file content is a single line with the name of the timer.Sound effects procured royalty-free from Mixkit.
Set a countdown for 2 minutes.
Set a countdown for 5 minutes.
Set a countdown for 10 minutes.
Set a countdown for 15 minutes.
Set a countdown for 25 minutes.
Set a countdown for 30 minutes.
Set a countdown for 45 minutes.
Set a countdown for 60 minutes.
Set a countdown for 90 minutes.
Set a countdown for a custom amount of time.
View, start, or stop existing countdown timers.
View, start, or stop existing countdown timers from the Menu Bar.
Start a stopwatch
View, start, or stop existing stopwatches.
Stop a ringing alert from a finished timer.
View, start, or stop existing stopwatches from the Menu Bar.
Play samples of different alert sound effects.
Stop the running timer closest to completion.
Configure which presets to show in the Timers Menu Bar.
.dismiss file wasn't being deleted when a timer was stopped, leading to a perpetually ringing timer (thanks to @atuooo for the contribution)useTimers hookformatUtilsSeconds|Minutes|Hours