Skip to content

emylfy/macrift

Repository files navigation

macrift

Preview every macOS change before it happens — then apply with one key

macrift main menus

GitHub Stars   License   Last Commit   CI


Why macrift?

Fresh Mac → full setup in minutes.

  • See before you touch — tweak wizard with per-item skip, apply, or reset. 60+ tweaks across 7 categories, all audited
  • 83 curated packages — 7 Homebrew bundles + Mac App Store, installed via multi-select
  • 12 bundled configs — terminal profiles, shell aliases, Catppuccin theme, editor settings, dock layout — ready to apply
  • Profile save/restore — save your entire setup (Brewfile, macOS defaults, dotfiles, editor settings, iTerm2, dock layout, Raycast) to Desktop, Documents, or iCloud Drive and restore it anywhere

Quick Start

curl -fsSL https://raw.githubusercontent.com/emylfy/macrift/main/install.sh | bash

Installs to ~/.macrift, creates a global macrift command, and launches automatically. Doesn't touch your system until you choose what to apply.

Alternative: manual clone
git clone https://github.com/emylfy/macrift.git ~/.macrift && ~/.macrift/macrift.sh
CLI flags
Flag Description
--dry-run Show what would change without applying
--no-confirm Skip all confirmation prompts (auto-approve)
--log Write session log to ~/.macrift/macrift.log
--version Print version and exit
--help Show usage info

Features

Feature What it does
⚙️ System Tweaks Dock, Finder, Keyboard, Trackpad, Screenshots, Hot Corners, Misc
📦 Apps & Packages 7 Homebrew bundles, Mac App Store, Spotify, .brewbak backup
🎨 Customize Profile, Terminal, Shell, Editor, Dock Layout, Wallpapers
🛡️ Security & Privacy Security status, hostname, DNS benchmark, hardening presets
🧹 Cleanup System cleanup via Mole — caches, logs, leftovers

⚙️ System Tweaks

Tweak wizard with per-item skip, apply, or reset to system default. Batch apply or pick individually.

Category What it does
Dock Autohide, tile size, animation speed, minimize effect, Spaces, recents
Finder Show hidden files & extensions, path bar, POSIX title, list view, no .DS_Store, quit menu, spring folders
Keyboard & Text Key repeat speed, press-and-hold, auto-correct, smart substitutions
Trackpad & Mouse Tap to click, tracking speed, right-click, three-finger drag, drag windows anywhere
Screenshots Format, save location, shadow, date in filename
Hot Corners Arrow-key menu per corner, no codes to memorize
Misc Boot sound, app open dialog, save/print panels, window animations, tiled window margins

📦 Apps & Packages

Homebrew Bundles — multi-select installer with 7 curated Brewfiles:

  • Development — bash, git, gh, lazygit, node, python, go, rust, docker, neovim, tmux, fzf, ripgrep, bat, eza, fd, fastfetch, claude, claude-code, zed, t3-code...
  • Utilities — Raycast, Alfred, HiddenBar, AltTab, Keka, SoundSource, BetterDisplay, Cork, Keyboard Cowboy, SuperCorners, Logi Options+...
  • Browsers — Chrome, Arc, Zen, Ungoogled Chromium
  • Communication — Ayugram, Telegram, Discord, Vesktop, Slack, Zoom
  • Media — IINA, OBS, Spotify, Figma, Affinity
  • Games — Steam, Heroic Games Launcher, Modrinth
  • Fonts — Fira Code, Maple Mono (Nerd Fonts)

Mac App Storemas entries in Brewfiles installed individually with App Store redirect for unpurchased apps.

Export/import your packages with .brewbak backup files.

SpotifySpotX ad blocker + Spicetify customization framework + marketplace backup restore.

🛡️ Security & Privacy

Tool Description
Security Status FileVault, Firewall, SIP, Gatekeeper — at a glance; toggle Gatekeeper on/off
Hostname Set custom hostname — hide your name from the network
DNS 11 providers, benchmark with current DNS comparison, VPN detection
Hardening privacy.sexy — custom or standard macOS hardening preset

🧹 Cleanup

  • Homebrew Cleanupbrew cleanup --prune=all && brew autoremove
  • Deep Clean — powered by Mole, removes caches, logs, and leftover files

Customize

Complete environment setup from one menu.

🖥️ Terminal & Shell

Terminal — install & configure iTerm2 or Ghostty:

  • iTerm2 Dynamic Profiles — 3 presets (Cyberdrift, Nord Frost, Tokyo Night) with FiraCode Nerd Font, auto-set as default
  • iTerm2 Defaults — GPU renderer, compact tabs, hidden scrollbar, focus follows mouse
  • Ghostty — config from config/ghostty/; Catppuccin Mocha and Latte themes downloaded automatically

ShellZinit plugin manager + Starship prompt + FastFetch + .zshrc with modern aliases:

  • Zinit plugins — fast-syntax-highlighting, zsh-autosuggestions, zsh-completions, fzf-tab (turbo/async)
  • Catppuccin Mocha — one-click theme for fzf, bat, eza, autosuggestions, syntax highlighting, starship
Shell aliases
Alias Tool
ls ll lt eza with icons and tree view
cat bat with syntax highlighting
grep ripgrep
find fd
g gs ga gc git shortcuts (status, add, commit, push, log, diff, checkout, branch)
lg lazygit
.. ... .... quick directory navigation
reload ip ports shell reload, public IP, listening ports

📝 Code Editors

Shared settings.json applied to any of these editors:

Fira Code, format on save, ligatures, sidebar left, telemetry off.

Extensions — multi-select installer from config/vscode/extensions.txt; auto-detects code/cursor/codium CLI.

🗂️ Dock Layout

Dock management via dockutil:

  • Clear Dock — remove all apps for a clean start
  • Add spacer — visual separator between groups
  • Reset — restore macOS default dock
🖼️ Wallpapers
📦 Profile Save & Restore

Save your entire environment to Desktop, Documents, or iCloud Drive. Restore on another Mac or after a clean install with multiselect.

Includes: Brewfile, macOS defaults (Dock, Finder, Keyboard, Screenshots), dotfiles (.zshrc, Starship, FastFetch, Ghostty), editor settings (VSCode, Cursor, Zed), iTerm2 config, dock layout, and Raycast extensions.


MIT License · Changelog · Report a Bug

If this saved you time, a star helps others find it