A focused Pomodoro timer for your desktop — build sessions, run work/chill cycles, and track your focus over time.
Flow Fusion is a desktop focus app built with Flutter. You compose sessions out of ordered Work and Chill blocks, run them with pause / resume / skip, and get a desktop notification when each timer and the whole session finishes. An analytics screen shows your total and daily focus time with a year-long focus heatmap.
- Focus sessions — create sessions as sequences of Work and Chill timers.
- Run controls — start, pause, resume, and skip; state is restored on restart.
- Focus blocking — automatically close distracting apps (Windows & macOS) and block websites (Windows) while a Work timer runs.
- Desktop notifications — alerts when a timer or a session completes.
- Analytics — total sessions, total / today focus time, average session, and a year-long focus heatmap.
- System tray — close to tray and keep timers running; show window or quit from the tray.
- Themes & languages — system / light / dark themes, English and Russian.
- Automatic updates (OTA) — in-app update banner with a localized "What's new" changelog, plus a manual "Check for updates".
- Built-in diagnostics — file logging and a one-click log / diagnostics export in Settings.
During Work phases Flow Fusion can automatically get distractions out of the way. Both lists are configured per session in the editor and only apply while a Work timer is actively running — never during Chill, while paused, or on a manual phase hold. When the Work phase ends, everything is released.
- Apps (Windows & macOS) — pick apps to block (Windows: choose the
.exe; macOS: pick from installed apps). Flow Fusion asks them to quit gracefully (Windows:WM_CLOSE+ minimize; macOS: quit + hide — no force-kill), and re-closes them if reopened mid-phase. It never closes itself. - Websites (Windows only for now) — enter domains to block. While a Work
phase runs they are redirected to a dead end (
127.0.0.1/::1) in the systemhostsfile, so every browser is covered at once. Editinghostsrequires administrator rights, so the Windows build requests elevation (a UAC prompt) at launch. macOS website blocking is not available yet.
Windows 10 / 11 and macOS 10.14+ (Mojave and newer).
Download the latest build from the Releases page and follow INSTALL.md. Builds are currently unsigned, so the first launch needs a one-time Gatekeeper / SmartScreen bypass (covered in the guide). After that, the app keeps itself up to date automatically.
Requires the Flutter SDK (pinned to 3.44.2 in CI) with desktop support enabled.
git clone https://github.com/easyscripter/flow_fusion.git
cd flow_fusion
flutter pub get
dart run build_runner build --delete-conflicting-outputs # generate code
flutter run -d windows # or: -d macosGenerated sources (*.g.dart, *.config.dart, *.freezed.dart, lib/gen/) are
not committed — run build_runner after cloning and after changing annotated code.
Flutter · MobX (state) · get_it + injectable (DI) · froom over sqflite (database) · go_router (navigation) · window_manager + tray_manager (desktop shell) · flutter_local_notifications · desktop_updater (OTA).
Pushing a v* tag runs .github/workflows/release.yml, which builds Windows and
macOS, publishes the OTA feed to GitHub Pages, and creates a GitHub Release with
the installable ZIPs. .github/workflows/ci.yml runs analysis on every push/PR.
Flow Fusion is source-available, not open source. It is licensed under the PolyForm Noncommercial License 1.0.0: you may use, modify, and share it for noncommercial purposes only. The copyright holder retains all commercial rights. See LICENSE.md for details.
Found a bug or have a suggestion? Please open a GitHub issue and attach your log file and diagnostics — see the Reporting problems section of INSTALL.md for how to grab them from Settings → Diagnostics.
