Stop shouting “Only 2 mooore miiiiinuutees!”

A workshop countdown timer for facilitators and trainers, with a phone remote.

Audience
yourwebsite.com/timer
WORKSHOP TIMER
10:00
SPACE START OR PAUSEF FULL SCREENR PHONE REMOTE
Set it up with the assistant you already use
ClaudeClaude CodeCodexGemini CLIAntigravitynpm

Stop paying for timers. Free yourself.

Most software and desk timers are either paid, ad supported or plain ugly. They don't look yours. They also keep you staring at the timer, instead of paying attention to your participants.

Get it with your AI

Paste one prompt into Claude, Codex, Gemini or Antigravity. It downloads, installs and starts the timer for you.

> Set up the workshop timer from GitHub and start it.

Cloning the repository…

Installing…

✓ Timer running at localhost:3000

Give it your brand's look

Describe your brand in plain words, or change one small file. No code to touch.

The timer in cream and deep orange

Put it on your website

Host it at your own address, next to your site, so it looks like part of your event.

yourwebsite.com/timer
The timer in a browser window

Control it from your phone

Press R, type the five-character code on your phone, and run the clock while you walk the room.

Two ways to install. Pick one.

Simply ask any AI assistant to do it for you, ask it to customize it with your branding and then guide you through the steps of installing it on your website.

Paste this, and let it do the rest.

Open your AI assistant in an empty folder, and paste:

Set up the workshop timer from github.com/tudorjuravlea/workshop-timer in this folder, start it, and open it in my browser.

Three commands.

1

Get the code

git clone https://github.com/tudorjuravlea/workshop-timer
2

Install, once

cd workshop-timer && npm install
3

Run it

npm run dev

Opens at localhost:3000. Needs Node 20.9 or newer. No database, no accounts, no API keys.

Your colors, your logo, your brand.

Everything a brand can change lives in one small file. You never touch the code.

Tell the AI what to change.

Paste this into your AI assistant, opened in your timer's folder.

Rebrand my workshop timer: accent #2c5bff, a near-black background, the font Inter, and the logo in ./logo.svg. Make a brand file for it and check it passes npm run check:brands.
Works inClaudeClaude CodeCodexGemini CLIAntigravity
The same timer, five brands
yourwebsite.com/timer
The same timer in five brands, one after another: black and orange, navy and blue, forest green with a serif font, light cream and violet, and dark brown with amber

One JSON file per brand.

Copy brands/example.json, change the values, and point the timer at it.

brands/acme.json
{ "name": "Acme", "colors": { "ground": "#101012", "face": "#ffffff", "accent": "#2c5bff", "ink": "#15181d" }, "fonts": { "display": "Inter, sans-serif", "body": "Inter, sans-serif", "stylesheet": "https://fonts.googleapis.com/css2?family=Inter" }, "logo": { "src": "/logo.svg", "alt": "Acme" } }
Run it with that brand
TIMER_BRAND=acme npm run dev
Or for a one-off, in the link
/?accent=%232c5bff&ground=%23101012&name=Acme
Three rules every brand keeps
✓ Reads from the back
✕ The dial disappears
Rule 1 The dial must be brighter than the background.It is read from the back of a room.
06:30✕ Too dark to read
06:30✓ Plate added for you
Rule 2 Your accent carries the time.If it is hard to read, the timer adds a plate behind the digits by itself.
#ff3b00✓ orange✕ rgb(255, 59, 0)✕
Rule 3 Colours are hex codes.Like #ff3b00. Nothing else is accepted, which keeps the page safe.

Use your workshop timer.

How to use it in a session, step by step.

01

Pick an interval.

Tap one of the presets, from 1 to 90 minutes, and the dial fills for that length. It opens at ten minutes.

The control bar over a white dial paused at 06:30, with length presets from 1 to 90 minutes, Start, Reset and plus one minute
02

Type any interval.

Click the digits and type any time: 7:30, 25 or 1:30:00, then press Enter. Or put it in the link: /#7:30.

The timer's digits being edited: 7:30 typed into the readout under a full lime dial
03

Start it.

Space start or pauseF full screen
The timer running full screen: a large white dial, two thirds of it lime, reading 06:30
04

Walk the room.

R shows an address and a five-character code. Open it on your phone, type the code, and drive the clock from anywhere.

The timer with its pairing code HKU3N on screen, waiting for the phone; in front, a phone with HKU3N typed into the remote
05

Everyone hears it.

A quiet tick speeds up in the last minutes, then a gong. Mute it with one button.

Time's up in black on a white disc, with lime and white confetti bursting around it

Use wherever time matters.

Workshops

Timeboxed exercises

Silent brainstorms, dot voting, crazy eights. Everyone in the room sees the same clock, so nobody has to ask how much time is left.

Trainings

Exercises and breaks

Put the break on the screen and people come back on time, because they can see exactly how long they have, even from the corridor.

Pomodoro

Pomodoro Technique

Work in focused rounds: 25 minutes on one task, then a 5-minute break, and a longer one after four rounds. Open it at /#25 or /#5.

Pitch nights

Pitch rounds

The speaker sees the time from the stage while the host runs the clock from a phone in the crowd. Every pitch gets the same minutes.

Jams

Design and game jams

One phone pairing survives the gong and runs timer after timer all day, from the first sprint to the final demos. No pairing again.

Conferences

Talks and panels

Dressed in the event's colours and fonts, so it looks like part of the stage, not a laptop app. Speakers see their time at a glance.

Frequently Asked Questions

Is it really free?

Yes. It is open source under the MIT licence: use it, change it, and use it for paid work, with no account and no subscription.

Do I need to know how to code?

No. Paste the prompt from the Install section into Claude, Codex, Gemini CLI or Antigravity and the assistant does the setup. If you would rather type, it is three commands.

Which AI assistants work?

Any assistant that can work in a folder on your computer: the Claude desktop app's Code tab, Claude Code, Codex, Gemini CLI and Antigravity.

Can I put it on my own website?

Yes. It needs a Node host such as Railway, Render, Fly or a small server, because the phone remote runs through it. Run exactly one copy, since live pairings are kept in memory.

Will it lose time if I switch windows?

No. It counts down to a deadline and recomputes from the wall clock every tick, so a background tab cannot slow it.

Can I turn the sound off?

Yes, with the sound button. Movement also stops for anyone whose device asks for reduced motion.

How do I add my logo and fonts?

Both go in the brand file next to your colours. Copy brands/example.json to see every field, or ask your assistant to make one for you.

Can I contribute a change?

Yes, and you do not need to know Git. Fixes, ideas and new brand files are all welcome. Describe the change to your AI assistant and it does the GitHub part for you. All you need is a free GitHub account.

What do I tell my AI?

Something like: “Contribute this change to github.com/tudorjuravlea/workshop-timer: [your idea]. Fork it, make the change on a new branch, follow CONTRIBUTING.md, run its four checks, show me the change, then open a pull request.” The rules it follows are in CONTRIBUTING.md.

What happens after I open a pull request?

GitHub runs the same four checks on it automatically, and the change is reviewed before it goes into the timer. You can follow it, and answer questions, on the pull request's page.

Can I just report a problem instead?

Yes. Open an issue on GitHub and say which browser and device you used. If it is about the phone remote, say whether the screen and the phone were on the same network.