# Concept for install Use homebrew, uv, and gh cli to install everything. Try to avoid downloading directly. At the end of each install, add the items suggested for going into the `.zshrc`. # Install homebrew ``` /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ``` # Install uv Might need to also add miniconda, let's first see how it works with pytorch and cuda ``` curl -LsSf https://astral.sh/uv/install.sh | sh ``` Then install some pythons ``` uv python install 3.10 3.11 3.12 ``` Setup and activate a python environment ``` uv venv --python 3.10.0 source .venv/bin/activate ``` # Setup gh cli Going to try to use gh cli (Github CLI) for everything ``` brew install gh gh auth login ``` You may need to add ssh keys, instructions [here](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent) # Clone all the repos ``` gh repo clone ORG_NAME/REPO_NAME ``` An example might be: ``` gh repo clone pydanny/daniel-blog-fasthtml ``` # Install utilities ``` brew install --cask visual-studio-code brew install bat # Really nice cat replacement brew install tokei # counts lines of code brew install tmux # many panes for your shell brew install starship # General shell improvements ``` # nbdev enhancement Add to `.zshrc` ``` alias prep='nbdev_export && nbdev_clean && nbdev_trust' ``` # More `.zshrc` tricks function to remove deleted merged branches ``` function git-delete-merged-branches(){ git branch --merged | egrep -v "(^\*|master|main|dev)" | xargs git branch -d } ``` Python directory cleanup. Not as necessary as it used to be, but needed about once every few months ``` function rmpyc () { find . -type f -name '*.py[co]' -delete -o -type d -name __pycache__ -delete } ``` Force pip to only work in a virtualenv ``` export PIP_REQUIRE_VIRTUALENV=tru ``` # Starship config First, make sure you have a [Nerd font](https://www.nerdfonts.com/) installed and enabled in the terminal. Add to end of `.zshrc` ``` eval "$(starship init zsh)" ``` Add a starship config file: ``` mkdir -p ~/.config && touch ~/.config/starship.toml ``` Then use the nerd-font-symbols preset to make the shell explode in usefulness ``` starship preset nerd-font-symbols -o ~/.config/starship.toml ```