⚠️ ACTIVE DEVELOPMENT WARNING This project is currently under intensive development. Many features described in this README are not yet fully functional or may not work as expected. The app is in early alpha stage and should be considered experimental. Use at your own risk.
A privacy-focused, offline alarm clock for Android with voice command support.
Want to test the current alpha version? Download the latest APK:
Control your alarms and timers using natural English voice commands:
- "Set alarm for 7 AM"
- "Set timer for 5 minutes"
- "Set alarm for 8:30 in the morning"
- "Set timer for 10 minutes"
All voice processing happens 100% on-device using Vosk - no internet required.
See VOICE_COMMANDS.md for complete list.
-
Alarms with full customization
- Repeating alarms with weekday selection
- Gradual volume increase for gentle wake-up
- Snooze functionality
- Pre-alarms (1-10 configurable pre-alarms before main alarm)
- Multiple alarm tones
- Per-alarm vibration and flash options
- 3-tier fallback system (prevents silent alarms)
- Respects system alarm volume settings
-
Timer with voice and manual controls
-
Stopwatch with lap tracking
- No Internet permission - works 100% offline
- No Google Play Services - works on degoogled devices
- No analytics or tracking - your data stays on your device
- Open source - auditable code under GPL-3.0
- Material Design 3 (Material You) with dynamic theming
- All-in-one screen with:
- Recent alarms at top (quick enable/disable)
- Recent timers with restart buttons
- Large voice command button
- Quick stopwatch access
- Expandable FAB for quick alarm/timer creation
- Adaptive layouts for phones and tablets
- Dark mode support
- Clean, intuitive interface
Download the latest APK from Releases
Add this repository URL to Obtainium for automatic updates:
https://github.com/dz0nni/voicebell
- Android 10.0 (API 29) or higher
- Microphone (for voice commands)
- ~60MB storage (includes offline voice recognition model)
- Download the APK from Releases
- Enable "Install from Unknown Sources" in Android settings
- Open the APK file and install
See BUILD.md for detailed build instructions.
git clone https://github.com/dz0nni/voicebell.git
cd voicebell
./gradlew assembleReleaseUsing Voice Commands (Recommended):
- Tap the large microphone button on the main screen
- Speak your command: "Set alarm for 7 AM"
- Voice recognition confirms your alarm
Manual Setup:
- Tap the + button (FAB) on the main screen
- Select "Alarm"
- Set your desired time
- Choose repeat days (optional)
- Customize alarm tone, vibration, flash, and other options
- Tap Save
For deep sleepers, enable pre-alarms to receive gentle notifications before your main alarm:
- When creating/editing an alarm, tap "Pre-alarms"
- Choose number of pre-alarms (1-10)
- Set interval between pre-alarms (default: 7 minutes)
- Pre-alarms will start at
(count × interval)minutes before main alarm
Using Voice Commands (Recommended):
- Tap the large microphone button on the main screen
- Speak your command: "Set timer for 5 minutes"
- Voice recognition confirms your timer
Manual Setup:
- Tap the + button (FAB) on the main screen
- Select "Timer"
- Enter duration using the picker
- Tap Start
- Grant microphone permission when prompted (Settings → Permissions)
- Download voice recognition model (Settings → Voice Commands → Setup)
- Tap the large microphone button on the main screen
- Speak your command clearly in English
- Voice recognition works completely offline
Access settings by tapping the ⚙️ icon in the top right corner:
Voice Commands:
- Enable/disable voice commands
- Download offline voice recognition model (~40 MB)
- Delete voice model to free up storage
Display:
- Toggle 24-hour format
Permissions: (all required for full functionality)
- Microphone Access (Critical - for voice commands)
- Notifications (Critical - for alarm/timer alerts)
- Schedule Exact Alarms (Critical - for precise alarm timing)
- Battery Optimization (Important - for reliable background operation)
- Full-Screen Notifications (Recommended - show alarms when phone is locked)
About:
- App version information
- Open source licenses
VoiceBell is designed with privacy as the top priority:
- No network access: The app has NO internet permission
- Offline voice recognition: Uses Vosk for 100% on-device processing
- No data collection: We don't collect, store, or transmit any user data
- No third-party SDKs: No analytics, crash reporting, or ad frameworks
- Open source: Full transparency with GPL-3.0 license
See our Privacy Policy for details.
- Language: Kotlin 100%
- UI Framework: Jetpack Compose with Material Design 3
- Architecture: MVI (Model-View-Intent) + Clean Architecture
- Database: Room (SQLite)
- Voice Recognition: Vosk (offline)
- Dependency Injection: Hilt
- Background Tasks: WorkManager
- Min SDK: 29 (Android 10)
- Target SDK: 35 (Android 15)
See ARCHITECTURE.md for technical details.
VoiceBell has comprehensive documentation for users, contributors, and developers:
- Documentation Index - Complete overview of all project documentation
- Architecture - Technical architecture and design decisions
- Testing Guide - Comprehensive unit testing guide
- Testing Summary - Current testing status and statistics
- Voice Commands - Complete voice command reference
- Contributing - Contribution guidelines
- Privacy Policy - Privacy and data handling
- Build Instructions - How to build from source
For a complete list of all documentation, see DOCUMENTATION_INDEX.md.
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
- Fork the repository
- Clone your fork
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Run tests:
./gradlew test - Commit:
git commit -m "Add amazing feature" - Push:
git push origin feature/amazing-feature - Open a Pull Request
See docs/BUILD.md for detailed build instructions.
Quick build:
./gradlew assembleDebugRelease build:
./gradlew assembleRelease# Run unit tests
./gradlew test
# Run instrumentation tests
./gradlew connectedAndroidTest
# Run all tests
./gradlew checkThis project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
Copyright (C) 2025 VoiceBell Contributors
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
- Vosk - Offline speech recognition
- Material Design 3 - Design system
- Jetpack Compose - Modern Android UI
- Bug reports: GitHub Issues
- Feature requests: GitHub Discussions
- Security issues: See SECURITY.md
- Basic alarm functionality
- Voice command support (offline)
- Timer and stopwatch
- 3-tier alarm fallback system (prevents silent alarms)
- World clocks for multiple time zones
- Alarm challenges (math problems, shake to dismiss)
- Custom alarm sounds from storage
- Sleep timer
- Bedtime routine
- More language support for voice commands
Yes! VoiceBell is specifically designed to work on degoogled devices, LineageOS, GrapheneOS, etc.
Vosk provides good accuracy for English commands in quiet environments. For best results, speak clearly and use the exact command phrases listed in VOICE_COMMANDS.md.
The app includes a ~40MB offline voice recognition model to enable voice commands without internet access.
This feature is planned for a future release. Currently, you can choose from the built-in alarm tones.
No. The app only uses background resources when alarms are scheduled (using Android's efficient AlarmManager). Voice recognition only runs when you actively press the microphone button.
Made with privacy and respect for users.

