Friction Timer is an Android app that adds a waiting period before you can use selected apps.
When you open an app you've added to the list, Friction Timer displays an overlay on top of it, preventing you from using the app while a countdown runs.
You can wait for the timer to finish or cancel and back out.
The point is simple: make impulsive opens slower.
- Adds friction before you can use selected apps
- Lets you choose a different wait time for each app
- Lets you set a cooldown before the overlay appears again
- Shows your own messages on the overlay while the timer runs
Download the latest APK from the Releases page.
This project is set up for Android with Tauri 2.
- Node.js and
pnpm - Rust stable via
rustup - Android SDK and an emulator or USB-connected device
Install the Rust Android targets once:
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-androidInstall dependencies:
pnpm installRun the app on a connected Android device or emulator:
pnpm tauri android devCreate a release build:
pnpm tauri android buildGenerated APKs are placed under src-tauri/gen/android/app/build/outputs/apk/.
- Friction Timer uses an
AccessibilityServiceto detect when a selected app moves to the foreground. - It shows an overlay that blocks interaction until the countdown finishes.
- The overlay includes:
- a message from your configured list
- a disabled button that counts down and later changes to "Proceed"
- a "Cancel" button
- After you proceed, the overlay can appear again the next time that app opens once its cooldown has expired.
- Each app can have its own wait time, cooldown, and messages.
Thanks to digipaws for the inspiration. Their source code served as a reference for the implementation of this app.
This project is distributed under the AGPLv3 License. See the LICENSE file for details.




