Article Image
read

For more than a decade, my new-Mac setup came from two repos: dotfiles and oh-my-zsh. They worked, and they gave me consistency across machines. But over time, they also became heavy and stale.

What pushed me to change

I was using only a small part of what those repos installed. Probably 90% of those default setups are unused.

And many defaults no longer matched modern macOS, and some tools in my old setup were already deprecated.

The bigger issue was clarity. I wanted to understand every alias, every script, and every machine-level change.

Why Chezmoi is a better fit for me now

Chezmoi gives me a clean source-of-truth and predictable apply flow. I can separate dotfile sync from bootstrap scripts, and run system-changing steps intentionally.

This is the setup model I wanted all along: simple, explicit, and auditable.

The migration approach that actually worked

I treated migration like a Marie Kondo pass for shell config. If an alias or script did not spark joy or had no clear current use, I removed it.

I kept only what I use weekly. Everything else is cheap to regenerate later, especially with the help of Codex.

What changed in the agent era

In the past, I avoided shell scripting unless I had to.. because Bash is hard. I often need to refer to Stack Overflow, trying numerous scripts before getting something to work.

Now tools like Codex and Claude make planning, refactoring, and explaining dotfiles much faster.

That changed my behavior from hoarding old scripts to iterating on a lean setup. I no longer need to keep years of baggage “just in case.”

My new baseline workflow

I will install chezmoi on all my machines.

Whenever I edit files directly in ~ (for example ~/.zshrc), import first:

chezmoi add ~/.zshrc

Then apply and push to repo:

chezmoi apply
# Then git commit & push

On all other machines, I will apply the changes.

chezmoi cd
git pull
chezmoi apply
chezmoi status

This keeps day-to-day sync safe, while still allowing full machine setup when needed.

Closing thought

Deprecating dotfiles and oh-my-zsh felt like a cleanup, not a loss. My setup is smaller, easier to reason about, and easier to evolve.

If your shell config has grown for years, this is a good time to reset it with intent, with an agent to assist you all the way!


Image

@samwize

¯\_(ツ)_/¯

Back to Home