What This Script Does

The quick-setup.sh script is designed for developers who want to get a fresh Mac into a productive state quickly. Unlike the full interactive setup, it shows no menus: it runs eight fixed steps and only stops to ask for your Git details and to sign in to GitHub.

1. Xcode Command Line Tools. If they are missing, the script starts Apple's installer and waits for you to press a key when it finishes.

2. Homebrew. If Homebrew is missing, the script downloads the official installer to a temporary file, checks that it looks like a bash script, and runs it. An existing Homebrew is left as it is. The brew environment is loaded for the current session only; this script does not edit your shell profile (brew-setup.sh does).

3. Brewfile packages. It runs brew bundle with the project's Brewfile. Out of the box that installs three CLI tools: gh (GitHub CLI), jq and tree. More tools and all GUI apps are listed as commented-out examples in the Brewfile's EDIT HERE block; nothing else installs unless you uncomment it.

4. VS Code code command. If code is not already on your PATH but Visual Studio Code is in /Applications, the script runs sudo mkdir -p /usr/local/bin and sudo ln -sf to link it there, so you will be asked for your password. If VS Code is not installed, the step is skipped; the script does not install VS Code.

5. VS Code extensions. If code is available, it installs the extensions listed in dotfiles/vscode/extensions.txt: by default GitLens (eamodio.gitlens) and Code Spell Checker (streetsidesoftware.code-spell-checker).

6. Git configuration. It asks whether to configure Git. If you say yes, it prompts for your name and email and writes them, plus the Git LFS filter settings, to your global ~/.gitconfig. It does not install git-lfs itself; add brew "git-lfs" to the Brewfile if you need it. It asks every run, even if a name and email are already set.

7. GitHub CLI. If gh is installed and not yet signed in, it runs gh auth login, which walks you through signing in to GitHub.

8. Summary. It lists what was installed or configured and what was already present.

Use --dry-run to preview every step without changing anything. Real runs are logged to ~/Library/Logs/QuickSetup.log.

Usage

Run the script from the root of the Brew Scripts project directory. It does not use the config/homebrew-scripts.conf file; what it installs comes from Brewfile and dotfiles/vscode/extensions.txt.

# Preview what would be installed (no changes made)
./quick-setup.sh --dry-run

# Run the quick bootstrap
./quick-setup.sh

Expect these prompts: a key press after the Command Line Tools installer (if needed), the Homebrew installer's own prompts (if needed), your password for the sudo link of the code command (if needed), the Git configuration questions, and gh auth login (if you are not signed in).

Options and Flags

Flag Description
--dry-run Preview all actions without making any changes. Lists the Brewfile entries and extensions that would be installed and the configuration steps that would run. -d and --check are aliases.
--version, -V Print the script version and exit.
--help, -h Show usage and exit.

What Gets Changed

Here is a complete list of what the quick setup script modifies on your system:

  • Xcode Command Line Tools — Installed through Apple's installer if not already present.
  • Homebrew — Installed if not already present. An existing installation is not updated by this script.
  • Brewfile packages — gh, jq and tree by default, plus anything you uncomment in the Brewfile.
  • /usr/local/bin/code — A symlink to VS Code's command-line tool, created with sudo if VS Code is installed and code is not already on your PATH.
  • VS Code extensions — GitLens and Code Spell Checker by default, installed with code --install-extension.
  • Git global config — If you agree, ~/.gitconfig gets your name, email and the Git LFS filter settings.
  • GitHub CLI sign-in — gh auth login stores a GitHub credential if you complete it.
  • Log file — ~/Library/Logs/QuickSetup.log.

The script does not modify system preferences or install kernel extensions. Apart from the Command Line Tools, Homebrew's own directories and the /usr/local/bin/code link (which needs sudo), its changes stay inside your home directory.

Related Scripts

  • Full Interactive Homebrew Setup — The comprehensive, config-driven setup script with interactive prompts and full customization. Choose this if you want granular control over every aspect of the installation.
  • Essential Apps Installer — Batch-install additional applications by listing them in that script's own EDIT HERE block, after the initial setup is complete.