Axel Meyer 9a2cec8e21
Some checks failed
Release / build (push) Failing after 1m44s
CI: make panel build optional, show apt-get errors, graceful fallbacks
If CGO dependencies are missing, panel builds are skipped with a warning
and the tray binary falls back to opening the browser.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 22:00:06 +01:00
2026-03-03 21:16:28 +01:00
2026-03-03 21:16:28 +01:00
2026-03-03 21:16:28 +01:00
2026-03-03 21:16:28 +01:00
2026-03-03 21:16:28 +01:00

SyncWarden

Lightweight system tray wrapper for Syncthing. 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).

# 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

License

MIT

Description
Lightweight system tray wrapper for Syncthing
Readme MIT 994 KiB
v0.3.0 Latest
2026-03-03 23:57:39 +00:00
Languages
Go 99.8%
Shell 0.2%