Run the automated setup script — it will detect the OS and prompt before installing each tool:
bash setup.sh/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Common commands:
brew install [formula]— install a packagebrew uninstall [formula]— uninstall a packagebrew update— update Homebrew itselfbrew upgrade [formula]— upgrade a packagebrew list— list installed packagesbrew search [text]— search packages
brew install --cask iterm2- Select a color theme: Material Design or Gruvbox
git clone https://github.com/powerline/fonts.git --depth=1
cd fonts
./install.shsudo apt update && sudo apt install -y zsh
chsh -s $(which zsh)sudo apt install -y fonts-powerlinesh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"Set theme in ~/.zshrc:
ZSH_THEME="agnoster"
git clone https://github.com/zsh-users/zsh-autosuggestions \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlightingEnable in ~/.zshrc:
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
macOS — install via Homebrew:
brew install nvmAdd to ~/.zshrc:
export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh"
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm"
Linux / Windows (WSL) — install via curl:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bashAdd to ~/.zshrc:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
nvm install --lts # install latest LTS version
nvm use --lts # use latest LTS version
nvm ls # list installed versionsmacOS:
brew install bisonLinux / Windows (WSL):
sudo apt update && sudo apt install -y curl git make binutils bison gcc build-essentialbash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)Add to ~/.zshrc:
[[ -s "$HOME/.gvm/scripts/gvm" ]] && source "$HOME/.gvm/scripts/gvm"
gvm listall # list all available Go versions
gvm install go1.21 # install a specific version
gvm use go1.21 --default # use a version and set as default
gvm list # list installed versionsmacOS (Apple Silicon):
curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh
bash Miniconda3-latest-MacOSX-arm64.shLinux / Windows (WSL):
curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.shconda init zshRestart the terminal, then:
conda create -n myenv python=3.11 # create a new environment
conda activate myenv # activate environment
conda deactivate # deactivate environment
conda env list # list all environments
conda install <package> # install a package via conda
pip install <package> # install a package via pip (inside active env)Download the latest release from the Neovim releases page.
macOS (Apple Silicon):
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-macos-arm64.tar.gz
xattr -c nvim-macos-arm64.tar.gz # remove macOS quarantine attribute
tar xzf nvim-macos-arm64.tar.gz
mv nvim-macos-arm64 ~/.local/nvimLinux / Windows (WSL):
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz
tar xzf nvim-linux-x86_64.tar.gz
mv nvim-linux-x86_64 ~/.local/nvimAdd to ~/.zshrc:
export PATH="$HOME/.local/nvim/bin:$PATH"
Then reload:
source ~/.zshrcVerify:
nvim --versionA terminal UI for git commands.
macOS:
brew install lazygitLinux / Windows (WSL):
bash install_lazygit.shOr run manually (auto-detects latest version and architecture):
LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | grep -Po '"tag_name": *"v\K[^"]*')
LAZYGIT_ARCH=$(uname -m | sed -e 's/aarch64/arm64/')
curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/download/v${LAZYGIT_VERSION}/lazygit_${LAZYGIT_VERSION}_Linux_${LAZYGIT_ARCH}.tar.gz"
tar xf lazygit.tar.gz lazygit
sudo install lazygit -D -t /usr/local/bin/
rm -f lazygit lazygit.tar.gzVerify:
lazygit --version