Personal machine setup – non-interactive, idempotent, safe to re-run at any time.
git clone https://github.com/janmarkuslanger/dotfiles.git ~/dotfiles
cd ~/dotfiles
./setup.shsetup.sh does everything in one pass:
- Installs Homebrew (if missing) and all packages from
Brewfile - Installs/updates global npm tools (Claude Code)
- Copies dotfile packages into
$HOME
If a target file already exists and differs, it is backed up as
<file>.bak.<timestamp> before being overwritten.
Every top-level directory is a package mirroring paths relative to $HOME:
| Package | Target | Contents |
|---|---|---|
claude |
~/.claude/CLAUDE.md |
Global Claude Code behavior |
zsh |
~/.zshrc |
Aliases, PATH, fzf, zoxide, history |
Create a directory mirroring the target path relative to $HOME, e.g.
git/.gitconfig, then re-run ./setup.sh. Packages are discovered
automatically – no registration needed.
Edit Brewfile, then re-run ./setup.sh (or brew bundle --file=Brewfile).