基于系统 git 的跨平台文件夹双向同步工具。双击即用,托盘常驻,自动提交、合并、冲突处理,完全无感。
把任意本地文件夹变成自动同步的 git 仓库——本地改动自动提交推送,其他设备的改动自动 rebase 合并,冲突按策略自动处理且零丢失。双击 exe 弹配置窗口,填好多任务后最小化到托盘,后台定时同步,右键手动触发。
- 托盘常驻:双击启动 → 配置窗口 → 后台托盘定时同步,右键手动同步 / 暂停。开机自启一键开关。
- 多任务:一份配置管多个文件夹,各自独立状态与锁。
- 双向同步:本地 ⇄ 远程自动一致,rebase 合并非冲突分叉。
- 冲突零丢失:三策略——
local_wins备份远程旧版本到分支可恢复、remote_wins重置、conflict_files本地版落副本(入 git 同步,远程版生效)。强推一律--force-with-lease。 - 真正无感:成功静默,仅初始化 / 冲突 / 失败弹系统通知。
- 开箱健壮:网络操作指数退避重试、单实例锁防并发、备份分支自动清理。
- dry-run 预览:只读输出同步计划,不联网不改仓库。
- 自有图标:托盘 / 窗口 / exe 自有 SVG 图标,位置无关、可装只读目录。
# 构建(需 Go 1.26+ 与系统 git;托盘版需 CGO + gcc,用 -tags traygui)
make build # Windows 托盘版,仅限 Windows 目标(-H windowsgui 为 Windows linker 标志)
make build-cli # 纯 Go CLI 版(无托盘,快速 / 跨平台;产物 AutoSync-CLI[.exe] 按平台)
# 双击 AutoSync.exe → 配置窗口增删任务 → 关闭即缩至托盘 → 后台定时同步
autosync # 启动托盘守护(双击等同,弹窗口)
autosync install # 开机自启(写注册表 Run 键,后台静默)
autosync sync --dry-run # CLI 一次性只读预览
# macOS:菜单栏守护(Swift MenuBarExtra 壳 + Go 引擎子进程,须 macOS 主机)
make build-macos-app # 产 dist/AutoSync.app(需 xcodegen + Xcode,见 macos/README-install.md)
# Linux:daemon 守护 + systemd 自启(无 GUI,对齐 Syncthing/Rclone)
make package-linux # 产 dist/autosync-linux-{amd64,arm64}.tar.gz
# 解压 tarball → bash install-linux.sh → 编辑 ~/.autosync/autosync.conf.yaml
autosync daemon # 前台多任务守护(systemd 即调用此命令)
autosync install # 注册 systemd user service 开机自启配置与 byproduct(日志/状态/锁)统一在用户主目录下 ~/.autosync/,跨平台一致、exe 位置独立——可装进 Program Files、可在任意位置双击。可用 AUTOSYNC_DATA_DIR 覆盖。
~/.autosync/
autosync.conf.yaml # 多任务配置(托盘 / daemon / CLI 共用,Linux 手编 / Win/macOS GUI 管理)
logs/ state/ locks/
flowchart TB
EXE[autosync.exe 双击] --> APP[托盘守护 TrayApp]
APP --> WIN[配置窗口 多任务 CRUD] & MENU[托盘菜单 手动/暂停/自启]
APP --> SCHED[TaskScheduler 每任务 ticker]
SCHED --> RUN[TaskRunner]
RUN --> SYNC[Syncer 状态机]
SYNC -->|shell out| GIT[(系统 git)]
RUN --> STATE[每任务 state] & NOTIFY[系统通知]
REG[注册表 Run 键] -->|登录自启| APP
Syncer 依赖 GitOperator 接口(依赖倒置),shell out 调系统 git,不内嵌 git 库。托盘用 Fyne(构建标签 traygui 隔离,默认构建纯 Go)。Linux 走 daemon 子命令 + systemd user service(无 GUI)。详见 docs/tech.md。
| 平台 | 同步核心 | 守护 | 开机自启 |
|---|---|---|---|
| Windows | ✅ | ✅ Fyne 托盘 | ✅ 注册表 Run 键 |
| macOS | ✅ | ✅ MenuBarExtra(Swift 壳) | ✅ SMAppService |
| Linux | ✅ | ✅ daemon 守护(无 GUI) | ✅ systemd 自启 |
prd · tech · api · flow · roadmap · TODO · plan
语义化版本,每版本一个主题,不堆功能。完整规划见 docs/roadmap.md。
| 版本 | 主题 | 关键能力 |
|---|---|---|
| v1.2.0 ✅ | 三平台守护 | Windows 托盘 + macOS Swift 壳 + Linux daemon,三冲突策略(含 conflict_files 副本可恢复) |
| v1.3.0 | 好用 | HTTPS token 引导降门槛、连续失败降噪、通知分级、清架构债 |
| v1.4.0 | 实时 | 文件监听(inotify/FSEvents)亚分钟级、daemon 运行时控制 IPC |
| v2.0.0 | 可信 + 生态 | macOS 代码签名公证、VS Code / Obsidian 插件、Git hook 集成 |
不做:P2P 设备发现、文件分享、端到端加密云盘化、手机端、团队协作——竞品主场。全程 MIT 开源,不设功能付费墙。