# A menu bar task timer for Mac, feature by feature

A menu bar task timer keeps one chosen task and its remaining time in the macOS menu bar, so the thing you committed to this morning stays visible without opening a window, a tab or a list.

- URL: https://swiftfox.studio/handbook/menu-bar-task-timer-for-mac
- About: https://swiftfox.studio/apps/anchored
- Published: 2026-07-06
- Updated: 2026-09-06
- Publisher: Swiftfox Studio (https://swiftfox.studio)

## In short

- A menu bar task timer shows one task title and its remaining time next to the clock, so today's priority is legible without opening anything.
- Anchored holds a short per-day queue rather than a backlog: you promote one item to be the anchor and the rest wait behind it.
- Durations are typed with the task - 45m, 1h30m, 1.5h - and the countdown starts when the task becomes the anchor, not when you wrote it down.
- Everything runs on the Mac: no account, no sync, one optional permission, and a one-time pay-what-you-want price.

## What a menu bar task timer is

A menu bar task timer is a small macOS app that keeps two things permanently
visible next to the clock: the name of the task you are working on, and how much
of its estimated time is left. Nothing else.

That is a narrower job than a to-do app and a wider one than a stopwatch. A
to-do app is optimized for capture and storage, which is why opening one at three
in the afternoon means re-reading fourteen items and re-deciding what matters. A
stopwatch counts minutes but has no idea what they are for. A task timer answers
one question, continuously: what am I supposed to be doing, and for how much
longer.

[Anchored](https://swiftfox.studio/apps/anchored) is the one this article walks through. Everything
below is in the shipping version, and the screenshots are of the real app rather
than mockups.

## The label in the menu bar

The whole design rests on the label. Anchored puts the task title and the
remaining time in the menu bar as one string:

`Write PRD · 32m`

Time is formatted as minutes below an hour, then as `1h` or `1h 25m`. When the
estimate runs out the label does not disappear or start beeping - it turns a
muted coral, so overrun is legible at a glance without being an alarm. With an
empty queue it reads **What's next?**, which is a prompt rather than a blank.

Long titles are the obvious risk with an approach like this, so the truncation
point is yours: a slider in Settings sets the maximum label length anywhere from
8 to 32 characters, and **Minimal idle** reduces the empty state to the anchor
glyph alone.

## The popover: one anchor, a queue, a day

Clicking the label - or pressing the global shortcut - opens a popover 388 points
wide, which is the width of the five-day strip and nothing more, and 560 tall,
with three bands.

![The Anchored popover with a rollover bar offering yesterday's unfinished work, the anchor task and its countdown, and the queue behind it](https://swiftfox.studio/anchored/listing/shot-1.jpg "Yesterday's two unfinished tasks offered at the top, the anchor with its 45 minute estimate and 32 minutes remaining, and the rest of the day queued behind it.")

A header runs above all of it: the wordmark on the left, and on the right a
chart button that opens the Review window, a gear for settings and a quit
button.

Under that is the **day strip**: five days at a time, arrows to shift by one,
and a Today button. It moves forwards as well as back, so the queue doubles as a
lightweight planner - and past days are read-only, showing what actually happened
rather than offering to let you rewrite it.

Below that is the **anchor task**, the one the menu bar is showing. The card
carries a live countdown ring, a play and pause button, and a duration dropdown
that retimes a session already in progress. Pausing is lossless: elapsed time is
folded into the task's total the moment you pause, so a stop for coffee does not
corrupt the number.

Walking away is handled too, which matters more than it sounds: a timer left
running through lunch used to bill you for lunch. Anchored watches for the Mac
going idle or locking, and time you were demonstrably not there is not counted
against the estimate. A short lock is treated as what it usually is - a coffee,
not the end of the session - so the timer picks up by itself when you come back.

Hovering a row reveals three actions - complete it, move it to the next day, or
delete it.

Under the anchor is **Up next**, the short queue of what follows. Rows drag to
reorder, the last row is an inline add field with a duration pill beside it, and
tapping any row expands an editor in place for the title, the duration and a
note. The bottom band is a one-line daily summary: **6 done · 3h 12m focused**.

## Work that did not get finished

Planning by day has an obvious failure mode. A task written on Tuesday and not
finished stays on Tuesday, out of sight, and the day it belonged to is over.

So a bar sits at the top of today whenever an earlier day has unfinished work on
it: **2 unfinished tasks from yesterday**, with **Bring to today** and
**Archive** beside it. It offers rather than acts. Rolling everything forward on
its own would fill today's queue with something you did not choose, so the bar
asks; dismissing it hides it until tomorrow. What you bring forward lands at the
bottom of today's queue, behind whatever you did choose, and stays marked as
carried over.

The single-task version of the same idea is **Move to next day** on a row's
hover actions, and that is no longer a one-way door: a toast offers **Undo** for
a few seconds afterwards, and the row keeps a way back from the day it landed on
long after the toast is gone.

## Quick add, and durations you can type

The queue is only useful if adding to it costs nothing, so Anchored ships a
separate quick-add panel on a global shortcut. It is a floating, non-activating
window: it appears over whatever you were doing, takes your typing, and hands
focus straight back.

![The Anchored quick add panel, with fields for a task title, the day, a duration and an optional description](https://swiftfox.studio/anchored/listing/shot-3.jpg "Quick add opens over whatever you are doing. Title, day, duration, an optional note, then enter.")

**Enter** adds the task and closes. **Shift Enter** adds it and keeps the field
open, which is how you empty your head of five things in about fifteen seconds.
**Escape** cancels.

Estimates are only worth writing down if writing them down is fast, so the parser
accepts the shapes people actually type: `25m`, `1h`, `1h30m`, `1.5h`, and `~25m`
for "roughly". Case and spacing do not matter, and there are presets at 15, 25,
45, 60 and 90 minutes. You can skip the duration entirely - a task without one is
a perfectly valid queue entry that simply shows its title with no countdown
beside it. The countdown starts when the task becomes the anchor, not when you
wrote it down.

## When the timer runs out

The end of an estimate is where most timers get annoying, so this is the part
worth reading closely.

A notification fires with a body that just states the fact - "45 minutes done." -
and carries two actions. **Done** completes the task and opens the popover on the
next one. The second is an extension whose size you set yourself: **+5**, **+10**,
**+15** or **+30** minutes, applied silently, with no window and no further
interruption. Running over an estimate is normal, and the app treats it that way.

Choosing Done opens a full-takeover panel inside the popover: a checkmark, a
recap of how long the task actually took, then the next task with **Start** and
**Skip** buttons. It advances on its own after a beat and a half unless you
hover, so the common case needs no clicks at all.

## The widget: the same queue, on the desktop

![The Anchored desktop widget in all three sizes, each showing the anchor task, its countdown and the day's queue](https://swiftfox.studio/anchored/listing/shot-2.jpg "Three sizes answering three different questions - and every button on them acts without opening the app.")

Anchored ships a desktop widget in all three sizes. The reason to have one is
that it acts rather than reports.

**Small** answers a single question - what am I on, and how long is left - so it
draws the anchor, its countdown and one start/pause button. **Medium** adds the
queue behind it, which is the whole reason to put this on a desktop rather than
glance at the menu bar. **Large** is the day: progress against everything
written for it, the anchor with its estimate, the queue as deep as the card can
hold, the running total, and a line for whatever was carried over from earlier.

The buttons are real ones. **Done** completes the anchor, and the next task
takes its place on the card. **Start** and **pause** run the clock. **+N
minutes** extends an estimate, which the popover itself does not offer - only
the timer-end notification does. None of them brings Anchored forward: the press
is parked in a container both processes can read, the app applies it and
republishes, and the card has already redrawn from the same parked press, so it
lands instantly either way.

With Anchored closed, those same controls open the app instead of acting.
Hiding them would be worse - a card that silently loses its buttons reads as
broken - and a press left parked for an hour must not quietly complete a task
tomorrow. Clicking the card itself opens the popover, except on a day with
nothing written on it, where it opens quick add, which is the only thing anyone
wants from an empty card.

## What your estimates were worth

![The Anchored Review window comparing estimated against measured time for a week, day by day and by estimate size](https://swiftfox.studio/anchored/listing/shot-4.jpg "The headline is a sentence. Everything under it is there so you can go and check it.")

Anchored has stored both halves of this comparison from the first version - what
you guessed when you typed "45m", and what the timer measured - and never showed
them together. The Review window does, over a week or a month.

It opens on a sentence rather than a chart: **Your estimates run 40% short**.
People do not read a plot and derive a conclusion, they read the conclusion.
Everything under it exists so that someone who disbelieves the sentence can go
and check.

A day-by-day chart puts planned against focused, with a tick where the estimate
sat. A breakdown by estimate size splits the verdict four ways - up to 15
minutes, up to 30, up to 45, over 45 - because most people are close on a
fifteen-minute guess and hopeless on a two-hour one, and a single blended
average hides exactly that. A **furthest off** list names the tasks that did the
damage.

Only a task that was completed, carried an estimate and actually ran its timer
counts towards the bias: finishing something without pressing play would
otherwise read as "you finished instantly". Under five measurable tasks the
headline is withheld rather than guessed at, and a size bucket with fewer than
three says **too few** instead of a number.

## Built for the keyboard

Anchored is usable entirely from the keyboard, and the shortcut surface is small
enough to memorize in a day.

![The Anchored settings window on its Hotkeys tab, listing two rebindable global shortcuts and five fixed in-popover shortcuts](https://swiftfox.studio/anchored/listing/shot-5.jpg "The two global shortcuts are rebindable and checked for conflicts; the five inside the popover are fixed.")

Two shortcuts are **global**: **Command Shift J** toggles the popover and
**Command Shift A** opens quick add. Both are rebindable, each has a Reset link,
and the recorder checks for conflicts as you type - if you map two actions to the
same combination it names both rather than silently letting one win. Five more
are fixed and work **inside the popover**: Command D completes the current task,
Command N adds one, Command Left and Command Right move a day, and Command T
jumps to today.

Worth knowing for anyone comparing menu bar utilities: the global shortcuts use
Carbon hotkey registration, which means Anchored needs **no Accessibility
permission** to make them work.

## What it deliberately does not do

The absent features are as much of the design as the present ones.

There is **no account and no sync**. Nothing is uploaded, and there is no phone
app waiting for you to sign up. The trade is real and worth stating plainly: your
queue is on one Mac.

There is **no backlog management** - no projects, tags, filters or
recurring-task engine competing with the one you already use. Anchored expects
your real list to live wherever it already lives and asks only that you promote
one item into it each morning. Nothing rolls over on its own either: unfinished
work is offered at the top of today and moved only when you say so, so a day you
did not open does not quietly reorganise the next one.

It asks for exactly **one system permission**, notifications, and works without
that too. No Accessibility, no Screen Recording, no file access. The app is
sandboxed, signed and notarised, and the only network traffic goes to our own
servers - license checks, updates, config, and anonymous usage and crash
diagnostics. Automation is one App Intent, **Add Task to Anchored**,
which runs from Shortcuts, Spotlight or by voice without launching the app.

## What it costs, and what else to look at

Anchored runs on **macOS 14 or later**, on Apple Silicon and Intel, and takes
about 15 MB. It is **pay what you want** with a suggested price of $3.99, which
includes paying nothing, and it is a one-time purchase rather than a
subscription - the license is permanent whichever amount you pick. The full
specification sits on [the Anchored page](https://swiftfox.studio/apps/anchored).

A single-task timer solves exactly one of the several problems people call "I
can't focus": **choosing**. If the problem is **starting**, a fixed interval is a
better lever than an estimate, which is [Pawodoro](https://swiftfox.studio/apps/pawodoro), covered in
[a menu bar Pomodoro timer for Mac](https://swiftfox.studio/handbook/menu-bar-pomodoro-timer-for-mac).
If it is
**drifting** into other tabs, a blocker like [NoMore](https://swiftfox.studio/apps/nomore) is the
answer. If it is **never stopping**, [Recess](https://swiftfox.studio/apps/recess) interrupts on a
schedule that has nothing to do with your work - and there is a longer treatment
of that split in [the best focus apps for Mac](https://swiftfox.studio/blog/best-focus-apps-for-mac).
