Skip to content

Habit Timer

For habits measured in time - deep work, meditation, exercise sets, language practice - the Habit Timer lets the app do the counting. Instead of typing in a duration after the fact, you start a timer and let it track the work as you do it.

When You'll See It

The timer is available on any habit whose unit is time-based (second, minute, hour, or any custom unit you've set as a time unit).

You open it from two places:

  • The habit detail page - via the live timer pill that appears when a timer is running, or via the "Use timer" button inside the completion panel.
  • The completion bottom panel - "Start timer" button under the regular log button (only when no timer for this habit is already running).

While a timer is running, a small live pill shows the elapsed (or remaining) time on both the habit detail page and the habit list card. Tapping the pill opens the timer page.

Two Modes

When you open the timer for the first time, you pick a mode.

Stopwatch

A free-running clock. Start it, do your work, stop when you're done.

  • Pause / resume at any time to handle interruptions without inflating the log.
  • The "Save completion log" button is disabled while the timer is running - pause first, then save. This makes the recorded duration unambiguous.
  • A confirmation modal asks before saving so an accidental tap doesn't end the session early.
  • When you save, the elapsed time becomes a normal completion log on that habit.

Stopwatch mode does not trigger a fight. It's the simple "track time, log completion" path.

Countdown

Commit to a target duration up front. Pick the time with the wheel picker (hours / minutes / seconds), tap Start, and the countdown begins.

  • The page shows a progress bar with the time remaining.
  • You can cancel mid-countdown - a confirmation modal will warn you that progress is lost. No log is created when you cancel.
  • When the countdown reaches zero, a "Start Battle" button appears. Tapping it commits the session as a completion log and launches the fight (see below).

Countdown mode is for the focused work case where you want to commit ahead of time and earn the bonus reward.

The Countdown Battle

When you finish a countdown and tap Start Battle, the habit's soldier steps into a 1v1 auto-battle against a randomly chosen monster.

The fight is intended to be winnable but not trivial:

  • The monster's level is the same as your soldier's level, plus 0 to 2 random bonus levels.
  • The monster's overall power is rolled in a 1.0x to 1.5x range per fight.
  • It's a pure auto-battle, like the boss phase of a dungeon - no manual input.

Win or lose, the completion log was already saved when you tapped Start Battle - so you keep credit for the time you put in either way.

The Victory XP Bonus

If you win the fight, the habit's soldier gets bonus XP on top of what the completion log normally grants. The bonus equals what a standard completion would grant given your current streak - so on a 14-day streak, a winning timer gives the soldier roughly double the XP that day.

There's a daily cap so you can't grind it:

  • One winning fight per habit per day grants the bonus.
  • A second timer + win on the same habit the same day grants the completion XP only - no bonus.
  • The bonus is reset at midnight (local time), so the next day's first win grants again.
  • Losing the fight doesn't burn the daily slot - if you lose at noon, win at 6 PM, you still get the bonus.

Defeat grants nothing extra and doesn't penalise you. The work was real; the fight is flavor.

Notifications

If you've enabled adventure-quest notifications in your settings, starting a countdown will schedule a local notification for when the timer ends. Useful if you put the phone aside while focusing. Cancelling the timer cancels the notification.

What Survives an App Restart

Active timers are local and ephemeral. If you kill the app or it crashes, any in-flight timer is lost - there's no recovery. The completion log itself is fully synced once it's created, but the running clock state is not.

This is intentional: the timer is a focus tool, not a piece of long-term state. If you need to step away for hours, you can pause and lock your phone instead - the elapsed time keeps counting down or up correctly as long as the app stays alive in the background.

Multiple Timers at Once

You can run timers for different habits in parallel - one per habit, but as many habits as you want. A single habit can only have one active timer at a time. Trying to start a second timer for a habit that already has one running replaces the old one (and the old timer's notification, if any, is cancelled).

Logged Duration Display

Timer-driven completion logs always store the value in seconds. The completion history card detects this and renders it as a readable duration like "1 hour, 23 minutes, 45 seconds" instead of a raw second count. Goal progress aggregation handles the unit conversion automatically, so a 30-minute timer counts as half an hour against an hour-based goal.