Support / FocusTimer User Guide

User Guide · Pre-release

Everything FocusTimer can do, and where to find it.

FocusTimer is a menu-bar focus timer for the Mac that counts honestly. This guide walks every surface and every option — what it does, what its default is, and whether it syncs between your Macs. Each Settings pane is pictured beside the section that explains it.

Getting started

FocusTimer lives in two places, and they're the same surface:

  • The menu bar ring — a small ring that counts down the current phase all day. Click it for the full timer in a popover. It flashes gently when a paused timer is forgotten.
  • The main window — the same timer, bigger, plus toolbar doors to Stats and History.
First session in 10 seconds Click the menu bar ring → press ⌘ ↩ (or the big play button). You're in a Classic Pomodoro focus session — 25 minutes, strict by default. It rings when it's done and a 5-minute break begins.

The Settings window

Open Settings with ⌘ , or from the menulet's ⋯ menu. It works like System Settings: a searchable sidebar of eleven panes listed alphabetically, and a grouped form on the right. It opens on General, centered, every time.

General
About
Backup
Export
General
iCloud
Menu Bar
Notifications
Prevention
Sounds
Stats
Timer
Launch at login
Starts FocusTimer automatically when you log in — handy with the menu bar timer. This is per-device and doesn't sync.
Keyboard Shortcuts
Start / Pause / Resume⌘↩
Reset⌘R
Skip Phase⇧⌘K
Also available from the Timer menu.
Activity Log
Detailed activity log
Reveal Log in Finder
Records data activity — sessions, backups, settings — to help diagnose problems. Kept on this Mac only, rotated at 5 MB, never synced.
The Settings window, showing the General pane. The sidebar is alphabetical by design — a deliberate departure from System Settings' grab-bag order.

In the pane pictures throughout this guide, switches are shown at their factory defaults unless the caption says otherwise. Grey text beneath a group is the app's own explanation — the same words you'll read in the app.

The timer surface

Top to bottom, every element of the home screen:

  • The doors (top icon row) — tag, timer sets, strict padlock, and activities. They open the picker pages; the padlock arms strict mode in place. Once a session is running or paused the doors fade out — the session is committed.
  • The ring — fills up with elapsed time, classic pomodoro style. Purple during focus, blue during breaks; in the final 10 seconds of a phase it shifts to an urgent warm gradient. The phase names itself inside the ring — "Focus", "Strict Focus", "Short Break", "Long Break".
  • Transport — see Running a session.
  • The intent field — "What are you focusing on today?" Type a goal and press Return. While the session runs it becomes a ticker ("Currently focusing on: …"); double-click it to edit mid-session; the ⓧ outside the field clears a committed goal.
  • The orange status line — one slot, two readings that trade places: Round 2/4 · Next up 5m short break while you work, Today · 4 focus sessions completed · 1h 40 min between runs. If the selected activity has a schedule, a red budget warning can take this slot.
  • Current Session footer — display-only context for the running record: the activity line, then set and tag, each in its own color. Word-form empties ("No Activity", "No Tag") — a slot is never blank.

The menu bar ring — Settings › Menu Bar

Menu Bar
Show in menu bar
A ring in the menu bar counts down the current phase. Click it for quick controls.
Flash while paused
Pulses the menu bar ring so a forgotten paused timer catches your eye.
Both on by default. Turning the menu bar off disables the flash option with it.

Running a session

The transport — fixed order everywhere: Reset · Play/Pause · Skip · End
  • Play / Pause / Resume — the big button; also ⌘ ↩. Pauses are recorded (count and total paused time land in the session record).
  • Reset (⌘ R) — abandons the current phase and returns it to full duration. For a begun focus session this is a void — the record keeps the time, credit is not given.
  • Skip (⇧ ⌘ K) — jumps to the next phase. A skipped focus session is voided; a skipped break is just noted as cut short. Skips never advance the round and never trigger auto-start.
  • End (red stop) — ends the whole run: session voided if one is open, the cycle returns to Round 1. Appears only while a session is active, and always asks first — the confirmation replaces the transport row and is phase-honest about what ending means.
  • Switching sets mid-run — not allowed; the set is a commitment for the run. Tags stay changeable.

Auto-start

Two independent switches in Settings › Timer (both off by default): Auto-start breaks and Auto-start focus sessions. Only natural completions auto-start the next phase — a skip never does. The pane is pictured under How counting works.

How counting works

The rule the whole app is built on (read it in the app under Settings › About › How FocusTimer Counts…):

The counting canon A focus session either rings (Completed — the only thing that earns credit) or it's voided (skipped, reset, or abandoned — the mechanism is recorded). There is no partial focus session. Time is always kept either way.
  • Breaks are timing data, never scored — History shows them as "Taken" or "Cut Short", neutrally.
  • Rounds — only completed focus sessions advance the round; every Nth earns the long break (N is the set's "rounds before long break").
  • Goals & streaks — a day meets its goal by completed focus sessions; a streak is ≥ 1 completed focus session per logical day.
  • Day start — sessions before your day-start hour count toward the previous day, for night owls.

Settings › Timer

Timer
Every timing scheme is a set — switch, create, and edit them from the timer's set pages. The built-ins (Classic Pomodoro, Extended Focus, Deep Focus) are fixed and always available there. Custom sets sync across your devices.
Goal
Daily goal4 sessions
Day starts atMidnight
The daily goal drives the Stats screen. Sessions before the day-start hour count toward the previous day — for night owls.
Automation
Auto-start breaks
Auto-start focus sessions
Start the next phase automatically when the current one completes. Skipping a phase never auto-starts the next.
Restore Defaults
Resets preferences and returns timing to Classic Pomodoro. Custom sets and tags are kept.
Daily goal 1–20 (default 4); Day starts at Midnight–6 AM. Note what isn't here: durations. Timing always comes from a set.

Timer sets

Every timing scheme is a set: focus / short break / long break / rounds before long break. Switch, create, and edit sets from the timer's tray door — not from Settings. Applying a set writes the four values — a running session is never interrupted.

Built-in setTimingsStrictNotes
Classic Pomodoro25 / 5 / 15 × 4On · lockedThe name carries the rules — strict can't be disarmed on Classic. Duplicate it to make a loose copy.
Extended Focus50 / 10 / 20 × 2On by defaultStrict is the default; you decide.
Deep Focus90 / 20 / 30 × 2On by defaultLong-block work. Strict is the default; you decide.

Built-ins are immutable in name and timing, but you can give any of them your own icon and color. Custom sets are fully yours:

  • Name (up to 17 characters), icon, and color — the set's identity shows in the picker, the footer, and History.
  • The four timings — focus and breaks 1–180 minutes, rounds before long break 2–8.
  • Strict by default — whether selecting this set arms the padlock.
  • Prevention — whether sessions on this set block apps and/or websites, and what happens on breaks (see Distraction prevention).
  • Custom sets Syncs and survive Restore Defaults — they're your content, like tags.

Strict mode

The padlock door arms strict for the next focus session. While a strict focus session runs:

  • Pause and Skip are removed — not disabled, gone. The transport collapses to Reset · End.
  • The ratchet — you can arm strict anytime (it engages a running focus immediately), but you cannot disarm it mid-focus. Reset or End Run are the only exits, and both are voids.
  • Breaks are never locked, and the phase title reads "Strict Focus" whenever strict is armed, so there's never a surprise.
  • Arming is a per-sitting choice — it isn't remembered across launches; the active set's default seeds it.

Tags

A tag is the kind of work — Writing, Code, Admin. One tag is active at a time; it sticks across sessions and launches until you change it. Tags live behind the timer's tag door, not in Settings.

  • Create from the tag door: type a name (up to 17 characters), pick a palette color. Names are unique, case-insensitive.
  • Tags vs. Archived — two subpages. Archiving hides a tag from pickers without touching history; reusing an archived name revives the same tag.
  • Delete is permanent and fresh-start: history keeps its sessions' snapshots, but recreating the same name later makes a new tag identity.
  • Retroactive tagging — right-click any History row to change its tags after the fact.
  • Filter History and Reports by tag; the Stats lens breaks focus time down by tag.

Activities

An activity is the project — the biggest unit of context. Selecting one configures the timer in one click; its pages live behind the checklist door.

  • Info — name, icon, color, description, and status (Active ⇄ Archived).
  • Defaults — an activity can carry its own timer set, tag, and strict preference. Selecting the activity applies them (never interrupting a run — deferred changes are applied honestly and logged).
  • Schedule — start/end dates, time allowance, and work-week days; the timer's status slot turns into a budget line and warns in red in the last quarter.
  • Billing — hourly rate and currency. Sessions snapshot the rate at the time they run, which is what Reports turns into money.
  • Archive vs. Delete — archive to shelve a project; delete is permanent (a 30-day tombstone protects against restore resurrection). Session history always keeps its snapshots.
The one-click setup Give "Website Redesign" a default set (Deep Focus), default tag (Writing), and strict on. From then on, selecting that activity readies the whole timer — set, tag, padlock — in a single click.

Distraction prevention

Two lists live in Settings › Prevention; whether they're enforced is decided per timer set in the set editor.

Prevention
Blocked Applications
Slack
Messages
News
Add App…
Blocked apps are hidden while a focus session that blocks apps runs, and re-hidden if reopened — they keep running with their windows and unsaved work. System apps like Finder, the Dock, and FocusTimer itself can't be blocked. Turn blocking on per timer set in the set editor.
Blocked Websites
youtube.comSubdomains
reddit.comSubdomains
example.comAdd
Website blocking works with Safari, Chrome, Edge, Brave, Vivaldi, and Opera — a blocked tab is sent to the focus page. Firefox can't be controlled this way; to cover it, add Firefox to your blocked applications. Matching is by domain: with subdomains on, a domain also covers www., old., and other prefixes, but never unrelated names like notreddit.com.
Both lists start empty. Each row has its own switch, so you can keep an entry without enforcing it right now. Long lists scroll inside their box.
  • The first session that blocks a browser triggers a one-time macOS permission prompt to control that browser.
  • Each set also chooses its break behavior — whether breaks keep the block or lift it.
  • Ending the session always ends the blocking, instantly.

Sounds & ambience

The picture shows the pane; the tables below give every default and whether it syncs.

Sounds
Mute all sounds
Sounds
Focus start
Break start
Tick every second
Skip
Phase complete
The per-second tick is off by default — most people find it distracting over a full session.
Alert Sounds
Focus startHero
Break startBlow
SkipFunk
Phase completeGlass
Choosing a sound plays it.
Ambience
Play background noise
NoiseBrown noise
Volume
Play during breaks
Generated noise — nothing recorded, nothing downloaded — plays while the timer runs and fades out when it ends or pauses.
Two details worth noticing: Alert Sounds lists only the events you've enabled — the tick is absent here because it's off — and the ambience sub-controls stay dimmed until you turn background noise on.

Alert sounds

OptionDefaultSoundScopeWhat it does
Mute all soundsOff—SyncsMaster switch over every app sound.
Focus startOnHeroSyncsPlays when a focus session starts or resumes.
Break startOnBlowSyncsPlays when a break starts or resumes.
Tick every secondOffTinkSyncsThe classic per-second tick — off by default.
SkipOnFunkSyncsPlays when a phase is skipped.
Phase completeOnGlassSyncsThe ring — plays when a phase finishes naturally.

Every enabled event gets its own picker drawn from the system sound library, so you can swap any of those defaults.

Ambience — generated background noise

OptionDefaultScopeWhat it does
Play background noiseOffSyncsSynthesized noise under running sessions — nothing recorded, nothing downloaded. Turning it on turns the tick off.
NoiseBrown noiseSyncsBrown (deepest), pink, or white.
Volume50 (0–100)SyncsGentle by design — the ceiling is deliberately moderate.
Play during breaksOffSyncsBy default ambience accompanies focus only.

The envelope is part of the design: a quiet hold after the start chime, a ~15-second rise, and a gentle wind-down across the final 15 seconds so the phase lands at silence. Pausing or muting fades out quickly.

Notifications & Do Not Disturb

Notifications
Permission
NotificationsEnabled
FocusTimer uses notifications for one thing only: telling you a focus session or break has ended while you're working in another app.
Alerts
Banner when a phase ends
Full-screen break
Full-screen break fills the display with the break countdown when a focus session ends. Press Escape to hide it.
Do Not Disturb
Turn on Do Not Disturb during focus sessions
Runs the Focus Timer shortcuts through the Shortcuts app to switch Do Not Disturb on when a focus session starts and off when it ends, pauses, or is voided. The first session asks once for permission to control Shortcuts. This choice is per-device.
Shown after permission has been granted. Before that, the first row is an Enable Notifications… button — the system prompt never appears on launch, only when you ask for it here.
OptionDefaultScopeWhat it does
Banner when a phase endsOnSyncsA banner when a session or break ends while you're in another app. The app plays its own sound, so the banner is silent.
Full-screen breakOffSyncsFills the display with the break countdown when a focus session ends. Esc or Hide dismisses it; it leaves when the break does.
Do Not DisturbOffThis MacDrives macOS Do Not Disturb through the Shortcuts app, tied to your focus sessions.

Stats

Open from the main window's chart button. Everything is derived at query time from raw session records, honoring your day-start hour.

  • Today's tally — the goal ring (completed focus sessions vs. your daily goal).
  • Streaks — current and best; a day counts with ≥ 1 completed focus session, and an empty today doesn't break the streak until the day actually ends.
  • Trend chart — focused time by Week / Month / Year (the one orange control on the screen).
  • Calendar heat map — a year of days; full purple = goal met.
  • Focus by time of day — the weekday × hour heat map that shows when you actually focus.
  • Lenses — switch the screen between overall focus and per-activity / per-tag breakdowns.

Settings › Stats

Stats
Summary Cards
Today's tally
Streak
All-time totals
Completion rate
Sections
Focused time chart
Calendar heat map
Focus by time of day
Choose what appears on the Focus lens. These choices sync across your devices.
Factory defaults: Completion rate and Focus by time of day start off — turn them on here or from the Stats screen's Customize popover, which is the same set of switches.

History

The complete ledger, grouped by day, newest first. Each row: phase (in identity color, "Strict Focus" marked by the lock), set, tag, duration — partials read "11:38 of 50:00" — and the honest outcome badge: Completed, Voided · Skipped / Reset / Interrupted, breaks as Taken / Cut Short.

  • Filter — the slider button opens a popover with Event, Result, Tag, Set, and When; active filters show as chips with an honest match count.
  • Detail — click a row for the full record, pauses included.
  • Retroactive tags — right-click a row to adjust its tags.
  • Delete Session… — right-click; the confirmation states the stats/streak consequence. Deletion is a tombstone, so restoring an old backup can't resurrect it.

History has no Settings pane — everything about it is on the screen itself.

Reports

Activity Reports turn the ledger into answers — for invoices, standups, or your own accounting.

  • Period — Today, and wider windows via the period dropdown; filters use the same grammar as History.
  • Tiles — totals for the filtered slice, including money.
  • Time by Activity — a breakdown with Unassigned always last; clicking a row drills the whole report into that activity.
  • Focus Over Time — the filtered trend.
  • Summary ⇄ Sessions — flip between the aggregate and the underlying session list.
  • Money — computed only from each session's snapshotted rate, kept per-currency, never converted. Rate changes are lifecycle facts — old sessions keep old rates.
  • Export — the report as CSV, ready for a spreadsheet.

Export

One-click export of every recorded session — from the Stats toolbar or Settings › Export. Nothing is uploaded anywhere; the file goes only where you choose.

Export
Format
Default formatCSVJSON
TimestampsSpreadsheet
Used whenever you export — here or from the Stats screen. Spreadsheet-friendly timestamps (local time) open cleanly in Excel and Numbers; ISO 8601 is best for scripts and databases. Both settings sync across devices.
Export Sessions…
Saves every recorded session. Nothing is uploaded anywhere — the file goes only where you choose.
Exports carry every field — timings, outcome, pauses, tags, set and activity snapshots, strict flag, intent — so the data works outside the app.

Backup & restore

Backups are complete, human-readable JSON copies of your history (sessions, tags, activity events, custom sets), written automatically and verified.

Backup
Automatic Backups
Back up automaticallyDaily
Keep last 10 backups
Remove backups older than
Backups are complete, human-readable JSON copies of your session history, stored on this Mac. The newest backup is never removed, no matter how old.
Backups
Jul 30, 2026 at 9:12 AM146 sessionsRestore…
Jul 29, 2026 at 8:47 AM141 sessionsRestore…
Jul 28, 2026 at 9:03 AM137 sessionsRestore…
Back Up NowRestore from File…
Each backup shows its date and how many sessions it holds — so you can tell at a glance what you'd be restoring. Right-click a row for Reveal in Finder or Delete.
OptionDefaultScopeWhat it does
Back up automaticallyDailySyncsEvery launch · Hourly · Daily · Weekly. Backups also run after sessions end, so a menu-bar app that stays open for weeks still backs up on time.
Keep last N backups10 (3–50)SyncsHow many dated backups to retain. The newest is never removed, no matter how old.
Remove backups older thanOff · 30 days (7–365)SyncsOptional age-based purge; also governs safety copies.
Back Up Now——Writes and verifies a backup immediately.
Restore from File…Merge—Merge (recommended) adds what you don't have and keeps the newer version of what you both have — running it twice changes nothing. Replace everything requires an explicit "I understand" and writes a safety backup of the current state first.
  • Restore is unavailable while the timer is running — stop the timer first.
  • Safety copies — written automatically before restores and schema migrations, and when a damaged file is set aside. They get their own section in the pane when any exist.
  • If the store is ever damaged — the app tells you loudly at launch and walks you through restoring from the dated list. Corruption is never silent.

iCloud

Everything iCloud is opt-in and lives in one pane. Nothing touches iCloud until you turn it on.

iCloud
Settings
Sync settings across devices
Values in iCloud30
Last receivedJul 30, 2026 at 8:41 AM
Off by default — nothing is sent to iCloud until you turn this on. Enabling uploads this Mac's current settings and keeps them in sync with your other devices. Turning it off stops syncing on this Mac without deleting anything.
Backups
Keep copies of backups in iCloud Drive
Off by default. Each verified backup is also copied to your iCloud Drive with this Mac's name in the filename; other Macs' copies are never touched. Local backups on this Mac remain the source of truth either way.
Backup Folder
Choose Backup Folder…
Also keep a copy of each backup in a folder you choose — for example a folder in iCloud Drive, where you can see the files in Finder and on iCloud.com. This choice is per-device.
Shown with settings sync on so you can see the status rows it reveals — the count of values in iCloud and when this Mac last heard from another. All three switches are off out of the box.

If you're not signed in to iCloud, the pane says so at the top and the switches are disabled until you sign in from System Settings.

General, shortcuts & automation

The General pane is pictured in The Settings window above. What's in it:

OptionDefaultScopeWhat it does
Launch at loginOffThis MacStarts FocusTimer automatically when you log in. If macOS refuses the change, the switch reverts to the system's actual state.
Keyboard Shortcuts——A reference list of the three timer shortcuts, also available from the Timer menu.
Detailed activity logOnThis MacRecords data activity (sessions, backups, settings) to a local log for diagnosing problems — 5 MB rotation, never synced. Confirmations of destructive actions are always recorded even with this off.
Reveal Log in Finder——Opens the log file's folder.
Restore Defaults——Lives in Settings › Timer: resets preferences and returns timing to Classic Pomodoro. Custom sets and tags are kept; iCloud enrollment is untouched.

Keyboard shortcuts

ShortcutAction
⌘ ↩Start / Pause / Resume
⌘ RReset the current phase
⇧ ⌘ KSkip to the next phase
⌘ ,Open Settings
EscDismiss the full-screen break

Shortcuts app

FocusTimer ships App Intents: Start Timer, Pause Timer, Skip Phase, End Run, and Sessions Today (a query). Use them from Shortcuts, Spotlight, or automations — for example, a personal automation that switches your Mac's Focus mode whenever a session starts. The built-in Do Not Disturb toggle uses the same machinery.

Settings quick reference

Eleven panes, alphabetical — what lives where:

PaneWhat's in it
AboutVersion · How FocusTimer Counts… · Privacy Policy.
BackupAutomatic interval · keep count · age purge · backup list · Back Up Now · Restore from File… · safety copies.
ExportDefault format (CSV/JSON) · timestamp style · Export Sessions…
GeneralLaunch at login · keyboard shortcut reference · detailed activity log.
iCloudSettings sync · backup mirror · custom backup folder · sync status.
Menu BarShow in menu bar · flash while paused.
NotificationsPermission · banner · full-screen break · Do Not Disturb during focus.
PreventionBlocked applications list · blocked websites list (subdomain matching).
SoundsMute all · five per-event toggles · per-event sound pickers · ambience (noise, volume, breaks).
StatsWhich summary cards and sections the Stats screen shows.
TimerDaily goal · day-start hour · auto-start (breaks / focus) · Restore Defaults.

Note what has no Settings pane, by design: timer sets, tags, and activities are all managed on the timer surface itself, and History and Reports are configured on their own screens.

One rule of thumb Preferences sync (when you opt in); device choices don't — launch at login, iCloud enrollment itself, the backup folder, Do Not Disturb, and the activity log stay per-Mac. Your content — custom sets, tags, history — is never touched by Restore Defaults.