A comprehensive and automated setup script for macOS, designed to install essential CLI tools, GUI applications, AI coding assistants, and customize the development environment (Zsh, oh-my-zsh, iTerm2 themes).
This script automates the tedious process of setting up a new Mac. It uses Homebrew to manage installations and includes custom helper functions to ensure a smooth, idempotent installation process (skipping already installed tools).
- Zsh: The default shell for macOS.
- Node.js: JavaScript runtime.
- Python 3.14: General-purpose programming language.
- uv: An extremely fast Python package manager.
- coreutils, jq, gh (GitHub CLI), htop, telnet
- golang-migrate: Database migrations.
- grpcurl, protobuf: gRPC tooling.
- redis, postgresql@18, zookeeper: local databases/coordination for dev.
- sbt, maven: Scala/Java build tools.
- golangci-lint: Go linter.
- k9s: Kubernetes terminal UI.
- kaf, kcat: Kafka CLI producers/consumers.
- telepresence-oss (tap
telepresenceio/telepresence): local-to-cluster dev tunneling. - Google Cloud SDK (
gcloud-clicask). - ctprompt (tap
carousell/ct-homebrew, optional/internal): Chotot-internal tool, requires Carousell org GitHub access — the script skips it gracefully if unavailable.
- Claude Code (
claude-codecask) — Anthropic's terminal coding agent. - Codex CLI (
codexcask) — OpenAI's terminal coding agent. - OpenCode CLI (
anomalyco/tap/opencodeformula) + OpenCode Desktop (opencode-desktopcask). - Gemini CLI (
gemini-cliformula —⚠️ deprecated upstream, scheduled for removal ~2026-12-18; replacement is theantigravity-clicask, also installed). - Conductor (
conductorcask) — Claude Code session/worktree parallelization UI. - Antigravity (
antigravitycask) + Antigravity IDE.
The script also bootstraps each tool's config where possible:
- Claude Code: adds the marketplaces
anthropics/claude-plugins-official,carousell/ct-claude-plugins,carousell/ct-builder-os, then installs/enables the pluginssuperpowers@claude-plugins-official,data-analytic@ct-claude-plugins, andbuilder-os-platform@carousell-ct-builder-os. Additional per-project marketplaces/plugins (e.g.data-agent-kit-starter-pack) can be added the same way as needed. - OpenCode: copies
configs/opencode.global.json(checked into this repo, no secrets) to~/.config/opencode/opencode.json. It configures the default model, theopencode-claude-authandopencode-goal-pluginplugins, and theplan/build/general/exploreagent presets. - Codex CLI: ships with a built-in curated plugin marketplace (
openai-curated-remote, includingsuperpowers,notion, etc.) — no extra setup needed out of the box. Project trust levels (~/.codex/config.toml) are machine/local-path specific and intentionally not scripted.
Secrets, tokens, and MCP server credentials are never committed to this repo. If a tool needs them (e.g. an internal MCP server), configure them locally after running the script.
- OrbStack: Fast, light, and simple Docker & Linux environment.
- Slack: Team communication.
- Google Chrome: Web browser.
- Cloudflare WARP: Safer and faster internet.
- iTerm2: Terminal emulator.
- Visual Studio Code: Code editor.
- IntelliJ IDEA, GoLand, DataGrip: JetBrains IDEs (Java/Scala, Go, databases).
- Notion: Note-taking and organization.
- Obsidian: Local-first note-taking.
- Lens / Freelens: Kubernetes IDEs.
- Dia: Diagramming tool.
- draw.io: Diagramming tool.
- GoTiengViet: Vietnamese input method.
- Docker Desktop
- Postman
- DBeaver Community
- Another Redis Desktop Manager
- Stats: Menu bar system monitor.
- Logi Options+: Logitech mouse/keyboard configuration.
- TeamViewer: Remote access.
- Zalo: Messaging app.
- Amphetamine (Mac App Store only, not scripted — install manually): keep-awake utility.
- oh-my-zsh: Framework for managing Zsh configuration.
- robbyrussell Theme: The oh-my-zsh default theme (currently in use).
- Fira Code + Fira Code Nerd Font: Monospaced fonts with programming ligatures / icon glyphs.
- Dracula for iTerm2: Essential color scheme for the terminal (downloaded, manual import required).
fancy_echo: Beautiful command-line output with icons (Info, Success, Skip, Error).brew_install&brew_cask_install: Intelligent wrappers that check if a package is already installed (including checking/Applications) before fetching it.brew_install_optional: Likebrew_install, but doesn't fail the whole script if unavailable (used for internal/private-tap tools).brew_tap: Adds a Homebrew tap if not already added.append_to_zshrc: Safely appends configuration to~/.zshrcwithout duplicates.
git clone https://github.com/flynn3103/mac-setup.git
cd mac-setupchmod +x setup.sh./setup.shAfter the script completes, there are a few manual steps required to finalize the setup:
-
iTerm2 Dracula Theme:
- Open iTerm2.
- Go to
Preferences > Profiles > Colors. - Select
Color Presets... > Import. - Choose
~/dracula-iterm/Dracula.itermcolors. - Select
Draculafrom the preset list.
-
Fira Code Font:
- In iTerm2, go to
Preferences > Profiles > Text. - Click
Change Fontand select Fira Code (or FiraCode Nerd Font for icon glyphs).
- In iTerm2, go to
-
AI CLI logins:
- Run
claude,opencode, andcodexonce each and complete their interactive login flow. - Run
gcloud auth loginfor Google Cloud SDK.
- Run
-
Restart Terminal:
- Close and reopen your terminal to apply the Zsh theme and configurations.
-
Configure each application as needed.