MacStack

Non‑destructive · AI‑native · Zero lock‑in

Your whole macOS stack declared in code
and deployed in seconds

Star MacStack on GitHub ↗

How to Begin

Get started in one minute

curl -fsSL https://macstack.dev/setup.sh | zsh
1

Run the command

It ensures Homebrew is present and sets up MacStack.

2

Set your config folder

When asked, set a folder path for your stack config.

3

Apply your config

Run your first stack update and you're done: mack update

How MacStack Compares

We checked. Nothing else fit.

What You Might Know MacStack

Your own solution

setup.sh
Brewfile
dotfiles repo
README.md

Comprehensive solution — not compromise

MacStack likely goes far beyond what you implemented yourself, while being fully non-destructive, preserving even your hand-edits, and applying even your JSON comments. It provides a well designed and tested vehicle so you can focus on your destination: your stack.

Single-purpose tools

Homebrew
mise
asdf
Dotbot

Your whole stack end to end — not just one slice of it

MacStack lets you configure software stack, AI-agents, IDEs, the shell, custom hooks, git repos, and more. It doesn't re-invent any of that — it unlocks comprehensive stack management by being the single general-purpose tool that aggregates the many single-purpose tools.

File-owning tools

Ansible
chezmoi
Stow
mackup

Peaceful co-existence as the default — never destructive

MacStack merges into your existing files instead of owning and overwriting them — JSONC-aware, comment-preserving, down to the individual key and line. Use MacStack alongside other tools and introduce it to established or managed machines without conflict.

Parallel sandboxes

Docker
Virtual machines
Codespaces
Parallels

Your actual machine — not some parallel isolated sandbox

MacStack configures the machines you, your team, or your customers actually work with. Containers and virtual machines still have their place (MacStack happily installs them or gets installed in them); they just solve a different problem altogether.

Enterprise tools

MDM
Jamf
Intune
Workbrew

Putting you in control — not your organization

MacStack empowers you to manage your own machine. Your stack is a folder you own, containing readable files you already use. No server, no enrollment, no telemetry, no per-device fee, no remote authority. Convergence runs locally when you say so — the way you defined it.

Why Use MacStack

Your whole stack. Zero lock-in.

Your Whole Stack

MacStack gives you one command to setup, update and sync all aspects of your stack — far beyond software installs.

AI-Native

MacStack offers first-class support of AI-agent settings and rules — Cursor Agent, Gemini CLI, OpenCode.

Git-Native

MacStack makes git configs and repos a first-class concern. Enjoy automatic cloning and bidirectional repo sync.

Non-Destructive

MacStack updates only what you configure and preserves all else — down to individual entries in dotfiles and settings files.

On Any Mac

MacStack blends into any Mac: fresh macOS installs as well as established, managed, or headless machines.

First-Class Comments

MacStack applies even your JSON comments, so you can continue using comments as documentation.

Yours to Own

MacStack makes your stack config a folder you own. No SaaS, enrollment, telemetry, per-device fee, or remote authority.

Flexible Storage

MacStack lets you back up your stack config wherever you want, like in an external drive, cloud folder, or git repo.

Open and Inspectable

MacStack is open-source and plain scripts — every step is inspectable, readable, changable, and forkable.

Adopt At Your Pace

MacStack requires no inputs at all. Start with an empty config, then expand it at your own pace. No big-bang migration.

Use What You Know

MacStack employs the files and formats your setup already uses. There's almost nothing MacStack-specific to learn.

Continue Using Homebrew

MacStack employs Homebrew so you can continue using the de facto standard macOS dependency manager.

Lightweight

MacStack is lightweight. No Docker, no VMs, no MDM, no daemon. Just scripts that run when you say so.

Batteries Included

MacStack includes a few powerful customizations and helpers out of the box — no stack config required.

What MacStack Covers

Go beyond installs and updates

Shell Customization

Prompt, environment, paths, functions, aliases

Git Configuration

Personal and general global git settings in ~/.gitconfig

Fonts

All fonts you would install, like Fira Code and SF Mono

CLI Tools

Like brew, git, zsh, mise, claude, gemini, uv, python, rust

App Store Apps

Apps and browser extensions from the Mac App Store

AI Agent Configurations

Settings + permissions of Cursor Agent, Gemini CLI, OpenCode

IDE Configurations

Settings + keyboard shortcuts of VS Code based IDEs and Zed

VS Code Extensions

For any language support, agent integration, and more

Git Repositories

All Git repos, their local paths, remotes, protocols

Why Formalize Your Stack At All

Get a grip on your professional tools

Know What You Do

Stay aware of the tools you are using and commit to them consciously. Know what is installed and why.

Keep It Clean

Easily get rid of unused stuff, thanks to explicit installs, automation, and Homebrew's deep uninstalls.

Use AI Effectively

Writing down your stack provides context to AI for tech-related questions — even related to the stack itself.

Unlock AI Agents

Equip not just yourself but also your AI agents with a comprehensive but predictable range of tools.

Have Fun Learning

Enjoy learning again by building a lasting system instead of researching the same details over and over.

Bring Docs to Life

Document everything you learn — not just in notes but in up-to-date code and configs that actually run the process.

Keep It Consistent

Have your complete familiar setup on every machine instantly and keep all your machines in sync.

Stay in Control

Unlock advanced setups by managing all in one place: software stack, settings, scripts, documentation.

Become the Architect

Get on top of your stack to operate at a higher level, explore new tools, run more machines, learn another OS.

Accelerate Work

Enable automation, scheduling and scripting of intricate processes for setups, updates, and cleanups.

Stay Secure

By keeping your whole tech stack automatically up to date at all times you improve its safety and security.

Make It Last

Back up your whole stack configuration to a cloud folder or even version control it in a git repository.

Like what you see?
Star MacStack on GitHub ↗