ZoneBlock is a native macOS focus companion built for people who want more than a Pomodoro timer. It combines a fast menu bar workflow, a full companion window for planning and review, on-device coaching, and system-level distraction control in a product designed around Apple's Liquid Glass direction.
| Active focus session | Today dashboard |
|---|---|
![]() |
![]() |
| Strong coach intervention | Session completion |
|---|---|
![]() |
![]() |
ZoneBlock is designed to reduce the gap between intention and action.
- Calm, low-friction focus in the menu bar for starting quickly and staying oriented.
- Recovery-first coaching that helps you get back on track without guilt-heavy nudges.
- On-device intelligence so behavior analysis, recommendations, and interventions stay private.
- A premium native feel built around an Obsidian Glass visual language, strong hierarchy, and restrained motion.
- Two-surface workflow: a lightweight menu bar timer plus a deeper companion window for planning, trends, projects, settings, and review.
- Personal Focus Coach: live drift detection, quick interventions, stronger re-engagement flows, and weekly insights.
- Guardian intelligence: app and website awareness, browser-domain tracking, and adaptive recommendations based on your real distraction patterns.
- System-wide blocking: optional website, app, and notification blocking tied to your focus sessions.
- Apple integrations: Calendar and Reminders support for planning, review, and session follow-through.
- Privacy-first by default: no cloud dependency, no account system, no remote inference.
- Lives in the menu bar so the core workflow is always one click away.
- Preset focus durations plus custom minute entry.
- Minimum 5-minute session guard.
- Live timer ring with state-specific visual language for idle, focusing, paused, break, and overtime states.
- Pause, resume, stop, and abandon flows with explicit session-state handling.
- Session cycle tracking for short and long breaks.
- Blocking status surfaced directly in the popover when protections are active.
- Post-session reflection flow with mood, achievement notes, and time splitting across projects.
- Manual stop pathway with explicit save/discard behavior.
- Continue options after completion: take a break, keep focusing, or end the session.
- Adaptive Suggested Earned Break option that rewards longer or harder effort with a more appropriate recovery window.
- Break-overrun classification chips and recovery prompts to improve future recommendations.
The companion window is the app's deeper control room and includes:
- Today — daily totals, session timeline, project progress, reminders, and behavioral summaries.
- Calendar — session history and planning surfaces tied to Apple Calendar and Reminders.
- Week — trend views and longer-range progress summaries.
- Insights — productive-hour patterns, focus behavior analysis, and personalized coach guidance.
- Projects — project creation, editing, colors, icons, and archive management.
- Settings — timer preferences, integrations, launch behavior, blocking controls, and coach configuration.
- Inline search-and-create project picker.
- Projects with custom colors and SF Symbol icons.
- Optional project-specific context such as linked blocking behavior.
- Archived projects remain preserved instead of being destructively deleted.
- Daily focus totals, session counts, streaks, and per-project breakdowns.
- Session timeline with mood and achievement context.
- Weekly and longer-range trend views.
- Cross-midnight attribution so long sessions are split correctly across days.
- Editable historical sessions for fixing project, mood, or achievement details after the fact.
- Daily focus-goal tracking in analytics and settings.
- Real-time drift/risk scoring during active sessions.
- Compact in-session interventions for quick recovery.
- Stronger coach window for higher-risk or ignored-drift scenarios.
- Pre-session intent capture for task framing and success criteria.
- Reason chips to separate legitimate interruptions from avoidant behavior.
- Weekly personalized insights based on intervention outcomes and behavioral history.
- Science-informed design influenced by procrastination, CBT, implementation-intention, and micro-break research.
- Frontmost-app tracking during active use.
- Browser-domain labeling when supported, so distracting sites can be identified with more precision than browser-app-level tracking alone.
- Adaptive recommendation signals that improve blocking suggestions and coach specificity.
- Screen-sharing-aware suppression rules to avoid disruptive popups in sensitive contexts.
- Optional website blocking using
/etc/hosts. - Optional app blocking and notification muting during focus sessions.
- Named blocking profiles with reusable website/app/notification sets.
- Default and project-specific blocking behavior.
- Crash-recovery cleanup for stale blocking state.
- Apple Calendar support for logging completed focus sessions.
- Apple Reminders support for planning and task completion flows.
- Reminder linking from relevant session flows and companion surfaces.
- Native SwiftUI app built around Apple's Liquid Glass direction for macOS 26+.
- Obsidian Glass visual language: dark premium materials, restrained accents, and strong content-first hierarchy.
- Motion tuned to behavioral states: calm during focus, escalating when drift or overrun matters, and celebratory when effort is rewarded.
- Review-driven UI evidence pipeline for regression-proof screenshots and motion capture.
- macOS 26 (Tahoe) or later
- Xcode 26 or Swift 6.2+
- Apple Silicon or Intel Mac (2020+)
# Clone
git clone https://github.com/goyal-chintan/focus-flow.git
cd focus-flow
# Build and launch as an .app bundle
bash Scripts/run.shbash Scripts/run.sh is the preferred local path because ZoneBlock needs to run as an app bundle for notification-related behavior.
brew tap goyal-chintan/zoneblock
brew install --cask zoneblock- Download the latest
ZoneBlock-*.dmgfrom the repository's Releases page - Drag
ZoneBlock.appintoApplications - On first launch, right-click the app and choose Open if macOS shows the standard warning for unsigned/not-notarized apps
git clone https://github.com/goyal-chintan/focus-flow.git
cd focus-flow
bash Scripts/install-and-register-smart.shSome features require system permissions:
| Permission | Why ZoneBlock requests it |
|---|---|
| Calendar | Save completed focus sessions to Apple Calendar |
| Reminders | Read and complete relevant reminders inside ZoneBlock workflows |
| Screen Recording | Read active browser window titles for browser-domain awareness; no screen pixels are captured or stored |
| Admin password | Apply optional website blocking through /etc/hosts |
ZoneBlock includes a deterministic UI-evidence pipeline for review artifacts:
./Scripts/capture-ui-evidence.shcapture-ui-evidence.sh now defaults to the non-disruptive swift test runner. You can still opt into xcodebuild explicitly with RUNNER=xcodebuild.
Example filters:
# Dark-mode only
APPEARANCE_FILTER=dark ./Scripts/capture-ui-evidence.sh
# Selected flows only
FLOW_FILTER=menu_bar_idle,coach_strong_window ./Scripts/capture-ui-evidence.shRefresh the published README screenshots from the deterministic dark-mode artifacts:
./Scripts/refresh-readme-screenshots.shArtifacts are written to:
Artifacts/review/<run-id>/
├── light/*.png
├── dark/*.png
├── light/timer_ring_animation.gif
├── dark/timer_ring_animation.gif
├── manifest.json
└── journey.md
Key modules in the codebase:
ViewModels/TimerViewModel.swift— session state machine, focus/break/overtime logic, earned-break calculations, and coach orchestrationViews/MenuBar/— primary popover workflowViews/Companion/— Today, Calendar, Week, Insights, Projects, and Settings surfacesViews/SessionCompleteWindow.swift— reflection, recovery, and break-choice flowsViews/CoachInterventionWindowView.swift— stronger focus-coach intervention surfaceServices/AppUsageTracker.swift— frontmost app and domain-aware context trackingServices/FocusCoach*.swift— risk scoring, intervention policy, messaging, insights, and persistenceServices/BlockingService.swift/Services/AppBlocker.swift— distraction controlsServices/CalendarService.swift/Services/RemindersService.swift— Apple integrationsModels/— projects, sessions, block profiles, task intent, app usage, and intervention history
- SwiftUI — native macOS UI
- SwiftData — local persistence
- EventKit — Calendar and Reminders integrations
- UNUserNotificationCenter — notifications and nudges
- SMAppService — launch-at-login support
- No external runtime dependencies — fully native, on-device implementation
MIT



