Syncthing Manager

pending

by Gustavo Carreiro

Control panel for Syncthing. Monitor status, resolve conflicts, and force synchronization on Desktop and Mobile.

β˜… 15 starsUpdated 3d agoMITDiscovered via Obsidian Unofficial Plugins
View on GitHub
Plugin Banner

Control, monitor, and visualize your Syncthing synchronization directly inside Obsidian.

Latest Release Total Downloads Last Commit License


Plugin Overview

This plugin acts as a bridge to your local Syncthing API, providing real-time file status, a powerful conflict resolver, and tools to keep your vault healthy across Desktop and Mobile devices.

πŸ“š Documentation

For full usage guides, installation instructions, and troubleshooting, visit the Official Documentation.


✨ What's New (v1.2 - v1.4)

Syncthing Manager is constantly evolving. Here are the latest highlights:

  • Visual Conflict Resolver: Safely compare and merge .sync-conflict files with a side-by-side diff view powered by CodeMirror 6.
  • Sync Progress Bar: Monitor real-time file transfer progress directly from the side panel.
  • Quick Ignore: Right-click any file or folder and select "Don't sync this" to instantly add it to your .stignore.
  • Global Localization: Support for over 20 languages (thanks to our community on Crowdin!).
  • Security & Stability: API keys are now securely stored in the Obsidian native Keychain. Enhanced connection resiliency with a new long-polling architecture, plus a built-in Debug Console.

Note: The Visual Sync feature (spinning 🟠 and checkmark 🟒 icons on active tabs) introduced in v1.1 remains one of our core capabilities!


πŸš€ Features

  • Real-Time Monitoring: View your vault status (Synced, Syncing, Disconnected) via the Status Bar or a dedicated Side Panel.
  • Visual Sync: Tabs show specific icons when files are syncing (🟠) or fully synced (🟒).
  • Control Center: Pause/Resume specific folders and see connected devices by name directly in the plugin view.
  • File Versioning: Configure versioning strategies (Trashcan, Simple, Staggered) and restore previous versions of files directly within Obsidian.
  • Conflict Resolver: Intelligent detection of .sync-conflict files with a side-by-side diff view for safe resolution.
  • Context Menu Integration: Right-click any file to force a sync or view its version history.
  • .stignore Editor: Manage ignored files (like workspace.json or .DS_Store) directly within Obsidian using built-in templates.
  • History Filter: Keep your activity log clean by hiding system files from the history view.
  • Mobile Optimized: Responsive design built to work perfectly on Android.
  • Localization: Fully translated into πŸ‡ΊπŸ‡Έ English, πŸ‡§πŸ‡· Portuguese (BR), and πŸ‡·πŸ‡Ί Russian.

Quick Start

  1. Install: Use BRAT or download the latest release.
  2. Get API Key: In Syncthing, navigate to Actions > Settings > General and copy the API Key.
  3. Configure:
    • Open Obsidian Settings > Syncthing Manager.
    • Paste your API Key and click Test Connection.
    • Important: Select your Vault Folder from the dropdown menu to track events.

πŸ“± Android Setup (Critical)

To use this plugin on Android (via Syncthing-Fork or the official app), you must allow local HTTP connections.

[!WARNING] > HTTPS Restriction: Obsidian Mobile cannot connect to self-signed HTTPS certificates on localhost. You must disable HTTPS in the Syncthing App settings. Since the address is restricted to 127.0.0.1, your traffic remains local and secure.

  1. Open Syncthing App > Settings > GUI.
  2. Set GUI Listen Address to 127.0.0.1:8384.
  3. Disable "Use HTTPS for GUI".
    • Note: Ensure you have cleared "GUI Authentication User/Password" fields, otherwise the app may enforce HTTPS.
  4. Restart the Syncthing App.
  5. In Obsidian Plugin Settings, ensure Use HTTPS is toggled OFF.

Alternative: Force HTTP (Environment Variable)

If the above method resets or fails, you can force Syncthing to use HTTP using an environment variable.

[!CAUTION] Side Effect: This may cause the Syncthing Android App's native UI to stop loading (showing a blank screen or loading spinner). However, the background service will still run, and you can access the full Web UI via your browser at http://127.0.0.1:8384.

  1. Go to Settings > Troubleshooting > Environment Variables.
  2. Add the following variable:
    • Key: STGUIADDRESS
    • Value: http://127.0.0.1:8384
  3. Restart the App.
  4. If you need to revert, simply delete this variable.

Features Guide

βš”οΈ Conflict Resolution

When a sync conflict occurs, a red alert will appear in the Syncthing View.

  1. Click the alert to open the Conflict Resolver.
  2. Select Compare Content for a side-by-side comparison.
  3. Choose:
    • Keep Original: Deletes the conflict file.
    • Use Conflict Version: Overwrites your local file with the remote version.

Conflict Modal

πŸ“‚ Ignoring Files (.stignore)

Prevent layout issues by ignoring workspace configuration files.

  1. Open Settings > Syncthing Manager > Edit .stignore.
  2. Use "Add Common Patterns" to quickly ignore workspace.json, .obsidian/workspace, or OS files like .DS_Store.

FAQ & Troubleshooting

Q: The tab icon is spinning but never turns green.

  • This usually means Syncthing is still scanning or the file is large. Check the Syncthing GUI web panel for detailed progress.

Q: Plugin status shows "Disconnected".

  • Verify that the Syncthing service is running.
  • Ensure the API Key matches exactly.
  • On Android, double-check that HTTPS is disabled in the Syncthing App.

Q: Is it secure to disable HTTPS on Android?

  • Yes. By setting the GUI Listen Address to 127.0.0.1, access is restricted exclusively to applications running locally on that specific device.

Installation

BRAT (Beta)

  1. Install the BRAT plugin from the Obsidian Community Store.
  2. Add this repository URL: https://github.com/gustjose/obsidian-syncthing-manager.
  3. Enable Syncthing Manager.

Contributing

Contributions are welcome! If you encounter bugs or have feature requests, please open an issue.

  • Build: npm run build
  • Dev: npm run dev

🌍 Translations

Help us make the plugin accessible to everyone! We use Crowdin to manage translations. You don't need to be a developer to contribute. Just create a free account and start translating strings to your language directly in the browser!


License

This project is licensed under the MIT License.
Copyright Β© 2025 Gustavo Carreiro.

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.