<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>MAC | Jose Ricardo Zapata</title><link>https://joserzapata.github.io/en/tag/mac/</link><atom:link href="https://joserzapata.github.io/en/tag/mac/index.xml" rel="self" type="application/rss+xml"/><description>MAC</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Thu, 16 Apr 2026 00:00:00 +0000</lastBuildDate><image><url>https://joserzapata.github.io/media/icon_hu_3ff8d2f8457122ba.png</url><title>MAC</title><link>https://joserzapata.github.io/en/tag/mac/</link></image><item><title>My Terminal Setup (MAC &amp; Linux)</title><link>https://joserzapata.github.io/en/post/terminal-setup/</link><pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate><guid>https://joserzapata.github.io/en/post/terminal-setup/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Last updated 16 / Apr / 2026&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="alert alert-note"&gt;
&lt;div&gt;
This post is a &lt;strong&gt;living document&lt;/strong&gt;: it reflects my current terminal setup on MAC and Linux, and gets updated over time as I change tools or workflows.
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;A well-configured terminal is one of the most worthwhile investments you can make as a developer. This is the setup I use for my work in programming, data science, machine learning, and artificial intelligence, on both macOS and Ubuntu/Linux.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="1-terminal-ghostty"&gt;1. Terminal: Ghostty&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://ghostty.org/docs" target="_blank" rel="noopener"&gt;Ghostty&lt;/a&gt; is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration. It was created by &lt;a href="https://mitchellh.com/" target="_blank" rel="noopener"&gt;Mitchell Hashimoto&lt;/a&gt;, co-founder of HashiCorp.&lt;/p&gt;
&lt;p&gt;What I love most about Ghostty is that it combines native performance with a modern experience: instant startup, crisp text rendering, and native support on both macOS and Linux without sacrificing any functionality.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Installation on MAC:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew install --cask ghostty
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Installation on Linux (Ubuntu):&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt install ghostty
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;If it&amp;rsquo;s not available in your distribution&amp;rsquo;s repositories, check the &lt;a href="https://ghostty.org/docs/install" target="_blank" rel="noopener"&gt;official installation guide&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="2-shell-zsh--oh-my-zsh"&gt;2. Shell: Zsh + Oh My Zsh&lt;/h2&gt;
&lt;h3 id="install-zsh"&gt;Install Zsh&lt;/h3&gt;
&lt;p&gt;On macOS, Zsh comes installed by default. On Ubuntu:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo apt install zsh -y
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;chsh -s &lt;span class="k"&gt;$(&lt;/span&gt;which zsh&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Log out and back in for the shell change to take effect.&lt;/p&gt;
&lt;h3 id="install-oh-my-zsh"&gt;Install Oh My Zsh&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://ohmyz.sh/" target="_blank" rel="noopener"&gt;Oh My Zsh&lt;/a&gt; is a framework for managing your Zsh configuration that adds themes, plugins, and advanced autocompletion.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sh -c &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="plugins"&gt;Plugins&lt;/h3&gt;
&lt;p&gt;Plugins are activated by adding them to the &lt;code&gt;plugins=(...)&lt;/code&gt; line in &lt;code&gt;~/.zshrc&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id="git"&gt;git&lt;/h4&gt;
&lt;p&gt;The &lt;a href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/git" target="_blank" rel="noopener"&gt;git plugin&lt;/a&gt; comes bundled with Oh My Zsh and adds dozens of useful Git aliases (e.g., &lt;code&gt;gst&lt;/code&gt; → &lt;code&gt;git status&lt;/code&gt;, &lt;code&gt;gco&lt;/code&gt; → &lt;code&gt;git checkout&lt;/code&gt;, &lt;code&gt;glog&lt;/code&gt; → &lt;code&gt;git log --oneline --graph&lt;/code&gt;). A must-have for working with Git from the terminal.&lt;/p&gt;
&lt;h4 id="zsh-autosuggestions"&gt;zsh-autosuggestions&lt;/h4&gt;
&lt;p&gt;Suggests commands as you type, based on your history. When the grey suggestion appears, press &lt;code&gt;→&lt;/code&gt; to accept it.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/zsh-users/zsh-autosuggestions &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ZSH_CUSTOM&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="p"&gt;~/.oh-my-zsh/custom&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/plugins/zsh-autosuggestions
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="zsh-syntax-highlighting"&gt;zsh-syntax-highlighting&lt;/h4&gt;
&lt;p&gt;Highlights commands in real time: green if the command exists, red if it doesn&amp;rsquo;t. Catches typos before you execute.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/zsh-users/zsh-syntax-highlighting &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ZSH_CUSTOM&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="p"&gt;~/.oh-my-zsh/custom&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/plugins/zsh-syntax-highlighting
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="zsh-history-substring-search"&gt;zsh-history-substring-search&lt;/h4&gt;
&lt;p&gt;Lets you search your history by typing part of a command and using &lt;code&gt;↑&lt;/code&gt; / &lt;code&gt;↓&lt;/code&gt; to navigate through matching results.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/zsh-users/zsh-history-substring-search &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ZSH_CUSTOM&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="p"&gt;~/.oh-my-zsh/custom&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/plugins/zsh-history-substring-search
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Enable all plugins in &lt;code&gt;~/.zshrc&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;plugins&lt;/span&gt;&lt;span class="o"&gt;=(&lt;/span&gt;git zsh-autosuggestions zsh-syntax-highlighting zsh-history-substring-search&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="theme-powerlevel10k"&gt;Theme: Powerlevel10k&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/romkatv/powerlevel10k" target="_blank" rel="noopener"&gt;Powerlevel10k&lt;/a&gt; is the most complete and fastest theme for Zsh. It shows contextual information in the prompt: Git branch, repo status, Python version, last command execution time, battery level, and much more — all fully customizable.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Installation:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone --depth&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt; https://github.com/romkatv/powerlevel10k.git &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ZSH_CUSTOM&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="p"&gt;/.oh-my-zsh/custom&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/themes/powerlevel10k
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Enable in &lt;code&gt;~/.zshrc&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;ZSH_THEME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;powerlevel10k/powerlevel10k&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;When you open a new terminal, the interactive configuration wizard runs automatically. To run it again at any time:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;p10k configure
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="3-terminal-tools"&gt;3. Terminal Tools&lt;/h2&gt;
&lt;h3 id="gh--github-cli"&gt;gh — GitHub CLI&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://cli.github.com/" target="_blank" rel="noopener"&gt;gh&lt;/a&gt; brings GitHub to the command line. Create and review pull requests, manage issues, clone repositories, and run GitHub Actions workflows — all without leaving the terminal.&lt;/p&gt;
&lt;h4 id="installation-on-mac"&gt;Installation on MAC&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew install gh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="installation-on-linux-ubuntu"&gt;Installation on Linux (Ubuntu)&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt install gh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Authenticate with GitHub:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;gh auth login
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h3 id="lazygit--git-tui"&gt;lazygit — Git TUI&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/jesseduffield/lazygit" target="_blank" rel="noopener"&gt;lazygit&lt;/a&gt; is a terminal UI for Git. It lets you view repo status, make commits, manage branches, resolve conflicts, and explore history visually and intuitively — no need to memorize every Git command.&lt;/p&gt;
&lt;h4 id="installation-on-mac-1"&gt;Installation on MAC&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew install lazygit
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="installation-on-linux-ubuntu-1"&gt;Installation on Linux (Ubuntu)&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;LAZYGIT_VERSION&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;curl -s &lt;span class="s2"&gt;&amp;#34;https://api.github.com/repos/jesseduffield/lazygit/releases/latest&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; grep &lt;span class="s1"&gt;&amp;#39;&amp;#34;tag_name&amp;#34;:&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; sed -E &lt;span class="s1"&gt;&amp;#39;s/.*&amp;#34;v*([^&amp;#34;]+)&amp;#34;.*/\1/&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -Lo lazygit.tar.gz &lt;span class="s2"&gt;&amp;#34;https://github.com/jesseduffield/lazygit/releases/download/v&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;LAZYGIT_VERSION&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/lazygit_&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;LAZYGIT_VERSION&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;_Linux_x86_64.tar.gz&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tar xf lazygit.tar.gz lazygit
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo install lazygit -D -t /usr/local/bin/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h3 id="yazi--file-manager-tui"&gt;yazi — File Manager TUI&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://yazi-rs.github.io/" target="_blank" rel="noopener"&gt;yazi&lt;/a&gt; is a modern terminal file manager written in Rust. It lets you navigate the filesystem with instant previews of images, text, PDFs, and more, using intuitive Vim-style keybindings.&lt;/p&gt;
&lt;h4 id="installation-on-mac-2"&gt;Installation on MAC&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew install yazi
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="installation-on-linux-ubuntu-2"&gt;Installation on Linux (Ubuntu)&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt install yazi
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h3 id="eza--ls-list-files-and-directories"&gt;eza — ls (List files and directories)&lt;/h3&gt;
&lt;p&gt;The default &lt;code&gt;ls&lt;/code&gt; command is fine, but &lt;a href="https://github.com/eza-community/eza" target="_blank" rel="noopener"&gt;eza&lt;/a&gt; is better in every way. It&amp;rsquo;s a modern replacement with colors, icons, and Git status integration.&lt;/p&gt;
&lt;h4 id="installation-on-mac-3"&gt;Installation on MAC&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew install eza
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Add to the end of &lt;code&gt;~/.zshrc&lt;/code&gt; to replace &lt;code&gt;ls&lt;/code&gt; with &lt;code&gt;eza&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;command&lt;/span&gt; -v eza &lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&amp;gt; /dev/null&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;ls&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;eza -lh --group-directories-first --icons=auto&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;lsa&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;ls -a&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;lt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;eza --tree --level=2 --long --icons --git&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;lta&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;lt -a&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="installation-on-linux-ubuntu-3"&gt;Installation on Linux (Ubuntu)&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt install eza
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h3 id="fzf--fuzzy-find-everything"&gt;fzf — Fuzzy find everything&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/junegunn/fzf" target="_blank" rel="noopener"&gt;fzf&lt;/a&gt; is a general-purpose fuzzy finder. Once you start using it, you&amp;rsquo;ll wonder how you ever lived without it. It lets you interactively filter any list: files, command history, processes, Git branches — you name it.&lt;/p&gt;
&lt;h4 id="installation-on-mac-4"&gt;Installation on MAC&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew install fzf
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Install shell integrations (history, ctrl+r, etc.)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;$(&lt;/span&gt;brew --prefix&lt;span class="k"&gt;)&lt;/span&gt;/opt/fzf/install
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="installation-on-linux-ubuntu-4"&gt;Installation on Linux (Ubuntu)&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt install fzf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;After installing, &lt;code&gt;Ctrl+R&lt;/code&gt; in the terminal activates fuzzy search through your command history.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="ncdu--disk-usage-visualizer"&gt;ncdu — Disk usage visualizer&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://dev.yorhel.nl/ncdu" target="_blank" rel="noopener"&gt;ncdu&lt;/a&gt; (NCurses Disk Usage) provides a visual representation of disk usage and lets you navigate directories to identify what&amp;rsquo;s taking up the most space, quickly and interactively from the terminal.&lt;/p&gt;
&lt;h4 id="installation-on-mac-5"&gt;Installation on MAC&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew install ncdu
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="installation-on-linux-ubuntu-5"&gt;Installation on Linux (Ubuntu)&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt install ncdu
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Run it in any directory you want to analyze:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ncdu
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="4-aliases"&gt;4. Aliases&lt;/h2&gt;
&lt;p&gt;Aliases go at the end of &lt;code&gt;~/.zshrc&lt;/code&gt;. After editing the file, run &lt;code&gt;source ~/.zshrc&lt;/code&gt; to apply the changes.&lt;/p&gt;
&lt;h3 id="python-and-virtual-environments"&gt;Python and virtual environments&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;ps&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;poetry shell&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;deac&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;deactivate&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;ve&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;source .venv/bin/activate&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;wp&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;which python&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;pv&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;python -V&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="terminal-tools"&gt;Terminal tools&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;vs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;code .&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;lg&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;lazygit&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;cl&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;clear&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;ccc&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;claude --model opusplan&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;cop&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;claude --model opus&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="references"&gt;References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.upsun.com/posts/2025/my-terminal-setup-mac-linux" target="_blank" rel="noopener"&gt;https://developer.upsun.com/posts/2025/my-terminal-setup-mac-linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/@teeppiphat/how-to-check-all-folder-size-using-macos-terminal-a05c0789597c" target="_blank" rel="noopener"&gt;https://medium.com/@teeppiphat/how-to-check-all-folder-size-using-macos-terminal-a05c0789597c&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/gmoigneu/dotfiles" target="_blank" rel="noopener"&gt;https://github.com/gmoigneu/dotfiles&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>My MAC Setup</title><link>https://joserzapata.github.io/en/post/mac-setup/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><guid>https://joserzapata.github.io/en/post/mac-setup/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Last updated 15 / Apr / 2026&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="alert alert-note"&gt;
&lt;div&gt;
This post is a &lt;strong&gt;living document&lt;/strong&gt;: it reflects my current MAC setup, and is updated over time as I change tools or workflows.
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;This is the guide I use to set up a MAC from scratch for my work on programming, data science, machine learning, and artificial intelligence projects with Python. The process is divided into two main stages: first the base software development tools are installed, then the specific tools for Python development.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="1-install-brew"&gt;1. Install BREW&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://brew.sh/" target="_blank" rel="noopener"&gt;Homebrew&lt;/a&gt; is the package manager for macOS. It allows you to install, update, and uninstall software from the terminal easily.&lt;/p&gt;
&lt;p&gt;Open the &lt;strong&gt;Terminal&lt;/strong&gt; and run the following commands:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;xcode-select --install
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/bin/bash -c &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The terminal will ask for your MAC password to complete the installation.&lt;/p&gt;
&lt;p&gt;After the installation finishes, the installer displays a command that must be run to add &lt;code&gt;brew&lt;/code&gt; to the &lt;code&gt;PATH&lt;/code&gt; (so the terminal knows where the program is). &lt;strong&gt;This command is different on each MAC&lt;/strong&gt;, so copy exactly what appears in your terminal and paste it to execute it.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="2-install-iterm2-with-oh-my-zsh"&gt;2. Install iTerm2 with Oh My Zsh&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://iterm2.com/" target="_blank" rel="noopener"&gt;iTerm2&lt;/a&gt; is a terminal emulator for macOS with many improvements over the default Terminal. &lt;a href="https://ohmyz.sh/" target="_blank" rel="noopener"&gt;Oh My Zsh&lt;/a&gt; is a framework for managing Zsh configuration that adds themes, plugins, and autocompletion.&lt;/p&gt;
&lt;p&gt;I use &lt;a href="https://ghostty.org/" target="_blank" rel="noopener"&gt;Ghostty Terminal&lt;/a&gt;, which is a modern alternative to iTerm2, but I always configure iTerm2 first to have it as a base with Zsh.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew install --cask iterm2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Close the current terminal with &lt;code&gt;(⌘ + Q)&lt;/code&gt;, open &lt;strong&gt;iTerm2&lt;/strong&gt; and run:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;chsh -s /bin/zsh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;To make iTerm2 the default terminal, follow the instructions at:
&lt;a href="https://stackoverflow.com/questions/60210024/how-can-i-use-iterm-as-default-terminal-on-macos" target="_blank" rel="noopener"&gt;https://stackoverflow.com/questions/60210024/how-can-i-use-iterm-as-default-terminal-on-macos&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Install Oh My Zsh to enhance the terminal experience with themes, plugins, and autocompletion:&lt;/p&gt;
&lt;p&gt;Open a new terminal (iTerm2 should open) and install &lt;a href="https://ohmyz.sh/" target="_blank" rel="noopener"&gt;Oh My Zsh&lt;/a&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sh -c &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="3-install-python-development-tools"&gt;3. Install Python Development Tools&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://docs.astral.sh/uv/" target="_blank" rel="noopener"&gt;UV&lt;/a&gt; is a modern tool for managing Python versions, installing packages, and keeping them in isolated virtual environments per project.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew update
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew install uv readline xz
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Close the terminal with (&lt;code&gt;⌘ + Q&lt;/code&gt;) and reopen it.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="4-install-python-versions"&gt;4. Install Python Versions&lt;/h2&gt;
&lt;p&gt;Install the Python version (or versions) that will be used in your projects. With UV you can install multiple versions without conflicts:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;uv python install 3.12
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;uv python install 3.13
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Close the terminal with &lt;code&gt;⌘ + Q&lt;/code&gt;, reopen it, and set the global default Python version (for example, Python 3.12):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;uv python install --default 3.12
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;uv python update shell
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="5-configure-git"&gt;5. Configure Git&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://git-scm.com/" target="_blank" rel="noopener"&gt;Git&lt;/a&gt; is the standard version control system for software development.&lt;/p&gt;
&lt;p&gt;Close the terminal with &lt;code&gt;⌘ + Q&lt;/code&gt;, open &lt;strong&gt;iTerm2&lt;/strong&gt; and run:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew install git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Set the name and email that will appear in commits:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git config --global user.name &lt;span class="s2"&gt;&amp;#34;Your name&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git config --global user.email &lt;span class="s2"&gt;&amp;#34;myemail@emailhost.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git config --global color.ui auto
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Run this command to avoid issues when installing pre-commit hooks in virtual environments:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git config --global --unset-all core.hooksPath
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="base-applications"&gt;Base Applications&lt;/h2&gt;
&lt;p&gt;Base applications I use:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ghostty Terminal&lt;/strong&gt; (modern terminal alternative):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew install --cask ghostty
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://code.visualstudio.com/" target="_blank" rel="noopener"&gt;Visual Studio Code&lt;/a&gt;&lt;/strong&gt; — code editor and Jupyter notebooks:
Follow the instructions at &lt;a href="https://code.visualstudio.com/docs/setup/mac" target="_blank" rel="noopener"&gt;https://code.visualstudio.com/docs/setup/mac&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://rectangleapp.com/" target="_blank" rel="noopener"&gt;Rectangle&lt;/a&gt;&lt;/strong&gt; — to organize windows on the screen:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew install --cask rectangle
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="free-up-disk-space"&gt;Free Up Disk Space&lt;/h2&gt;
&lt;p&gt;After several months of use, it is recommended to clean up disk space by running from the terminal:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Homebrew&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew autoremove &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; brew cleanup --prune&lt;span class="o"&gt;=&lt;/span&gt;all
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;UV&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;uv cache clean
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Pre-commit&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pre-commit clean
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Docker&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker system prune -a
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you use Hugging Face to download machine learning models:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Hugging Face&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hf cache clear
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you use &lt;code&gt;poetry&lt;/code&gt; to manage Python projects, it is recommended to migrate to &lt;strong&gt;UV&lt;/strong&gt;. If you still use it, you can clean its cache with:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;poetry cache clear --all &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item></channel></rss>