Announcing config-sync

Mohammed A.
Feb 12, 2026
Announcing config-sync

I built a small tool called config-sync to solve a problem I kept hitting: my config files are scattered across machines, and they are no longer only inside ~/.config.

Today, important setup files can live in places like ~/.claude/CLAUDE.md, shell dotfiles, and other custom paths. Keeping them consistent manually is annoying and error-prone.

config-sync gives me a simple flow to track, push, and restore those files across machines using git.

What It Does

  1. Track config files from different locations.
  2. Push synced state to a git repository.
  3. Pull on another machine and restore files back to their original paths.
  4. Check whether you are out of sync with check-updates.

Quick Start

go install github.com/mohammed-io/[email protected]
config-sync init
config-sync set-origin-repo [email protected]:your-username/your-config-repo.git
config-sync track ~/.claude/CLAUDE.md ~/.gitconfig ~/.vimrc
config-sync push

On another machine:

config-sync init-from [email protected]:your-username/your-config-repo.git
config-sync pull

One Important Caveat

Be careful what you track. Config repos can easily leak secrets if you are not deliberate. Use a private repository, and if needed, add encryption with git-crypt.

Future Roadmap

Here are improvements I want to ship next:

  1. Parallel file checks when tracked files grow large, while keeping sequential checks for small sets.
  2. Non-blocking background check-updates on shell startup, so the shell opens instantly.
  3. A setup wizard to initialize and configure git-crypt in the sync repository.

Conclusion

I built config-sync for my own workflow first, and it is already reducing friction in my day-to-day setup across machines.

If you manage configs in multiple places and want a simple git-based sync flow, this tool is ready to use today.