← Retour au blog
tech 19 June 2026

Migrating from GNU Stow to Chezmoi: Why and How

Switching from GNU Stow to Chezmoi for managing your dotfiles can revolutionize your workflow. Learn the benefits, challenges, and a practical guide to ease the transition.

Article inspired by the original source
Migrating from GNU Stow to Chezmoi ↗ rednafi.com

Why Migrate from GNU Stow to Chezmoi?

Managing dotfiles is a crucial task for any developer or power user. GNU Stow has been a popular choice due to its simplicity and efficiency in managing symlinks. However, as you start managing multiple machines, the limitations of Stow become quickly apparent. Chezmoi, on the other hand, offers a more robust and flexible approach.

Limitations of GNU Stow

GNU Stow essentially works by creating symlinks from a configuration directory to the home directory. This works well on a single machine but becomes problematic when you need to sync your dotfiles across multiple devices. Every change made on one machine is directly written through the symlink, leading to conflicts when changes are not uniformly propagated.

Moreover, when setting up a new machine, Stow cannot handle files that already exist in the home directory. This often requires a manual step of deleting conflicting files, which can be tedious.

Advantages of Chezmoi

Chezmoi eliminates these issues by using a single source directory (typically ~/.local/share/chezmoi) where it stores configuration files as regular files. Each file is named with a dot_ prefix to indicate hidden files and can handle additional attributes like permissions with prefixes such as private_.

One of the biggest advantages is Chezmoi's ability to bootstrap a new machine without conflict. Using chezmoi init followed by chezmoi apply, you can clone your dotfiles environment efficiently without the usual hassle.

How to Migrate from Stow to Chezmoi

Step 1: Preparation

Before starting, ensure all your dotfiles are up to date in your current Stow repository. This will prevent conflicts during migration.

Step 2: Install Chezmoi

You can install Chezmoi via Homebrew with the command:

``bash brew install chezmoi ``

Step 3: Add Files to Chezmoi

Use the chezmoi add command to add your existing files to Chezmoi's source directory. For example:

``bash chezmoi add ~/.zshrc ``

This will create a file named dot_zshrc in the Chezmoi source directory.

Step 4: Apply the Configuration

Once all files are added, use chezmoi apply to apply the configuration to your current machine. This will create the necessary files in your home directory.

Step 5: Multi-Device Synchronization

With Chezmoi, synchronizing multiple devices is straightforward. Clone your Chezmoi source directory repository on the new machine and use chezmoi init to automatically set up the environment.

Conclusion

Migrating from GNU Stow to Chezmoi might seem daunting, but the benefits in terms of dotfiles management and multi-device synchronization are well worth the effort. Ready to streamline your workflow? Let's discuss your project in 15 minutes.

GNU Stow Chezmoi dotfiles migration automation
Deepthix newsletter · 100% AI · every Monday 8am

An AI agent reads tech for you.

Our AI agent scans ~200 sources per week and ships the best articles to your inbox Monday 8am. Free. One click to unsubscribe.

Visit the newsletter page →

Want to automate your operations?

Let's talk about your project in 15 minutes.

Book a call