This repo is being built step by step for macOS.
Current steps:
- Ensure Homebrew is installed.
- Ensure JetBrains Mono Nerd Font is installed.
- Ensure Ghostty is installed with Homebrew and apply the base Ghostty settings.
- Ensure Xcode Command Line Tools are installed.
- Ensure Git tooling is installed and the managed Git config is active.
- Ensure the default CLI tools are installed.
- Ensure the managed runtime baseline is installed with mise.
- Ensure zsh is present and the default login shell.
Optional steps can install extra tools only when you request them.
Current scope covers terminal bootstrap, developer CLI tooling, Git/GitHub tooling, and a minimal runtime baseline for macOS. Optional tools stay out of the default path until you request them.
Usage:
bash setup.sh homebrew
bash setup.sh jetbrains-mono
bash setup.sh ghostty
bash setup.sh xcode-cli
bash setup.sh git
bash setup.sh cli-tools
bash setup.sh runtimes
bash setup.sh zsh
bash setup.sh fzf
bash setup.sh fd
bash setup.sh direnv
bash setup.sh tlrc
bash setup.sh pnpm
bash setup.sh allNotes:
setup.sh homebrewensures Homebrew is present.setup.sh jetbrains-monoensures Homebrew is present, then installs thefont-jetbrains-mono-nerd-fontcask if needed.setup.sh ghosttyensures Homebrew is present, then installs theghosttycask if needed and writes your base settings to~/Library/Application Support/com.mitchellh.ghostty/config.ghostty.setup.sh xcode-cliverifies that Xcode Command Line Tools are installed. If they are missing, it triggers the standard macOS installer flow and asks you to rerun the step after installation completes.setup.sh gitensures Homebrew and Xcode Command Line Tools are present, installsghandgit-delta, treats an existing systemgitfrom macOS or Xcode Command Line Tools as sufficient, installs Homebrewgitonly ifgitis otherwise missing, synchronizes the managed Git config to~/.config/git/config, and ensures~/.gitconfigincludes that managed config without overwriting existing user settings.setup.sh cli-toolsensures Homebrew and Xcode Command Line Tools are present, then installs the default CLI tools:jq,yq, andtmux.setup.sh runtimesensures Homebrew and Xcode Command Line Tools are present, ensuresmiseis installed, synchronizes~/.config/mise/config.toml, and installs the managed runtime baseline: Node LTS and Python 3.npmremains the default Node package manager.setup.sh zshensures/bin/zshexists, ensures it is allowed as a login shell, installsstarship,mise,zoxide,eza,bat,ripgrep, andopenssl@3with Homebrew when needed, makes zsh the default login shell when needed, syncs the repo zsh files into~/.config/zsh, synchronizes~/.config/starship.toml, writes a minimal~/.zshenvshim, and ensures history is stored at~/.local/state/zsh/history.- The aliases in
config/zsh/aliases.zshinclude Podman-oriented container shortcuts such asd,dc, anddps. They are aliases forpodman, not for Docker, and the repo does not currently install Podman or Docker for you. setup.sh fzf,setup.sh fd,setup.sh direnv,setup.sh tlrc, andsetup.sh pnpmare optional explicit-request installs. They are not part ofsetup.sh all.setup.sh allruns every default step in order and excludes the optional explicit-request installs.- If the JetBrains Mono Nerd Font Mono files already exist outside Homebrew
(
Regular,Bold,Italic, andBoldItalic), the JetBrains Mono Nerd Font step treats that as already installed and skips Homebrew installation. - If
Ghostty.appalready exists in/Applicationsoutside Homebrew, the Ghostty step treats that as already installed, skips Homebrew installation, and still overwrites the Ghostty config with your base settings.
Ghostty base settings source:
config/ghostty/base.ghosttyis the file to edit when you want to change the Ghostty defaults.- The Ghostty step overwrites
~/Library/Application Support/com.mitchellh.ghostty/config.ghosttywith the exact contents of that file.
zsh and Starship config sources:
config/zsh/.zshenv,config/zsh/.zshrc,config/zsh/aliases.zsh, andconfig/zsh/prompt.zshare the source files synchronized into~/.config/zshby the zsh step.config/starship.tomlis the source file synchronized into~/.config/starship.tomlby the zsh step.
Git config source:
config/git/configis the managed Git config synchronized into~/.config/git/configby the git step.
mise config source:
config/mise/config.tomlis the managed mise config synchronized into~/.config/mise/config.tomlby the runtimes step.