Borrows heavily from Dries Vints' dotfiles and Freek Van der Herten's dotfiles.
-
Update macOS to the latest version via the App Store.
-
Download and install 1Password. Sign in, then enable the SSH agent (Settings → Developer → Use the SSH agent). This handles your SSH key and commit signing — no need to generate keys manually.
-
Clone this repo:
git clone git@github.com:driftingly/dotfiles.git ~/.dotfilesIf the SSH clone fails (1Password SSH agent not yet working), use HTTPS and switch later:
git clone https://github.com/driftingly/dotfiles.git ~/.dotfiles -
Run the install script:
~/.dotfiles/bin/installThis will prompt for confirmation, then:
- Install Oh My Zsh and zsh plugins
- Install Homebrew and everything in the Brewfile
- Symlink shell, git, Ghostty, and Claude Code config
- Set up fzf shell integration
- Install Node (via fnm) and global npm packages
- Apply macOS system defaults (will prompt separately)
-
Install apps that aren't available via Homebrew (see below).
-
Restart your computer to finalize.
Pull the latest dotfiles and refresh everything:
~/.dotfiles/bin/updateThis updates the dotfiles repo, Homebrew packages, Oh My Zsh, zsh plugins, and global npm packages.
bin/ Install and update scripts
config/
Brewfile Homebrew packages and casks
claude/ Claude Code config, agents, and skills
ghostty/ Ghostty terminal config
git/ .gitconfig and .gitignore_global
macos/ macOS system defaults (configure.sh)
zsh/ .zshrc, aliases, exports, functions
- Machine-specific shell config (e.g. Herd's auto-injected PHP paths) belongs in
~/.zshrc.local, which.zshrcsources if present. Don't commit it. - The macOS defaults script (
macos/configure.sh) can be re-run independently. It will prompt for confirmation before making changes.
- AnyList
- Festivitas
- Pixelmator Pro
- WireGuard (the GUI client)
- Grammarly
- Actions For Obsidian — Obsidian community plugin, installed from inside Obsidian
- Browser Actions — Safari extension
- Polyscope
- Showcode
- Solo
- Tim