CLI tool collection 🧰 and a step‑by‑step setup guide for your new shell environment.
This repository is a collection of CLI tool programs and a step‑by‑step guide for bootstrapping a brand‑new macOS environment. It installs and configures:
- Homebrew and a custom Brewfile (CLI tools & casks)
- ASDF version manager with plugins for Node.js, Yarn, Bun, Python, Ruby, Erlang, Elixir, and Go
- Zsh configured with the lightweight Antidote plugin manager
- A curated desktop stack with Ghostty, Yaak, Cursor, Visual Studio Code, Zed, Figma, Brave, TablePlus, Linear, ClickUp, Notion, Slack, Bear, AirServer, MonitorControl, Vanilla, CleanMyMac, Macs Fan Control, Cloudflare Warp, the official Ookla Speedtest CLI, and more
- Git global configuration and aliases
- A Dracula-themed Starship prompt configuration
- A workspace directory at
~/gitfor all your projects
Each step is automated via a single setup.sh script, backed by modular config files.
- Update macOS & install Command Line Tools – Run
softwareupdate --install --all, then executexcode-select --installso Homebrew can build anything it needs. - Sign into Apple ID & App Store –
masinstalls require you to be logged in; open the App Store once and sign in before running the bootstrap script. - Generate/import SSH keys – Copy your existing
~/.sshcontents or create a new key withssh-keygen -t ed25519 -C "you@example.com"and add it to GitHub/GitLab. - Clone this repo –
git clone https://github.com/boomNDS/B-Vault ~/.dotfiles(overrideDOTFILESif you prefer another location). - Review configs – Skim
brew/Brewfile,asdf/tool-versions, andzsh/zshrcto add/remove anything specific to you before kicking off the install. - Run the installer –
cd ~/.dotfiles && bash setup.sh; keep the terminal open so you can approve any manual prompts (e.g., App Store downloads). - Verify and sync data – After the script finishes, sign back into services (Slack, Discord, etc.), restore app settings, and rerun
brew bundle/asdf installif you tweak configs.
-
Clone this repo (override the target directory by exporting
DOTFILES=/path/to/dirbefore running the script):git clone https://github.com/boomNDS/B-Vault ~/.dotfiles -
Change into the directory and run the installer:
cd ~/.dotfiles bash setup.sh
-
Restart your terminal or run source ~/.zshrc to apply changes.
.
├── .gitignore
├── setup.sh # One‑shot bootstrap script
├── cursor/
│ └── extensions.json # Snapshot of installed Cursor extensions
├── asdf/
│ └── tool-versions # ASDF global versions file
├── brew/
│ └── Brewfile # Homebrew formulae, casks, mas apps
├── git/
│ └── gitconfig # Global Git settings & aliases
├── starship.toml # Dracula-themed prompt configuration
└── zsh/
└── zshrc # Zsh configuration + Antidote plugin list- To update CLI tools & apps:
brew update && brew bundle --file=brew/Brewfile
asdf update # update ASDF itself
asdf plugin-update --all # update all ASDF plugins
asdf install- To add a new Homebrew formula or cask: edit brew/Brewfile and rerun brew bundle.
- To add a new ASDF tool: run asdf plugin-add and update asdf/tool-versions.
- Re-run
brew bundle --file=brew/Brewfileto confirm the failure. - Open
brew/Brewfileand copy the URL comment next to the failing entry. Each cask/MAS listing now links to its official download page (e.g., Ghostty → https://ghostty.org/docs, Orbstack → https://orbstack.dev/, Yaak → https://yaak.app/). - Download and install the app manually from that URL.
- For MAS apps, open the App Store with the linked URL, sign in, and install from there;
mas install <id>will register it afterward. - After manual installation, rerun
brew bundle --file=brew/Brewfileso Homebrew marks the dependency as satisfied.
- The current Cursor extension set is tracked in
cursor/extensions.json(exported directly from~/.cursor/extensions/extensions.json). - To install everything on a new machine, run:
(replace
jq -r '.[].identifier.id' cursor/extensions.json | xargs -L1 cursor --install-extension
cursorwithcodeif you prefer using VS Code’s CLI shim). - After adding or removing extensions inside Cursor, regenerate the manifest with
cp ~/.cursor/extensions/extensions.json cursor/extensions.json && jq -r '.' cursor/extensions.json > cursor/extensions.json.
- Zsh & plugins: edit
zsh/zshrc(Antidote loads whatever plugin bundle you define there) and rerunsource ~/.zshrc - Git defaults & aliases: tweak
git/gitconfig - Prompt: modify
starship.toml, then restart your shell - Homebrew formulas/casks/mas apps: adjust
brew/Brewfileand rerunbrew bundle --file=brew/Brewfile
- Default history recall uses
fzfonCtrl+R(see theFZF_DEFAULT_OPTSblock inzsh/zshrc). - For aggressive de-duplication, timestamps, and a deeper tour of Zsh’s history knobs, follow Supercharged Zsh Command History.
- Prefer a synced, structured backend? Add Atuin to
brew/Brewfile, install it, runatuin import autoto bring in~/.zsh_history, and enable it witheval "$(atuin init zsh)"inzsh/zshrc. - Use the Atuin CLI workflow from their docs (
atuin register/login, thenatuin syncandatuin search) to keep history encrypted and available across machines.
- Install:
brew bundle --file=brew/Brewfile(installsatuinwith the rest of your CLI stack). - Create or log into your Atuin account:
atuin register(first machine) oratuin login(subsequent machines). - Import your existing Zsh history:
atuin import auto. - Add Atuin to your shell without stealing your fzf
Ctrl+Rbinding. Append tozsh/zshrc:
# Atuin: encrypted, syncable history (keeps fzf Ctrl+R)
export ATUIN_NOBIND=1
eval "$(atuin init zsh)"Remove ATUIN_NOBIND=1 if you want Atuin to take over Ctrl+R.
5) Sync between machines: atuin sync. Search history anywhere: atuin search <term>.
6) Optional quality-of-life: atuin stats for activity insights; set ATUIN_DEFAULT_BIND=ctrl-r if you prefer Atuin’s search UI on Ctrl+R.
- valentinocossar/vscode – An Oh My Zsh plugin to open files and directories in Visual Studio Code via the
vs/vsacommands. - zsh-users/zsh-autosuggestions – Fish‑like fast, unobtrusive autosuggestions as you type, based on your history and completions.
- zsh-users/zsh-syntax-highlighting – Fish‑style real‑time syntax highlighting for the Zsh command line, helping catch typos before you hit Enter.
- zsh-users/zsh-completions – Hundreds of additional completion definitions (AWS‑CLI, Docker, Terraform, etc.) to layer on top of Zsh’s built‑in completions.
- ajeetdsouza/zoxide – A smarter
cdreplacement (inspired byzandautojump) that tracks “frecency” and offers fuzzy jumping to your most‑used directories. - decayofmind/zsh-fast-alias-tips – Reminds you of shell aliases you’ve defined whenever you run the equivalent full command. A Go‑accelerated, 10×‑faster fork of
alias-tips.