# Essentials

**MacOS** comes with `python3`, `ruby`, `git` *preinstalled*.\
We will install other missing essential tools used frequently by *Developers*.

## Tools

### Command-line tools

Install [essential](https://www.youtube.com/watch?v=rWMQ-g2QDsI) *command-line tools*

* [watch](https://cli.github.com/) — `watch` will run a command repeatedly and then display the output in an `ncurses` friendly manner.
* [jq](https://stedolan.github.io/jq/) — `jq` is like `sed` for JSON data
* [git](https://git-scm.com/) — `git` is a version control system CLI
* [cocogitto](https://github.com/cocogitto/cocogitto)

#### Better CLI Alternative Tools

* [gh](https://cli.github.com/) — `GitHub CLI` brings GitHub to your terminal.
* [bat](https://github.com/sharkdp/bat) — A syntax highlighting clone of `cat` and can stand in for `less`
* [delta](https://github.com/dandavison/delta) — A syntax highlighting pager for `diff`-ing
* [fd](https://github.com/sharkdp/fd) — A user-friendly version of `find`
* [htop](https://htop.dev/) — An interactive replacement for `top`
* [procs](https://github.com/dalance/procs) — A modern replacement for `ps`
* [eza](https://eza.rocks/) — A modern replacement for `ls`
* [ripgrep](https://github.com/BurntSushi/ripgrep) — An improved `grep`
* [dust](https://github.com/bootandy/dust) — A more intuitive version of `du`
* [duf](https://github.com/muesli/duf) — A better `df` alternative
* [prettyping](https://github.com/denilsonsa/prettyping) —A pretty wrapper around `ping`

```shell
brew install watch
brew install jq

brew install git
brew install gh # GitHub official command line tool.
# for first time use, run `gh auth login`

# Better CLI alternative Tools
brew install ack
brew install tree
brew install eza # replacement for LS. https://eza.rocks/
brew install bat # a better `cat`
brew install git-delta  # a better git `diff`
brew install fd # user-friendly alternative to `find`
brew install procs # a modern replacement for `ps`
brew install dust # a better `du`
brew install ripgrep # a better `grep` use: rg
brew install htop # a better `top`
brew install httpie # a better `curl`
brew install cocogitto # monorepo version/release management
brew install minio/stable/mc # minio CLI
```

### Fonts

We need developer friendly fonts for **Terminals** (*ghostty, macOS Terminal app*) and **Editors** (*IntelliJ, VSCode, sublime-text*) to enhance visual experience. You can explore various fonts for IDEs at [Programming Fonts](https://www.programmingfonts.org) website.

We recommend:

* **Editor Font:** *Source Code Pro, Fira Code or* [*Jetbrains Mono*](https://www.jetbrains.com/lp/mono/)
* **Terminal Font:** *Meslo LG, FiraCode Nerd Font or Hack Nerd Font* from [nerd-fonts](https://www.nerdfonts.com/font-downloads)

```shell
# Terminal Fonts
# brew install --cask font-<FONT NAME>-nerd-font
brew install --cask font-meslo-lg-nerd-font
#brew install --cask font-fira-code-nerd-font
#brew install --cask font-hack-nerd-font

# Editor Fonts
brew install --cask font-source-code-pro
#brew install --cask font-fira-code
#brew install --cask font-jetbrains-mono
```

![](https://345815687-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9XSdc4ZLxsryuoSbTpFL%2Fuploads%2Fgit-blob-8575a7259f8a9b448a92db5db95270613d8f379c%2Ffont-book.png?alt=media\&token=ec5c913d-b345-475f-a408-6692602cc98c)

After installing your choice of font, you have to configure each *Editor* and *Terminal* to use this font, which is covered in [Apps](https://github.com/xmlking/macbooksetup/blob/main/docs/apps/README.md) section.

### Apps

Install essential *Apps* via brew cask

Since many of us won't have *admin* rights on **Company** issued MacBooks, we will be installing software into **User's** Applications (i.e., `~/Applications`) directory:<br>

> If you have admin privilege, you can skip `--appdir=~/Applications` flag

#### Development Tools

* [ghostty](https://ghostty.org): macOS Terminal Replacement
* [Sublimetext](https://www.sublimetext.com): lightweight text/markdown editor
* [VSCode](https://code.visualstudio.com): lightweight code editor
* [Jetbrains](https://www.jetbrains.com/toolbox-app/): toolbox to install jetbrains IDEs

```shell
brew install --cask --appdir=~/Applications ghostty
brew install --cask --appdir=~/Applications sublime-text
brew install --cask --appdir=~/Applications visual-studio-code
# optional
# orbstack/container need to be in system apps
brew install --cask container # Apple’s Native Alternative to Docker: MacOS 26 needed
# brew install --cask orbstack  # alternative to apple native container
brew install --cask --appdir=~/Applications webstorm
brew install --cask --appdir=~/Applications pycharm
brew install --cask --appdir=~/Applications windsurf # VSCode alternative
brew install --cask --appdir=~/Applications marta
```

Apple’s container [Docs](https://swapnasagarpradhan.medium.com/getting-started-with-apples-container-cli-on-macos-a-native-alternative-to-docker-fc303e08f5cd)

Other benefit of installing `Apps` via `Brew` is, it links binaries to `/opt/homebrew/bin` which is added to `$PATH`.

```
'subl' to '/opt/homebrew/bin/subl'
'code' to '/opt/homebrew/bin/code'
```

So, you can open *projects/directors* from command-line in *VSCode* or *Sublime-text* with:

```shell
code ~/Developer/Work/tools/macbooksetup
subl ~/Developer/Work/tools/macbooksetup
```

#### Productivity

* [Alfred](https://www.alfredapp.com): Spotlight on steroids.

```shell
brew install --cask --appdir=~/Applications alfred
```

#### Other

* Google Chrome
* Microsoft Remote Desktop: rdp (optional)
* [OBS](https://obsproject.com): Record your screen with audio, mouse highlight and other features. (optional)
* [logitech-options](https://www.logitech.com/en-us/software/options.html): logitech driver, install only if you have *MX mouse* (optional)
* [slack](https://slack.com/): app for communication (optional)

```shell
brew install --cask --appdir=~/Applications google-chrome
# Logitech Options software - will prompt for password.
brew tap "homebrew/cask-drivers"
brew install --cask --appdir=~/Applications logitech-options
# Remote communication (optional)
brew install --cask --appdir=~/Applications zoom
brew install --cask --appdir=~/Applications slack
brew install --cask --appdir=~/Applications discord
brew install --cask --appdir=~/Applications obs
```

Customize above applications further from: [Apps](https://github.com/xmlking/macbooksetup/blob/main/docs/apps/README.md) docs
