Tray-first Tauri desktop app for local image object detection with compact native-style React UI.
Uses TensorFlow.js Coco SSD to detect common COCO objects in uploaded images.
- Tray-only desktop behavior with the main window hidden until the tray icon is clicked.
- Compact dark/light native-style interface for macOS and Windows.
- Latest upload preview in the main tray panel.
- Tauri tray menu with select file, clipboard upload, recent uploads, about, settings, and quit.
- Dynamic tray progress icon using the app icon plus a theme-aware progress bar.
- Drag-and-drop media dropzone with file picker, clipboard image import, image support, and short MP4/MOV video support.
- Uploading and analyzing states with inline progress in the dropzone.
- TensorFlow.js Coco SSD object detection for 80 common object classes.
- Local image analysis inside the app webview; no custom upload server.
- Annotated image/video export to a user-selected local folder.
- Required first-run export folder setting with guarded writes from Rust.
- Recent uploads page with expandable entries, status, confidence scores, dimensions, exported filename, reveal-in-Finder/File Explorer, and removable entries.
- Export existence check, so moved/deleted exports are shown as missing instead of silently failing.
- Settings for preferred video export format and UI language (
en/pt). - Localized about panel driven by frontend i18n (
src/i18n/*.json).
- GitHub Actions release workflow for macOS, Windows, and Linux builds.
- Automatic in-app updates via Tauri Updater + GitHub Releases.
- Signed release artifacts with generated
latest.jsonmetadata. - Silent update checks on app startup.
- Built with Tauri + React + TensorFlow.js.
- Native-style lightweight desktop architecture with local-first processing.
src/App.tsx: main React UI, file handling, clipboard import, and TensorFlow.js analysis.src/App.css: compact native-style UI theme and responsive dark/light styling.src/i18n/: frontend translations for supported UI languages.src-tauri/src/lib.rs: Tauri tray, window positioning, dock/taskbar behavior, and tray progress icon.src-tauri/tauri.conf.json: Tauri app, security, window, and bundle configuration.src-tauri/icons/: app and tray icon assets..github/workflows/main.yml: tagged/manual release workflow for GitHub Releases.
- Node.js: v18+ recommended. Download: https://nodejs.org/
macOS (via Homebrew):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install rust pnpmWindows (via Chocolatey or Scoop):
- Chocolatey: https://chocolatey.org/install
choco install rust pnpm
- Scoop: https://scoop.sh/
scoop install rust pnpm
Linux or manual install:
- pnpm:
npm install -g pnpmor https://pnpm.io/installation - Rust: https://www.rust-lang.org/tools/install (run
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh)
Note: On Windows ensure MSVC toolchain available if building native bundles.
- Install dependencies:
pnpm install- Start dev app (hot reload):
pnpm tauri dev- If you prefer a local desktop build instead of running the dev server, create a distributable:
pnpm tauri buildUse pnpm tauri build when you want a production binary without running the dev server each time.
Automatic GitHub releases run when a version tag is pushed.
git tag v0.3.8
git push origin v0.3.8The workflow can also be started manually from GitHub Actions with workflow_dispatch.
-
macOS: Gatekeeper may block first-run for unsigned apps. If the app is blocked:
- Open
System Settings→Privacy & Security. - Look for a message about the blocked app and click
Open Anyway(or right-click the app →Open).
This may be necessary after downloading from GitHub Releases on first run.
- Open
-
Windows: SmartScreen or Defender may warn on first-run of an unsigned app.
- If blocked by SmartScreen, choose
More info→Run anyway. - To permanently unblock a downloaded installer/executable: right-click the file →
Properties→ checkUnblock→OK.
- If blocked by SmartScreen, choose
Note: signed/notarized builds avoid these prompts; release artifacts here are unsigned unless you configure signing.
- The first analysis downloads and loads the Coco SSD model, so it can take longer than later runs.
- Video export uses browser
MediaRecorder; output is WebM for broad local browser support. - Long videos are capped for safe local processing.
- Image files are decoded locally in the Tauri webview and are not sent to a project backend.
- Coco SSD model assets are fetched from TensorFlow-hosted storage at runtime.
- Clipboard image import depends on operating system and webview permissions.
- Release builds are unsigned unless signing and notarization are configured separately.
TauriSight, the TauriSight logo, and associated branding are trademarks of no-tone.
The Apache License 2.0 applies to the source code only and does not grant permission to use project branding, logos, or product identity without permission.

