Premium focus-rhythm timer for desktop — structured intervals, flexible flow techniques, local-first, tray-native.
Timing matters. Tempura stays calm, polished, and entirely on your machine: no accounts, no cloud, no sync.
Download the latest desktop build for Linux, Windows, or macOS.
deno install
deno task tauri:dev| Task | What it does |
|---|---|
deno task dev |
Vite frontend only |
deno task build |
Typecheck + Vite production build |
deno task tauri:dev |
Full Tauri + Vite |
deno task tauri:build |
Packaged desktop app |
deno task version 0.2.0 |
Bump version in package.json, Cargo.toml, tauri.conf.json |
package.json mirrors the same scripts if Deno isn’t available:
npm install
npm run tauri:devDay-to-day docs assume Deno.
- Techniques: Classic (25/5), Sprint (15/3), Deep (50/10), 52/17, Ultradian (90/20), Flowtime, Hybrid, plus custom CRUD in SQLite
- Guide: in-app Techniques page + chip tooltips (“best for…”)
- Session engine: Rust owns the countdown (correct while hidden / across sleep); Start, Pause/Resume, Skip, Reset, Stop
- System tray: always present; close window hides to tray; live tooltip; Quit from tray or Settings
- Notifications: focus / break / long-break complete; optional halfway tick; sound toggle
- Settings: launch at login, start minimized, theme, notify/sound, defaults, flow ratio, privacy blurb
- Themes: Batter (default, icon palette), Mist, Grove, Dusk, Sandstone
- Stats: focus minutes today, cycles, sessions, streak (local only)
| Key | Action |
|---|---|
Space |
Start / pause / resume |
S |
Skip phase |
, or Ctrl+, |
Settings |
Esc |
Back / hide to tray |
Presets, settings, and session history live in local SQLite under the app data directory. Nothing is uploaded. No accounts, no cloud, no sync.
src/ React + TypeScript UI (timer, settings, guide, stats)
src/lib/ API bridge, platform gating, technique guide copy
src-tauri/ Rust: timer engine, SQLite, tray, notifications, autostart
deno.json Deno tasks (primary)
package.json Node fallback scripts
Desktop-only concerns (tray, autostart, hide-to-tray) are gated so a future mobile entrypoint can reuse the core focus UI.
- Windows notifications look correct for installed/packaged builds; unpackaged
tauri devmay show a PowerShell icon. - Tray, autostart, and hide-to-tray are desktop-only. The UI is responsive for a later mobile port; v1 ships desktop only.
- Linux AppImage builds set
NO_STRIP=true(linuxdeploy’s bundledstripbreaks on modern ELF) andAPPIMAGE_EXTRACT_AND_RUN=1viadeno task tauri:buildand the Release workflow. You may also needfuse2,squashfs-tools, andpatchelfinstalled.
Version lives in package.json, src-tauri/tauri.conf.json, and src-tauri/Cargo.toml. Keep them in lockstep, then push a v* tag:
deno task version 0.2.0
git add package.json src-tauri/Cargo.toml src-tauri/Cargo.lock src-tauri/tauri.conf.json
git commit -m "Release v0.2.0"
git tag v0.2.0
git push origin main --tagsGitHub Actions builds with Deno: Linux (AppImage + deb + rpm), Windows (MSI + NSIS), and macOS (Apple Silicon + Intel), then attaches them to the GitHub Release. The download page reads that release.
The first public tag is v0.1.0. Builds are unsigned, so Windows SmartScreen and macOS Gatekeeper may warn on first open.
MIT © 2026 Vadim Costin
App icon shrimp mark adapted from Twemoji (CC-BY 4.0); see assets/ICON-ATTRIBUTION.txt.