About, not at. Threshold is a minimalist alarm clock for Android and Desktop that replaces rigid, to-the-minute alarms with flexible time windows. Its core feature, Random Window mode, lets you define a range (for example, 07:00-07:30) and rings at a random moment within it.
This repository is a pnpm workspace monorepo.
apps/threshold: Main Tauri v2 application (React + MUI)apps/site: Static landing pagepackages/core: Shared TypeScript scheduler/typesplugins/alarm-manager: Native alarm scheduling bridgeplugins/app-management: Mobile lifecycle/app-management helpersplugins/theme-utils: System theme and Material You utilitiesplugins/time-prefs: 12/24-hour time preference bridgeplugins/wear-sync: Wear OS sync integration pluginplugins/toast: Android toast bridge plugin
- Node.js 20+
pnpm- Rust (stable)
- Android Studio + SDK (for mobile builds)
pnpm installpnpm dev:desktop
pnpm dev:androidpnpm testpnpm formatUse the interactive release TUI to update phone and Wear versions in one flow:
pnpm version:releaseWhat it updates:
apps/threshold/src-tauri/tauri.conf.json(version)apps/threshold-wear/build.gradle.kts(versionName+versionCode)- Optional:
apps/threshold/package.json(version)
TUI shortcuts:
hor?for helpqto quit- Version step:
1/ppatch,2/mminor,3/Mmajor,4/ccustom - Version step:
←/→(or mouse wheel) to cycle bump options,Enter/left click/middle click to confirm - Review step:
aapply,bback/restart - Review step: right click (or mouse back button) maps to back when available
TUI behaviour:
- Uses an alternate screen buffer and restores the terminal on exit
- Handles terminal resize events and redraws to the new dimensions
- Ignores non-action escape sequences (for example, unsupported mouse events)
adb logcat -s threshold:* AlarmManager:* AlarmManagerPlugin:* AlarmReceiver:* AlarmRingingService:* BootReceiver:* SetAlarmActivity:* AlarmService:* ThemeUtils:* TimePrefsPlugin:* chromium:I Tauri/Console:* *:E > logcat.log