docs
Back to Main →

Quick Start

What is til.re?

til.re is a no-signup, instant timer supporting both countdown and countup modes. Just type your time in the address bar and press Enter to start.

Core philosophy: URL is the State — All settings are encoded in the URL, no backend storage needed. Share and bookmark anytime.

Get Started in 5 Seconds

til.re/25m

25-minute countdown

til.re/pomodoro

Pomodoro (25 min + 5 min break)

til.re/17:00

Countdown to 5 PM

til.re/2020-01-01

Elapsed since 2020 (countup)

Key Features

  • Zero Signup: No account needed, start instantly
  • Easy Sharing: URL is the state, just copy the link to share
  • Countdown & Countup: Future time → countdown, past date → countup (elapsed time)
  • Multiple Themes: Various visual styles to choose from
  • Shortcut System: Semantic shortcuts (e.g., pomodoro, weekend)
  • Loop Mode: Support for work/rest alternating cycles

URL Protocol

Basic Format

https://til.re/[TimeExpression]?[Parameters]

Examples:

  • til.re/25m?title=Focus&theme=ring
  • til.re/pomodoro?theme=zen

Time Expressions

til.re supports four types of time expression formats:

Relative Time

Start counting from the current moment. Supports seconds (s), minutes (m), hours (h), and days (d).

ExampleMeaning
25m25 minutes
90s90 seconds
1.5h1.5 hours (90 minutes)
2d2 days

Absolute Time

Countdown to a specific time point. Supports multiple formats:

Date Only (supports countup)

Format: YYYY-MM-DD or YYYY/MM/DD

ExampleMeaning
2026-01-01January 1, 2026 at midnight (local time)
2020-01-01Past date → shows elapsed time (countup mode)

DateTime (supports countup)

Format: YYYY-MM-DDTHH:MM or YYYY-MM-DD HH:MM, with optional timezone

ExampleMeaning
2026-06-15T09:00June 15, 2026 at 9 AM (local time)
2026-06-15T09:00ZJune 15, 2026 at 9 AM UTC
2026-06-15T09:00+08:00June 15, 2026 at 9 AM (UTC+8)
2026-06-15 09:00Space separator also works

Time Only (recurring daily, no countup)

Format: HH:MM or HH:MM:SS. Automatically rolls over to tomorrow if time has passed.

ExampleMeaning
17:00Today at 5 PM (tomorrow if passed)
09:30:009:30:00 AM with seconds

Month-Day (recurring yearly, no countup)

Format: MM-DD or MM/DD, optionally with time. Automatically rolls over to next year if date has passed.

ExampleMeaning
01-01January 1st at midnight (this year or next)
12/25December 25th at midnight
02-14T09:00February 14th at 9 AM
7/4 12:00July 4th at noon

Note: Month-Day format is recurring (yearly) and does not support countup mode. Feb 29 in non-leap years will roll to the next leap year. Use full date format (e.g., 2020-01-01) for countup.

Cyclic Time (A of B)

Periodic time points with automatic rollover to the next cycle. Format: [unitA]of[unitB][value]

ExampleMeaningUse Case
minuteofhour30The 30th minute of every hourScheduled reminder
hourofday1212 PM every dayLunch reminder
hourofday175 PM every dayEnd of work countdown
dayofweek5Every Friday (0=Sunday)Friday countdown
dayofweek6Every SaturdayWeekend countdown
dayofmonth1515th of every monthPayday
monthofyear6June every yearAnnual event

Cyclic time uses a metadata-driven algorithm, supporting any combination from seconds to years, such as minuteofday720 (noon every day).

Shortcuts

Semantic shortcuts that include predefined time and configuration. See Shortcut Reference for details.

ShortcutEquivalent TimeDefault Config
pomodoro25mloop, rest: 5m
weekenddayofweek6-
hiit30sloop, rest: 10s, color: ff4444

Parameters

Common Parameters

Configuration parameters supported by all themes.

ParameterAliasTypeDescriptionExample
titlehstringTitle text?title=Focus
timeupendstringCompletion message?timeup=Take a break
themetstringTheme ID?theme=ring
looplbooleanEnable loop?loop=true
restrdurationRest duration?rest=5m
rest_titlertstringRest phase title?rest_title=Rest
colorchexPrimary color (without #)?color=ff6600
bg-hexBackground color (without #)?bg=000000
font-stringFont?font=mono
scale-numberScale multiplier?scale=1.5
mute-booleanMute sound?mute=true
wakelockwbooleanKeep screen on (default: true)?wakelock=false
cursorcurnumberCursor auto-hide delay (0=disabled, default: 3)?cursor=5
overflowostringOverflow behavior?overflow=continue
unitsustringTime display units?units=ms
compact-numberMinimum units to display?compact=2

Units Parameter

Controls which time units are displayed. Default is hms (hours:minutes:seconds).

UnitMeaning
yYears
MMonths (30 days)
dDays
hHours
mMinutes
sSeconds
SMilliseconds

Examples:

  • til.re/25m?units=ms - Minutes:Seconds only
  • til.re/7d?units=dhms - Days:Hours:Minutes:Seconds
  • til.re/2026-01-01?units=yMdhms - Full format

Overflow rule: The highest unit has no upper limit. For example, with units=s, 300 seconds displays as 300 (not 05:00).

Compact Parameter

Controls hiding leading zeros:

  • 0 (default): Show all units
  • Positive integer N: Keep at least N units, hide leading zeros

Examples (with units=hms):

compactInputOutput
000:25:3000:25:30
200:25:3025:30
201:25:3001:25:30 (non-zero high unit kept)
100:00:4545

Overflow Parameter

Controls behavior when using absolute time with complete date (e.g., 2020-01-01):

ValueDescription
detectDefault. Auto-detect: past time → countup, future time → countdown
stopAlways stop at zero, never enter countup mode
continueTrigger notification at zero, then switch to countup

Countup Mode: When target time is in the past, til.re shows how much time has elapsed since that point. Only works with complete date format (e.g., 2020-01-01). Pure time format like 17:00 is recurring and won't enter countup mode.

Font Options

ValueEffect
pixelPixel-style font (Press Start 2P)
monoMonospace font (SF Mono)
serifSerif font (Georgia)

Parameter Applicability by Mode

Some parameters only apply to countdown mode. In countup mode (elapsed), parameters related to "completion" are ignored:

ParameterCountdownCountupNote
title
timeupNo completion in countup
theme
loopNo completion in countup
restNo completion in countup
rest_titleNo rest phase in countup
color
bg
font
scale
mute
wakelock
cursor
overflow-Only at initialization
units
compact

Configuration Priority

When the same configuration is defined in multiple places, the priority is:

URL Parameters > Shortcut Defaults > Global Defaults

Interaction Controls

Themes are divided into two categories with different interaction methods:

TypeThemesInteraction Method
Functionaldefault, ring, neon, pixel, flipControl bar buttons + Keyboard
Immersivezen, matrixClick/Double-click + Keyboard

Functional Themes

Provide visual control buttons. Shown on mouse movement or touch, auto-hide after 3 seconds (Pixel theme always visible).

ButtonFunction
⏸ / ▶Pause / Resume
♪ / ✕Sound On / Mute
⌜⌝⌞⌟Enter / Exit Fullscreen

Immersive Themes

No control bar, uses implicit interaction to maintain visual immersion.

  • Single Click: Pause / Resume
  • Double Click: Toggle Fullscreen

Keyboard Shortcuts (All Themes)

KeyFunction
SpacePause / Resume
MToggle Mute
FToggle Fullscreen

default Default

Clean, large-font countdown display. Ideal for focus and minimalist scenarios.

Theme-Specific Parameters

ParameterTypeDefaultDescription
colorhex-Text color
bghex1a1a2eBackground color
fontstring-Font (pixel/mono/serif)
scalenumber1Scale multiplier

Examples

  • til.re/25m - Basic usage
  • til.re/25m?color=ff6600&bg=000000 - Custom colors
  • til.re/25m?scale=1.5&font=mono - Scaled + Monospace font

Loading themes...

Shortcut Reference

Shortcuts are semantic presets that include predefined time expressions and configurations. Just use the shortcut name directly in the URL.

Loading shortcuts...

Shortcuts can be combined with other parameters, e.g., til.re/pomodoro?theme=zen uses the zen theme for Pomodoro.

External Plugins

til.re supports loading themes and shortcuts from external GitHub repositories via jsDelivr CDN.

URL Format

Use @user/repo:name format to specify user plugins:

User Theme

til.re/25m?theme=@username/my-themes:aurora

User Shortcut

til.re/@username/my-shortcuts:deep-work

Official Plugins

Official plugins (themes without @ prefix) are loaded from the til-re/plugins repository. See the Themes section above for available themes.

Create Your Own Plugin

Use our official template to get started quickly:

👉 github.com/til-re/plugin-template

The template includes:

  • Example themes (beginner + advanced)
  • Example shortcuts
  • Local development server
  • Complete API documentation

Theme Structure

your-repo/
├── themes/
│   └── my-theme/
│       ├── manifest.json
│       ├── my-theme.js
│       └── my-theme.css

Theme Manifest

{
  "id": "my-theme",
  "version": "1.0.0",
  "name": "My Theme",
  "files": {
    "js": "my-theme.js",
    "css": "my-theme.css"
  },
  "defaults": {}
}

Shortcut Pack

{
  "id": "my-shortcuts",
  "version": "1.0.0",
  "shortcuts": {
    "deep-work": {
      "time": "90m",
      "config": {
        "title": "Deep Work",
        "loop": false
      }
    }
  }
}

For detailed plugin development guide, see the plugin-template repository.