Skip to content

Repository files navigation

Stream Timer

A stopwatch and a countdown timer for stream sessions, in one window big enough to read across the room.

Standalone Tauri v2 + React app — also vendored into StreamerSuite as one of its launcher tools (see StreamerSuite's VENDORING.md).

What it does

  • Stopwatch mode — counts up in hh:mm:ss from the moment you start it, with pause and reset. Quick markers for 30m, 1h, 2h, 3h, and 4h tick over as you pass them, so you can see how long you've actually been live at a glance.
  • Countdown mode — set anything from 1 to 480 minutes for a break, an intermission, or a subathon segment. A progress bar drains alongside the digits, the display turns amber under the last five minutes, and red when it hits zero. Pause and resume without losing your place.
  • Publishes the running value as a timer key for overlays to bind to, so a browser-source overlay can show the same clock your viewers need to see.

Requirements

Developed and tested on Windows 10/11. macOS and Linux builds should work — Tauri supports both — but aren't regularly exercised.

Running it

npm install
npm run tauri dev

npm run tauri build produces a release build.

Project layout

Path What's in it
src/App.tsx The whole app — both timer modes, their controls, and the overlay data publish
src/design-system/ Shared UI kit, vendored from StreamerSuite (see below)
src-tauri/ Tauri shell. This app has no Rust logic of its own

Branches

Hard rule: main is the standalone product and the only branch anyone builds or ships from — the StreamerSuite integration must never be merged into or otherwise land on main.

  • main — the standalone app. Build and run it independently, as above.
  • streamersuite-integration — the StreamerSuite-adapted version (shared theme/settings, and shared backend where applicable). Not independently buildable; it's the staging copy for what's vendored into StreamerSuite's src/apps/stream-timer/.

src/design-system/ is vendored from StreamerSuite's own src/design-system/ (the shared UI kit used by StreamerSuite's launcher-native tools). Keep it in sync manually when StreamerSuite's design system changes.

Limitations

  • Overlay binding only works in StreamerSuite. The timer publishes its value by calling the overlay_publish_data command, which is provided by StreamerSuite's (and Overlay Editor's) Rust backend. This standalone build has no such backend, so the call is a no-op here — the timer works, but nothing downstream receives the value. Run it inside StreamerSuite, or alongside Overlay Editor, if you want an overlay bound to it.
  • Timers don't survive a restart — closing the window loses the elapsed count.
  • Countdown reaching zero changes the display but doesn't play a sound or fire a notification.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages