sync-tools — Fast directory sync with Go, Cobra, and Bubble Tea

sync-tools

Learn More Download

Fast & efficient directory synchronization with Git patch support!

<a class="btn btn-link text-info" href="#td-block-1" aria-label="Read more"><i class="fa-solid fa-circle-chevron-down" style="font-size: 400%"></i></a>

sync-tools is a powerful, modern Go CLI wrapper around rsync that provides fast directory synchronization with advanced features like Git patch generation, interactive preview, and declarative SyncFile configuration.

Fast & Efficient

Built with Go for high performance and cross-platform support. Uses rsync for efficient file transfers.

One-way or Two-way Sync

Support for both one-way and two-way directory synchronization with conflict detection.

Git Patch Generation

Generate git-format patch files instead of syncing for review and manual application workflows.

Key Features

- **🚀 Fast & Efficient**: Built with Go for high performance and cross-platform support - **🎯 One-way or two-way** directory synchronization - **📁 Gitignore-style** `.syncignore` files (source and destination) - **🔗 Optional import** of `SOURCE/.gitignore` patterns - **🎨 Interactive Mode**: Beautiful terminal UI with Bubble Tea - **📜 SyncFile Format**: Dockerfile-like declarative sync configuration - **⚡ Per-side ignore** files and inline patterns (with `!` unignore) - **📋 "Whitelist" mode** to sync only specified paths - **⚙️ Flexible Configuration**: TOML config files OR pure CLI usage - **🔍 Smart Defaults**: Excludes `.git/`, optional hidden directory exclusion - **🎭 Dry-run previews** and detailed change output - **📊 Multiple Output Formats**: Text, JSON logging, Markdown reports, and git patches - **🔧 Git Patch Generation**: Create git-format patch files instead of syncing (via --patch flag or --report with .patch/.diff extension) - **👁 Preview Mode**: Show colored diff preview with paging support - **✅ Apply Patches**: Generate and apply patches with confirmation prompts

Ready to get started?

Get Started Examples