FocusRadar is a macOS-native attention thread hub for people who work across multiple AI chats, coding agents, browser sessions, terminal windows, remote desktops, and personal work loops.
It is not a todo list and it does not try to decide whether work is finished. Its job is to help you capture active threads, leave them safely, and return at the right time to check real progress.
V1 is implemented as a SwiftPM macOS app and records all data locally.
Core loop:
- Press the global shortcut to open the Switchboard.
- Capture the current window or supported browser tab.
- Create a long-lived thread or continue an existing one.
- Let the thread sit in
Thinking. - When the reminder fires, it becomes
Needs Check. - Use
Jump and Next Round,Continue Anyway, or other folded actions to move the thread forward. - Complete the thread when the work is actually done and search it later in the archive.
See docs/v1-readiness.md for the current verification record and known V1 limits.
- macOS menu bar app with Switchboard and Personal Radar windows.
- Global shortcut shell for capture-first workflows.
- Current foreground window capture.
- Safari, Chrome, and Microsoft Edge tab capture.
- Three user-facing states:
Thinking,Needs Check, andDone. - Layered reminders: menu bar state, light prompt, and delayed notification fallback.
- Draggable radar map with saved per-thread positions.
- Right-side inspector with target, reminder interval, actions, timeline, and screenshots.
- Local SQLite persistence.
- Local screenshot attachments stored in Application Support.
- Archive search over title, target, URL, notes, and checkpoint text.
- Local deterministic completion summaries.
FocusRadar V1 is local-first.
It does not:
- call AI APIs;
- invoke CLI or MCP summary tools;
- upload screenshots;
- perform OCR or image understanding;
- read AI conversation internals;
- sync across devices;
- ship Windows or Linux helper agents.
The data model leaves room for future explicit analysis workflows, but V1 does not send thread contents or screenshots anywhere.
swift test
./script/build_and_run.sh --verify./script/build_and_run.sh --verify builds an app bundle under dist/, launches it, and exits after confirming the process starts.
swift build
swift test
git diff --checkThe package is split into small targets:
FocusRadarCore- domain models, reducer, search, repository protocol.FocusRadarPersistence- SQLite persistence, settings, attachment file paths.FocusRadarServices- macOS integrations for capture, jump, screenshot, reminders, and hotkeys.FocusRadar- SwiftUI app shell and views.
FocusRadar is available under the MIT License. See LICENSE.
- Jump failure recovery offers
Change TargetandContinue Anyway, but does not yet classify every failure into contextual buttons such asOpen App,Open Browser, orOpen Permission Settings. - Screenshot failure shows a light prompt and supports manual attachment, but does not yet expose a dedicated permission-settings shortcut.
- Radar keyboard support relies on selected-thread actions and inspector shortcuts; richer dot-to-dot keyboard navigation can be added later.