|
|
|
|
|
|
Releases are published on GitHub Releases.
| File | Description |
|---|---|
Timestamper_*_x64-setup.exe |
NSIS Windows installer (per-user) |
release-checksums.txt |
SHA-256 checksums for release artifacts |
This beta ships the NSIS installer only — WiX/MSI does not accept the
betaversion suffix yet.
Runtime requirement: Microsoft Edge WebView2 (installed automatically by the installer when needed).
- Windows 10 (1803+) or Windows 11
- Node.js 22+
- pnpm 10
- Rust stable (MSVC)
- Microsoft C++ Build Tools with
Desktop development with C++ - WebView2 Runtime
pnpm installpnpm tauri dev
pnpm devruns Vite only without the Tauri runtime — frontend-only use.
pnpm format:check
pnpm lint
pnpm typecheck
pnpm test
pnpm build
pnpm tauri buildpnpm tauri buildThe installer is generated in src-tauri/target/release/bundle/.
Ctrl+Alt+F9 : start or stop stream
Ctrl+Alt+F10 : add mark
Change them in Settings → Save.
- OBS → Tools → WebSocket Server Settings → enable the server (port 4455 by default)
- Timestamper → Settings → enable OBS integration, set host, port, and password
- Test connection, then Save
Timestamper observes OBS stream state; it does not start or stop OBS.
| Command | Description |
|---|---|
pnpm dev |
Vite dev server (frontend only) |
pnpm tauri dev |
Full app in development |
pnpm test |
Unit and component tests (Vitest) |
pnpm lint |
ESLint |
pnpm typecheck |
TypeScript check |
pnpm format:check |
Prettier check |
pnpm format |
Prettier format |
pnpm build |
Frontend build |
pnpm tauri build |
Production build + Windows installers |
timestamper/
├── src/ → React frontend (features, components)
│ ├── app/ → App shell and routes
│ ├── components/ → Shared UI (layout, buttons, timer)
│ ├── features/
│ │ ├── live/ → Active session, timer, current marks
│ │ ├── history/ → Completed streams, details, export
│ │ ├── settings/ → Shortcuts and OBS connection
│ │ ├── obs/ → OBS WebSocket orchestration
│ │ └── export/ → TXT / CSV / JSON formatting
│ ├── domain/ → Pure types and helpers
│ └── services/ → SQLite, hotkeys, repositories
├── src-tauri/
│ ├── src/ → Tauri shell and Rust plugins
│ ├── capabilities/ → Tauri permissions
│ └── app-icon.svg → SVG icon source
└── .github/workflows/ → CI and release pipelines
Start stream → Timer (elapsed ms) → Add mark (offset ms) → Stop stream
→ Persist session + marks → History → Copy / export
useLiveSession stays mounted at App level via LiveSessionProvider so global shortcuts survive view changes.
| Layer | Technology |
|---|---|
| Desktop shell | Tauri 2 |
| Backend | Rust 2021, SQL and global shortcut plugins |
| Frontend | React 19, strict TypeScript, Vite |
| Persistence | SQLite (Tauri SQL plugin), versioned migrations |
| OBS | obs-websocket-js 5.x |
| Tests | Vitest, React Testing Library |
| Quality | ESLint, Prettier, GitHub Actions |
- → Native global shortcuts while OBS or a game is focused
- → Local SQLite storage without a server
- → Lightweight installer with minimal Tauri permissions
- → Fast web UI iteration without shipping full Chromium
- Local app — no telemetry or account
- Limited Tauri capabilities — SQL, global shortcuts, and desktop runtime only
- OBS password stored locally in SQLite
- Timestamper does not send commands to OBS — observation only
- Per-user installer — no admin elevation by default
See SECURITY.md to report a vulnerability.
pnpm format:check
pnpm lint
pnpm typecheck
pnpm test
pnpm tauri buildGlobal shortcuts and the installer on a clean machine must be validated manually.
- Integration branch:
dev - Commits:
type(scope): thing done(English, no body) - Releases:
v*tags onmaintrigger the GitHub Actions workflow - Changelog: see CHANGELOG.md
- Contributor guide: CONTRIBUTING.md
Distributed under the MIT license.
Timestamper · Beta · Windows 10/11