Minimal dotfiles managed with just.
- macOS
- Git
- Homebrew (installed automatically by
just setupif missing)
git clone <repo-url> ~/dotfiles
cd ~/dotfiles
just setup
exec zshjust setup runs these steps in order:
- backup — moves
~/.dotfilesto~/.dotfiles.bak(if it exists) - brew — installs Homebrew if missing, then installs packages from
Brewfile - symlinks — links config files into place (backs up existing files to
.bak) - gitconfig-setup — splits
~/.gitconfiginto private values + shared include - shell — sets zsh as default shell
- claude-plugins — installs Claude Code plugin marketplaces and plugins
~/dotfiles/
Brewfile # Homebrew CLI tools + fonts
justfile # setup orchestrator
zshrc # -> ~/.zshrc
gitconfig # included by ~/.gitconfig via [include]
gitignore # global gitignore (referenced by gitconfig)
claude/ # -> ~/.claude
settings.json # Claude Code preferences
config/
nvim/ # -> ~/.config/nvim
sheldon/ # -> ~/.config/sheldon
starship.toml # -> ~/.config/starship.toml
ghostty/ # -> ~/.config/ghostty
lazygit/ # -> ~/.config/lazygit
| Source | Target |
|---|---|
zshrc |
~/.zshrc |
claude/ |
~/.claude |
config/*/ |
~/.config/*/ |
config/starship.toml |
~/.config/starship.toml |
Git configuration is split into two files:
~/.gitconfig— private values only (user.name, email, GPG signing)~/dotfiles/gitconfig— shared settings, aliases, URL shorthands (included via[include])
This keeps secrets out of the repo. The just gitconfig-setup recipe handles the migration automatically.
just symlinks # re-run symlinks only
just claude-plugins # re-run Claude Code plugin installs only
just update # update brew packages + sheldon pluginsDrop a directory into config/ and run just symlinks — it will automatically be linked to ~/.config/.
The old ~/.dotfiles repo (Dotbot + zgen + Oh-My-Zsh) is preserved at ~/.dotfiles.bak. It is not deleted.