Portable macOS developer bootstrap: shell, tmux, Neovim, Atuin, Android tooling, and Homebrew packages. Safe to publish — no secrets are stored in this repo.
| Layer | Source |
|---|---|
| Homebrew packages | Brewfile — tmux, neovim, ripgrep, fd, gh, zoxide, Android Studio, iTerm2, Nerd Font, … |
| Rust CLI | cargo install — atuin, githist |
| Oh My Zsh | upstream install script |
| Oh My Tmux | gpakosz/.tmux clone + local overrides |
| Config symlinks | zshrc, tmux.conf.local, nvim/, atuin/config.toml |
dotfiles/
├── bootstrap.sh # one-shot new machine setup
├── Brewfile
├── zsh/
│ ├── zshrc # ~/.zshrc
│ └── android.zsh # JAVA_HOME / ANDROID_HOME (when Studio + SDK exist)
├── tmux/
│ └── tmux.conf.local # ~/.tmux.conf.local
├── atuin/
│ └── config.toml # ~/.config/atuin/config.toml (non-secret settings only)
├── nvim/ # ~/.config/nvim
├── scripts/
│ └── verify.sh # post-install checks
└── docs/
└── iterm.md # iTerm2 notes (prefs not exported — no secrets)
git clone https://github.com/joshskeen/dotfiles.git ~/dotfiles
bash ~/dotfiles/bootstrap.sh
source ~/.zshrc
bash ~/dotfiles/scripts/verify.shbash ~/dotfiles/bootstrap.sh --configs-only # symlinks only
bash ~/dotfiles/bootstrap.sh --skip-brew # skip Homebrew/Brewfile
bash ~/dotfiles/bootstrap.sh --skip-cargo # skip rustup + atuin/githist- Atuin — register on the new machine (encryption keys stay local):
atuin register -u <username> -e <email> # optional sync: atuin login
- Android Studio — open once, run the setup wizard, install SDK components. Then
adb versionshould work in a new shell. - iTerm2 — see
docs/iterm.mdfor font and profile notes. - Neovim — first launch installs Lazy.nvim plugins; optionally
npm install -g tree-sitter-clifor treesitter.
Never commit:
~/.local/share/atuin/{key,session,history.db,*.db}- API tokens,
.env, SSH keys, or exported iTerm plist files with third-party credentials *.bakbackups created bybootstrap.sh
Atuin sync is optional; this repo only ships non-secret config.toml overrides (daemon-fuzzy, sync v2 records, etc.).
Configs are symlinked from ~/dotfiles:
cd ~/dotfiles
git add -A && git commit -m "..." && git pushEdits under ~/.zshrc, ~/.tmux.conf.local, or ~/.config/nvim land in the repo automatically.