# SyncWarden Lightweight system tray wrapper for [Syncthing](https://syncthing.net/). Cross-platform, native-feeling, ~10 MB. ## Features - **Tray icon** with 5 states: idle (green), syncing (blue), paused (gray), error (red), disconnected (dark gray) - **Real-time monitoring** via Syncthing event API (long-polling) - **Transfer rates** in tooltip and menu - **Context menu**: folder list, recent files, conflict counter, pause/resume, rescan, restart - **Embedded admin panel** using the system browser engine (Edge WebView2 / WebKit / WebKit2GTK) - **OS notifications** for sync complete, device connect/disconnect, new device requests, conflicts - **Settings** toggleable via menu checkboxes (persisted to JSON config) - **Auto-start Syncthing** with crash recovery - **API key auto-discovery** from Syncthing's config.xml ## Architecture | Binary | Purpose | |--------|---------| | `syncwarden` | Tray icon, menu, API polling, notifications, process management | | `syncwarden-panel` | Embedded browser showing Syncthing admin panel | | `syncwarden-setup` | Cross-platform installer | Separate binaries avoid main-thread conflicts between systray and webview. ## Installation ### From release Download the latest release for your platform and run `syncwarden-setup`. ### From source Requires Go 1.24+ and CGO (MinGW-w64 on Windows for the panel binary). ```bash # Tray binary (pure Go on Windows) go build -o syncwarden ./cmd/syncwarden # Panel binary (requires CGO + C++ compiler) CGO_ENABLED=1 go build -o syncwarden-panel ./cmd/panel # Setup go build -o syncwarden-setup ./cmd/setup ``` ## Configuration Config file location: - **Windows**: `%LOCALAPPDATA%\syncwarden\config.json` - **Linux**: `~/.config/syncwarden/config.json` - **macOS**: `~/Library/Application Support/syncwarden/config.json` The API key is auto-discovered from Syncthing's config.xml on first run. All settings are configurable via the tray menu. ## Dependencies - [energye/systray](https://github.com/energye/systray) — System tray - [webview/webview_go](https://github.com/webview/webview_go) — Embedded browser - [fogleman/gg](https://github.com/fogleman/gg) — Icon rendering - [gen2brain/beeep](https://github.com/gen2brain/beeep) — OS notifications ## License MIT