Pause Syncthing from your tray. One click. Resume when you're done.
A lightweight Windows tray companion for Syncthing, built with C# (.NET 8 WinForms). Launches Syncthing hidden, shows sync state in the icon, and gives you one-click pause/resume — that's the headline feature; everything else exists to support it.
Renamed from SyncthingTray (v2.x). v3.0.0 is the same project, refocused around its actual usage pattern (pause when you need bandwidth) and renamed to avoid confusion with Martchus's Syncthing Tray (the well-known Qt cross-platform tray app). Existing v2.x installs continue working; see Migration below.
| Tray Menu | Settings |
|---|---|
![]() |
![]() |
- One-click pause/resume via menu, middle-click, or timed pause (5 min, 30 min, until resumed)
- Per-folder and per-device pause with partial-pause icon when not everything is paused
- Launches Syncthing hidden (no console window)
- Tray icon shows running state (sync / partial-pause / pause) with dark-themed context menu
- Start, stop, and restart Syncthing from the tray menu
- Open the Syncthing Web UI with a double-click
- Synced Folders submenu — open any synced folder in Explorer
- Device connect/disconnect notifications
- File conflict (pull error) detection
- Network auto-pause on public networks (WMI-based)
- Auto-update check for Syncthing (daily, rate-limited)
- Dark-themed Settings GUI with discovery toggles
- Config check utility (validates exe, process, API, discovery)
- Help window with usage guide
- Graceful shutdown via Syncthing REST API with process kill fallback
- Crash detection with audible alert when Syncthing exits unexpectedly
- Run at Windows startup (shortcut in Startup folder)
- Portable mode — auto-detected on removable drives (disables startup shortcut)
- First-run wizard — auto-opens Settings when no config exists
- Overclick safeguard — cooldown on rapid Start/Stop/Restart/Pause actions
- Single-instance enforcement — kills previous instances on launch
- Tray icon recovery after Explorer restarts
Grab the latest from the Releases page:
SyncthingPause.exe— self-contained, no .NET runtime needed (~147 MB)
winget install itsnateai.SyncthingPauseWinGet installs stay current automatically — use winget upgrade itsnateai.SyncthingPause. The in-app self-update button detects WinGet installs and points you back at the CLI instead of trying to overwrite the managed binary.
If you previously installed
itsnateai.SyncthingTray, see Migration — the WinGet PackageIdentifier changed with the rename, sowinget upgradewon't carry you across versions automatically.
Releases publish a SHA256SUMS file alongside the exe. The in-app Update button downloads it, verifies the hash, and fails closed if anything is missing or doesn't match. Unverified updates never land on disk.
- Windows 10/11
- Syncthing — download
syncthing-windows-amd64-*.zipand extractsyncthing.exe
Note: This is a lightweight alternative to Martchus's Syncthing Tray (Qt-based, ~80 MB) — that one's the established cross-platform Syncthing tray app with built-in file browser and embedded web view. SyncthingPause focuses on the single thing most users actually open the tray for: pausing Syncthing when you need bandwidth.
- Download
SyncthingPause.exefrom Releases - Download Syncthing and extract
syncthing.exeto the same folder - Run
SyncthingPause.exe— Syncthing starts automatically in the background - Right-click the tray icon > Settings to enter your API key
Right-click the tray icon and select Settings to configure:
- Double-click action — configurable: Open Web UI, Force Rescan, Pause/Resume, or Do Nothing
- Middle-click action — configurable: same options as double-click
- Run on startup — creates/removes a Windows Startup shortcut
- Start browser — open the Web UI when Syncthing launches
- Sound notifications — play sounds on device connect/disconnect, file errors, unexpected stop
- Auto-pause on public networks — pause syncing on public Wi-Fi
- Startup delay — wait N seconds before launching Syncthing
- Syncthing path — custom path to
syncthing.exe - Web UI URL — custom Syncthing Web UI address
- API Key — required for pause/resume, status polling, and graceful shutdown. Find it in the Syncthing Web UI under Actions > Settings > API Key.
- Discovery — toggle Global Discovery, Local Discovery, and NAT Traversal
- Auto-update — check for Syncthing updates daily
Settings are saved to SyncthingPause.ini in the application directory.
Diagnostic logging is off by default. To enable it, add DiagnosticLogging=1 to SyncthingPause.ini. When enabled, a rolling log is written to %LOCALAPPDATA%\SyncthingPause\tray.log (1 MB cap, one-generation rotation to .1) — attach this file to any bug report.
SyncthingPause v3.0.0 was previously released as SyncthingTray v2.x. The rename comes with a migration bridge so existing users carry their state forward without manual steps:
- Pause state —
pause.datis auto-migrated from%LOCALAPPDATA%\SyncthingTray\to%LOCALAPPDATA%\SyncthingPause\on first launch (Copy → verify → delete legacy). The 22-folder paused state from v2.x users survives the upgrade transparently. - Settings — if
SyncthingTray.iniis co-located with the new exe, it's one-shot copied toSyncthingPause.ini. The legacy file is preserved for rollback. - Startup shortcut — any
SyncthingTray.lnkin your Startup folder is removed on first launch so old and new don't both auto-launch and fight oversyncthing.exe. - Running predecessor — any running
SyncthingTray.exein your session is killed at SyncthingPause startup so it releases itspause.datlock before migration runs.
winget uninstall itsnateai.SyncthingTray(the rename predecessor stays in WinGet's manifest registry as a deprecated package; users runningwinget upgradeare pointed at the new ID)- Delete
%LOCALAPPDATA%\SyncthingTray\once you've confirmed pause state migrated
- Right-click the tray icon → Exit
- Delete
SyncthingPause.exeandSyncthingPause.ini - Delete
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\SyncthingPause.lnkif you enabled "Run on startup" - Delete
%LOCALAPPDATA%\SyncthingPause\(contains the diagnostic log, pause state, and update sentinel) - If installed via WinGet:
winget uninstall itsnateai.SyncthingPause
Syncthing itself is separate — uninstall it via whatever method you used to install it.
Requires .NET 8 SDK.
dotnet build -c Release
dotnet testdotnet publish SyncthingPause/SyncthingPause.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=trueOutput: SyncthingPause/bin/Release/net8.0-windows/win-x64/publish/SyncthingPause.exe
This app is free and open source. If it saves you time, consider supporting continued development:
- Buy Me a Coffee — one-time support
You can also build from source for free — see the build instructions above.
MIT

