Set up a new Mac in minutes, and see exactly what runs.
Pick the apps you need (each with a plain-English explanation), then install them all with one Terminal command.
initmac.in · AI on your Mac · Verify a script · Suggest an app
- Decide faster. Tell it your role and what you do day to day; it recommends from a curated catalog of 84 apps (Raycast, Rectangle, OrbStack, VS Code, 1Password, Obsidian…) and explains each one, so you're not googling "best Mac terminal" at midnight.
- One command.
bash <(curl -fsSL https://initmac.in/i/<id>/run.sh)installs everything with Homebrew, plus optional Git/SSH setup and a few sensible macOS settings. - Safe to run, safe to re-run. It shows the full plan and asks before changing anything, skips apps you already have (even ones you didn't install with Homebrew), and backs up settings.
- Verifiable, not just "trust me". This repository is the exact code that runs on your Mac, and you can prove the script you downloaded matches it (see below).
- Go to initmac.in, answer two quick questions.
- Review the recommended apps and tick what you want.
- Copy the command into Terminal, read the plan, type
y.
Already set up a Mac you love? Share it as a link, or let InitMac save your app list privately
(the installer offers this at the end; skip it with --no-sync) and recreate it on your next Mac.
initmac.in/ai: pick a kit and get one command.
- Agentic coding: Claude Code, Codex, Gemini CLI and Cursor (more agents, such as OpenCode, Aider, Cline and Qwen Code, at initmac.in/apps/ai).
- Local models: Ollama, LM Studio and the Hugging Face CLI (plus llama.cpp, MLX-LM, Jan, Msty, LLM).
At the end, the installer reads your Mac's memory and shows which open-weight models fit:
Open-weight models on this Mac (48 GB memory):
8 GB+ small 1-4B models (e.g. qwen3:4b, gemma3:4b)
16 GB+ 7-14B models (e.g. qwen3:8b, qwen3:14b)
-> 32 GB+ up to ~32B models (e.g. qwen3:32b, gemma3:27b)
64 GB+ 70B-class models (e.g. llama3.3:70b) and everything smaller
A good first model for this Mac: qwen3:14b (about 9 GB to download).
It offers to download that one starter model with Ollama (default No), then prints the command to start each agent. It never asks for API keys or accounts: each tool signs you in itself.
A free, read-only health report you can run any time:
bash <(curl -fsSL https://initmac.in/checkup.sh)It reports free space (and which caches are big), battery health, FileVault / firewall /
Gatekeeper / SIP / Time Machine, pending macOS and Homebrew updates, background startup items
and memory pressure. Then it suggests fixes and asks about each one. It never deletes your files:
for big folders it opens them in Finder, and for security settings it opens the right System
Settings page. The only commands it can run are brew cleanup, brew upgrade <your outdated apps> and open, and only after you type y. Source: installer/checkup.py,
held to the same sandbox tests as the installer.
When you run your InitMac command, it:
- Shows you a plan and asks
Continue? [y/N]before changing anything. - Installs Xcode Command Line Tools and Homebrew if they're missing.
- Installs the apps you picked with Homebrew, skipping ones you already have, including apps you installed yourself from the vendor's website (those are left exactly as they are).
- Optionally sets your Git name/email and creates an SSH key (only if you don't have one).
- Optionally applies the macOS settings you ticked, after backing up your originals.
- Offers to save your app list (Homebrew package names only) to a private page on initmac.in.
Pressing Enter saves it; type
nor run with--no-syncto skip.
It never deletes or overwrites your files, runs sudo itself, or sends anything except
that app list. Undo options: --restore-defaults, --forget-device,
brew uninstall <name>.
tests/test_installer_safety.pyruns the real generated installer with every app, setting and option turned on, inside a sandbox (fake home folder, fake Homebrew, fake network) and fails if it runs any command, writes any file or contacts any server outside a short allowlist. It also statically scans the template for dangerous calls, and proves the scanner works by injecting harmful lines and checking they're caught.- The launcher (
installer/launcher.sh.tmpl) refuses to run the installer unless its SHA-256 matches the fingerprint shown on the website. - CI runs all of this on macOS for every change.
Every generated script says which commit of this repo it was built from (line 2). Check it:
curl -fsSL https://initmac.in/i/<your-id> -o initmac-install.py
curl -fsSL https://raw.githubusercontent.com/initmac-app/initmac/main/tools/verify_script.py -o verify_script.py
python3 verify_script.py initmac-install.py
# ✓ Verified: matches github.com/initmac-app/initmac @ <commit>It confirms the code is byte-for-byte the public template and that every app and setting in your
CONFIG block is an exact entry from the public catalog at that commit.
| Path | What |
|---|---|
installer/install_template.py |
The installer (Python standard library only, 3.9+). CONFIG is filled in per user |
installer/launcher.sh.tmpl |
The bash <(curl …) launcher: Command Line Tools + fingerprint check |
installer/render.py |
How initmac.in renders both (the exact code the site uses) |
catalog/catalog.json |
Every app: Homebrew name, type, category, explanation, who it's for |
catalog/macos_defaults.json |
The optional macOS settings |
catalog/questionnaire.json |
Roles, daily activities and recommendation weights |
tools/check_brew_tokens.py |
Checks every catalog entry still exists in Homebrew |
tools/verify_script.py |
Verifies a downloaded installer against this repo |
uv run pytest # or: python3 -m pytestApp suggestions and fixes are very welcome. See CONTRIBUTING.md. Security issues: please follow SECURITY.md instead of opening a public issue.
MIT. The initmac.in website itself (wizard, share links, sync service) is a separate, private codebase.
Mac and macOS are trademarks of Apple Inc., registered in the U.S. and other countries. InitMac is an independent project and is not affiliated with, sponsored or endorsed by Apple Inc. Other product names in the catalog are trademarks of their respective owners.