Skip to content

Sand Timer 1.8.1

Latest

Choose a tag to compare

@and and released this 28 Sep 20:24
· 2 commits to main since this release

A realistic sand timer that sits on your Mac's desktop, above your other windows.

What's new in 1.8.1

  • A proper name for the app. Sand Timer now has its own identifier (io.github.and.SandTimer) in place of a placeholder, which it needs for things like the App Store. Your settings, projects and every minute of your record come across on its first launch; nothing to do. If you use Start at Login, tick it again in Settings, and remove any older Sand Timer entry from System Settings → General → Login Items.

What was new in 1.8.0

  • Projects. Make projects in Settings…, each with a name and any colour, and time is counted against whichever is on. The sand takes the project's colour, and its name is printed faintly on the top cap, brightening when you hover over the timer. Switch from Project in the right-click menu or the menu bar, or shake the timer side to side to move on to the next project ticked for Shake. Time is kept against the project itself, so renaming or recolouring one never disturbs its history, and removing one keeps its time in Statistics.
  • One Thing at a Time. On to begin with: the project stays the same for the whole session. Mid-session the projects wait and shaking does nothing; choose End Session when you're ready, then pick the next one.
  • End Session. Done early? End the session from the right-click menu, the menu bar, sandtimer://end or Claude. The time you ran is kept (it just isn't a finished timer), and the sand settles to the bottom, ready for the next one.
  • Hourly statistics, and projects in them. Statistics gains an Hourly view of the last 24 hours. With projects, every bar is split by project colour, with a legend, a breakdown of the span you're looking at, and a menu to look at one project on its own. Export adds a column per project, and Claude can answer by project too.
  • The day's figure, printed on the base. Rest the pointer on the base and the target line gives way to the figure, like 1:18:42/3:00:00, printed into the plastic like the time above it.

What was new in 1.7.0

  • A daily target. Set one in Settings…, in minutes or hours, and a groove along the timer's base fills with sand as the day's time runs, marked at round amounts of time and glowing softly once you reach it. Rest the pointer on the base to read it off, like 1:18:42/4:00:00. Hidden in the menu bar, the figure shows there beside the time left.
  • Settings. Start at Login, Float Anywhere, Control from Claude & Shortcuts and Check for Updates move out of the right-click menu into a small Settings window, alongside the target.
  • It picks up where it left off. A run that was going or paused when the app closed carries on after it opens again, and the size you chose is remembered.
  • A cleaner chart. The lines in Statistics no longer run through their labels.

What was new in 1.6.3

  • It stays on every desktop, properly this time. 1.6.0 asked for the timer's place again as the desktop began to change, which was too early: macOS drops the window a moment after the switch settles. It now asks again once the switch is over, and whenever macOS reports the timer as no longer on screen, so it no longer goes missing on some desktops.

What was new in 1.6.2

  • The daily chart names each day twice. Under every bar, the date and the initial of the weekday — so a fortnight shows its own shape at a glance, and a gap reads as a Sunday rather than as a day you skipped.
  • The chart is ruled. Lines at round amounts of time, labelled down the left, so you can see that Tuesday was three hours without hovering over Tuesday.

What was new in 1.6.1

  • Commands are no longer lost mid-turn. A pause or resume arriving while the glass was still turning fell through and went nowhere — rarely noticed by hand, but immediately by Claude or a Shortcut sending one command after another. A command now waits for the glass to settle and is then carried out.
  • The status says when a run began and when it ends. started_at and finishes_at are given as they are, instead of leaving the start to be worked out from the sand left — which was right for an untouched run and wrong for one that had been paused.

What was new in 1.6.0

  • Ask Claude about your time. The app now ships a small MCP server, so Claude can read the record and answer questions about it — "how much did I focus this week?", "which days do I get deep work done?", "put September's hours in my invoice". Point Claude at it once:

    In Claude Code:

    claude mcp add sand-timer -- /Applications/SandTimer.app/Contents/MacOS/sand-timer-mcp

    In Claude Desktop, under Settings → Developer → Edit Config, add it beside any servers already there:

    "sand-timer": { "command": "/Applications/SandTimer.app/Contents/MacOS/sand-timer-mcp" }

    then quit Claude Desktop and open it again.

    It reads what the Statistics window shows, plus what the timer is doing at this moment. It makes no network calls and nothing is uploaded; nothing runs until Claude asks it something.

  • Claude can work the timer, once you allow it. "Start a 20 minute timer", "pause it", "how long is left?" — after you turn on Control from Claude & Shortcuts (now in Settings), which is off to begin with. With it on, the timer also answers sandtimer:// links, so Shortcuts, a script, or open sandtimer://start?minutes=25 in a terminal can start, pause, resume and restart it.

  • It stays on every desktop. A window that joins every Space should stay on all of them, but macOS can quietly lose its place on one: the timer would ride in on the switch animation, vanish a moment later, and go on running unseen. It now asks for its place again each time you change desktop.

What was new in 1.5

  • Statistics. Statistics… in the right-click menu shows how long the sand has run and how many timers ran all the way out, by day, week, month or year, as a chart you can hover over to read any span off.
  • Export to CSV. Export… in that window saves the whole record, grouped the way you are looking at it, as sand_timer_report_YYYYMMDDHHMM.csv.
  • It tells you when there's a new version, once a day, and says which version you are running. Check for Updates turns that off, and with it off the app makes no network calls at all.
  • The falling sand starts silent — Sand Sounds begins at Off — and is heard whether or not the timer is on screen once you turn it up.
  • More to hand in the menu bar: pause, resume, restart and the sound settings, with the timer hidden away up there.
  • A shorter menu: sand colour, base style and size gathered under Appearance.

Earlier updates

  • 1.4.1: a soft chime each minute (off by default), and the sound settings grouped together.
  • 1.4.0: tilt it by hand, lift a toppled timer back up, and pick it up by the top.
  • 1.3.1: a natural shadow.
  • 1.3.0: Float Anywhere, and smooth tipping over and standing up.
  • 1.2.0: gravity affects the flow (drop it and the stream stops mid-air), about 40% less CPU, and natural-looking sand.
  • 1.1.1: a smooth, steady sand stream.
  • 1.1.0: 6- and 12-minute timers for 0.1- and 0.2-hour billing blocks.
  • 1.0.3: new installs start on the 25-minute 🍅 Pomodoro setting.
  • 1.0.2: Support Sand Timer… in the right-click menu; open source under the MIT License.

Download

SandTimer-1.8.1.dmg below. Open it and drag Sand Timer into Applications. Works on macOS 13 Ventura or later, on Apple Silicon and Intel Macs. Signed and notarized, so it opens without a security warning.

Using it

  • Click to start. Click again to pause (it tips onto its side) and again to resume. End Session ends it early.
  • Drag it anywhere; let go and it drops to the bottom of the screen.
  • Push the top sideways to tilt it, lift a toppled timer back up by its top, or pull the top upward to pick it up.
  • Right-click for durations (1–60 minutes, including a 25-minute 🍅 Pomodoro), Appearance (sand colors, base style, size), sounds, Minute Chimes, Project, Hide to Menu Bar, Statistics and Settings (a daily target, projects, One Thing at a Time, Start at Login, Float Anywhere, Control from Claude & Shortcuts, Check for Updates).
  • Hidden in the menu bar, the time left shows beside the hourglass, with pause, resume, restart, the sound settings and Statistics in its menu.

What's inside

  • Sand that behaves like sand: a crater that deepens on top, a pile that builds at the bottom, a stream that loosens as it falls, and a neck sized to the duration.
  • Flip, drop, shake, tilt and knock it over, and the sand responds.
  • Remaining time on a display in the base that switches over when you flip it.
  • Sounds made to match: sand pouring onto glass, then onto sand, shaking, landing, a chime when time is up, and optional minute chimes.
  • Hide it to the menu bar with the time left, pause, resume and restart.
  • A day-by-day record of the time you ran, with daily, weekly, monthly and yearly views, a CSV export, and an MCP server Claude can read it through.

SHA-256: e3e0bc75fccc715ca78ec0c491a6a48d61f31a4036fdc6917c6e0afbefcc7712