Skip to content

torifo/snaptick-desktop-app

Repository files navigation

⏱️ SnapTick

Go TypeScript Wails v3 License

3-Second Quick Start | Lightweight (<50MB Memory) | Menu Bar & System Tray Resident | Cross-Platform (macOS / Windows)


Idioma / Language / 语言 / Dil / Язык / Ngôn ngữ

English | 日本語


SnapTick is an ultra-lightweight, distraction-free desktop timer application designed for professionals who value their deep-work state. Unlike default clock apps, SnapTick stays in your menu bar (macOS) or system tray (Windows) and triggers instantly with a single global shortcut.

✨ Key Features (MVP)

  • Instant Trigger: Open/Close the minimalist UI with Cmd+Shift+T (macOS) or Ctrl+Shift+T (Windows).
  • 1-Action Start: Press 1, 2, 3, or 4 on your keyboard to instantly start preset slots A–D (default 5, 10, 15, 20 minutes) without touching your mouse.
  • Configurable Defaults: Change the four preset durations, global shortcut, and Light/Dark theme from the Settings view (open with the ⚙ button or the tray menu).
  • Ultra Lightweight: Powered by Go (Wails v3) and Vanilla TypeScript. Zero bloated frontend frameworks.
  • Native Notification: Clean OS-level audio and visual alerts when the time is up.

🛠️ Tech Stack

  • Backend: Go (Wails v3)
  • Frontend: HTML5 / CSS3 / Vanilla TypeScript

🚀 Quick Start

Install via Homebrew (macOS, recommended)

brew tap torifo/snaptick
brew install --cask snaptick

The cask installs SnapTick.app into /Applications. Because the app is not notarized yet, clear the quarantine flag the first time:

xattr -dr com.apple.quarantine /Applications/SnapTick.app
open /Applications/SnapTick.app

(Or right-click SnapTick.app in /ApplicationsOpen and confirm once.)

Tap source: torifo/homebrew-snaptick.

Download & run — macOS (no build)

Works on both Apple Silicon and Intel Macs (universal binary).

  1. Download SnapTick-macOS-universal.zip from the latest release.
  2. Unzip it and move SnapTick.app to /Applications (or anywhere you like).
  3. The app is not notarized yet, so clear the download quarantine and open it once:
    xattr -dr com.apple.quarantine /Applications/SnapTick.app
    open /Applications/SnapTick.app
    (Or right-click SnapTick.appOpen and confirm.)

SnapTick lives in the menu bar — there is no dock icon.

Build from source

For Windows or development, build it locally (it only takes a moment).

Prerequisites: Go 1.25+ and Node.js 20+ (includes npm).

macOS

git clone https://github.com/torifo/snaptick-desktop-app.git
cd snaptick-desktop-app
npm install
./scripts/package-macos.sh      # builds the frontend + binary, bundles SnapTick.app, and launches it

SnapTick starts in the menu bar (no dock icon). Re-running the script replaces the running instance. If macOS blocks the unsigned app, right-click build/SnapTick.appOpen.

Windows

git clone https://github.com/torifo/snaptick-desktop-app.git
cd snaptick-desktop-app
npm install
npm run build                   # build the frontend (embedded into the binary)
go build -o snaptick.exe .
./snaptick.exe

SnapTick starts in the system tray.

How to use

  1. Press Cmd+Shift+T (macOS) / Ctrl+Shift+T (Windows) to pop up the timer.
  2. Press 14 to start preset slots A–D (default 5 / 10 / 15 / 20 min).
  3. Space pauses/resumes, Esc cancels the timer or hides the window.
  4. Click the ⚙ button to change the presets, the global shortcut, and the theme.

🧑‍💻 Development

The app embeds the built frontend, so rebuild after changing the UI:

npm run build && go build -o snaptick . && ./snaptick   # full app (macOS/Windows)
npm run dev                                              # quick UI-only preview in a browser (backend calls are unavailable)

🗑️ Uninstall

SnapTick stores its settings as a single JSON file and is otherwise self-contained.

macOS — installed via Homebrew

brew uninstall --cask snaptick   # removes the app and (via zap) ~/Library/Application Support/SnapTick
brew untap torifo/snaptick       # remove the tap (optional)

macOS — installed manually

osascript -e 'quit app "SnapTick"' 2>/dev/null || pkill -x SnapTick   # quit the app
rm -rf /Applications/SnapTick.app                                     # remove the app (or wherever you put it)
rm -rf ~/Library/Application\ Support/SnapTick                        # remove saved settings
rm -rf path/to/snaptick-desktop-app                                  # remove the cloned repo (if you built from source)

Windows

taskkill /IM snaptick.exe /F                  # quit the app
del snaptick.exe                              # remove the binary
rmdir /S /Q "%AppData%\SnapTick"              # remove saved settings
rmdir /S /Q snaptick-desktop-app              # remove the cloned repo (if you built from source)

About

即席フォーカスセッションのための超軽量デスクトップタイマー (Go + Wails v3 + Vanilla TypeScript)。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors