Most focus tools try to reduce distraction by blocking apps or websites.
At first, this seems effective. But over time, it often becomes clear that blocking does not address the underlying habit. It only delays it. When restrictions are removed, the same patterns tend to return.
The Idea
Instead of preventing distractions, the idea is to make them visible. The goal is not to control behaviour, but to introduce a moment of awareness. When you switch away from your task, the app waits briefly and asks, “Was this intentional?” That is the only intervention. There are no restrictions, no lockouts, and no forced limits, and the user remains in control.
How It Works
The workflow is simple:
1. Define your scope
Choose which applications are relevant to your current task
2. Start a session
Set your intention and begin working
3. Detect context changes
If you switch to an application outside your scope, the app notices
4. Prompt for awareness
After a short delay, a prompt appears asking if the action was intentional
5. Continue or return
The decision is left to the user
Design Decisions
No Blocking
Blocking can create friction and often leads to workarounds. This tool avoids that approach entirely.
Local-First
The application does not require accounts or external services.
All data is stored locally on the user’s device.
Minimal Interface
The interface focuses only on what is necessary:
- defining scopes
- starting sessions
- reviewing basic usage
Gentle Interaction
The prompt is not immediate. A short delay helps avoid unnecessary interruptions.
Implementation Overview
The application is built as a desktop app using:
- Python
- PySide6 for the interface
- JSON for local storage
The project is organized into:
-
core/for monitoring and session logic -
ui/for the interface -
utils/for storage and helper functions
It is packaged as a Windows executable and available as an open-source project.
Open Source
The project is open source, and contributions are welcome. This can include improving monitoring accuracy, refining the user interface, or suggesting better workflows.
Links
This article was originally published by DEV Community and written by Syed Ishtiyaq Ahmed.
Read original article on DEV Community