22
33# macrift
44
5- ** Interactive macOS setup & customization tool — tweak, configure, harden**
5+ ** Preview every macOS change before it happens — then apply with one key**
6+
7+ <img src =" media/demo.gif " alt =" macrift main menus " width =" 90% " >
68
79<a href =" https://github.com/emylfy/macrift/stargazers " ><img src =" https://img.shields.io/github/stars/emylfy/macrift?style=for-the-badge&logo=starship&color=C9CBFF&logoColor=C9CBFF&labelColor=302D41 " alt =" GitHub Stars " ></a >  ;  ;
810<a href =" https://github.com/emylfy/macrift/blob/main/LICENSE " ><img src =" https://img.shields.io/github/license/emylfy/macrift?style=for-the-badge&logo=apache&color=CBA6F7&logoColor=CBA6F7&labelColor=302D41&label=License " alt =" License " ></a >  ;  ;
9- <a href =" https://github.com/emylfy/macrift/commits/main/ " ><img src =" https://img.shields.io/github/last-commit/emylfy/macrift?style=for-the-badge&logo=github&logoColor=eba0ac&label=Last%20Commit&labelColor=302D41&color=eba0ac " alt =" Last Commit " ></a >
10-
11- <!-- <img src="media/screenshot.png" alt="macrift terminal interface" width="90%"> -->
11+ <a href =" https://github.com/emylfy/macrift/commits/main/ " ><img src =" https://img.shields.io/github/last-commit/emylfy/macrift?style=for-the-badge&logo=github&logoColor=eba0ac&label=Last%20Commit&labelColor=302D41&color=eba0ac " alt =" Last Commit " ></a >  ;  ;
12+ <a href =" https://github.com/emylfy/macrift/actions/workflows/ci.yml " ><img src =" https://img.shields.io/github/actions/workflow/status/emylfy/macrift/ci.yml?style=for-the-badge&logo=github-actions&logoColor=a6e3a1&label=CI&labelColor=302D41&color=a6e3a1 " alt =" CI " ></a >
1213
1314</div >
1415
1516<h6 align =" center " >
17+ <a href =" #why " >Why macrift?</a > ·
1618 <a href =" #quick-start " >Quick Start</a > ·
1719 <a href =" #features " >Features</a > ·
1820 <a href =" #customize " >Customize</a >
1921</h6 >
2022
2123---
2224
25+ <a id =" why " ></a >
26+
27+ ## Why macrift?
28+
29+ Fresh Mac → full setup in minutes.
30+
31+ - ** See before you touch** — every system tweak shows a diff table before writing anything. 48 tweaks across 7 categories, all audited
32+ - ** 75 curated packages** — 7 Homebrew bundles + Mac App Store, installed via multi-select
33+ - ** 11 bundled configs** — terminal profiles, shell aliases, editor settings, dock layout — ready to apply
34+ - ** Profile export/import** — save your entire setup (Brewfile, macOS defaults, dotfiles, editor settings, iTerm2, dock layout) and restore it anywhere
35+
36+ ---
37+
2338<a id =" quick-start " ></a >
2439
2540## Quick Start
@@ -29,30 +44,45 @@ bash <(curl -fsSL https://raw.githubusercontent.com/emylfy/macrift/main/install.
2944```
3045
3146Installs to ` ~/.macrift ` , creates a global ` macrift ` command, and launches automatically.
47+ Doesn't touch your system until you choose what to apply.
48+
49+ <details >
50+ <summary >Alternative: manual clone</summary >
51+
52+ ``` bash
53+ git clone https://github.com/emylfy/macrift.git ~ /.macrift && ~ /.macrift/macrift.sh
54+ ```
3255
33- > [ !NOTE]
34- > Every ` defaults write ` change is previewed in a table (current vs new) before applying. Config files are backed up before overwriting.
56+ </details >
57+
58+ <details >
59+ <summary >CLI flags</summary >
60+
61+ | Flag | Description |
62+ | :------------- | :-------------------------------------------- |
63+ | ` --dry-run ` | Show what would change without applying |
64+ | ` --no-confirm ` | Skip all confirmation prompts (auto-approve) |
65+ | ` --log ` | Write session log to ` ~/.macrift/macrift.log ` |
66+ | ` --version ` | Print version and exit |
67+ | ` --help ` | Show usage info |
68+
69+ </details >
3570
3671---
3772
3873<a id =" features " ></a >
3974
4075## Features
4176
42- | | Feature | What it does |
43- | :-- | :----------------------- | :---------------------------------------------------------------------- |
44- | ⚙️ | ** System Tweaks** | Dock, Finder, Keyboard, Trackpad, Screenshots, Hot Corners, Misc |
45- | 📦 | ** Apps & Packages** | 7 Homebrew bundles, Mac App Store, Spotify, .brewbak backup |
46- | 🎨 | ** Customize** | Terminal, Shell, Editor, Dock Layout, Spicetify, Wallpapers |
47- | 🛡️ | ** Security & Privacy** | privacy.sexy presets, hostname, encrypted DNS, analytics off |
48- | 🧹 | ** Cleanup** | System cleanup via Mole — caches, logs, leftovers |
77+ | | Feature | What it does |
78+ | :-- | :--------------------- | :---- ---------------------------------------------------------------------- |
79+ | ⚙️ | ** System Tweaks** | Dock, Finder, Keyboard, Trackpad, Screenshots, Hot Corners, Misc |
80+ | 📦 | ** Apps & Packages** | 7 Homebrew bundles, Mac App Store, Spotify, .brewbak backup |
81+ | 🎨 | ** Customize** | Terminal, Shell, Editor, Dock Layout, Wallpapers, Profile Backup |
82+ | 🛡️ | ** Security & Privacy** | Security status, privacy.sexy presets, hostname, encrypted DNS |
83+ | 🧹 | ** Cleanup** | System cleanup via Mole — caches, logs, leftovers |
4984
50- <br >
51-
52- <details >
53- <summary ><strong >⚙️ System Tweaks — all categories</strong ></summary >
54-
55- <br >
85+ ### ⚙️ System Tweaks
5686
5787Every tweak shows a diff table before applying. Choose individually or apply all at once.
5888
@@ -66,53 +96,37 @@ Every tweak shows a diff table before applying. Choose individually or apply all
6696| Hot Corners | Interactive corner action picker |
6797| Misc | Boot sound, app open dialog, save/print panels, window animations |
6898
69- </details >
70-
71- <details >
72- <summary ><strong >📦 Apps & Packages</strong ></summary >
73-
74- <br >
99+ ### 📦 Apps & Packages
75100
76101** Homebrew Bundles** — multi-select installer with 7 curated Brewfiles:
77102
78- - ** Development** — git, gh, lazygit, node, python, go, rust, neovim, fzf, ripgrep, bat, eza, fd...
79- - ** Utilities** — Raycast, Alfred, HiddenBar, Keka, AltTab, SoundSource...
103+ - ** Development** — git, gh, lazygit, node, python, go, rust, neovim, fzf, ripgrep, bat, eza, fd, fastfetch, macmon, mas, mole, scrcpy, t3-code, android-platform-tools ...
104+ - ** Utilities** — Raycast, Alfred, HiddenBar, Keka, AltTab, SoundSource, BetterDisplay, Logi Options+, Macs Fan Control, SuperCorners ...
80105- ** Browsers** — Chrome, Arc, Zen, Ungoogled Chromium
81106- ** Communication** — Ayugram, Telegram, Discord, Slack, Zoom
82- - ** Media** — IINA, OBS, Spotify, Figma, ImageOptim
107+ - ** Media** — IINA, OBS, Spotify, Figma, ImageOptim, Affinity
83108- ** Games** — Steam, Heroic Games Launcher, Modrinth
84109- ** Fonts** — Fira Code, Maple Mono, JetBrains Mono (Nerd Fonts)
85110
86111** Mac App Store** — install apps via ` mas ` with multiselect.
87112
88113Export/import your packages with ` .brewbak ` backup files.
89114
90- ** Spotify** — [ SpotX] ( https://github.com/SpotX-Official/SpotX-Bash ) ad blocker + [ Spicetify] ( https://spicetify.app ) customization framework.
115+ ** Spotify** — [ SpotX] ( https://github.com/SpotX-Official/SpotX-Bash ) ad blocker + [ Spicetify] ( https://spicetify.app ) customization framework + marketplace backup restore .
91116
92- </details >
93-
94- <details >
95- <summary ><strong >🛡️ Security & Privacy</strong ></summary >
96-
97- <br >
117+ ### 🛡️ Security & Privacy
98118
99- | Tool | Description |
100- | :------------------------------------------ | :------------------------------------------------- |
101- | ** [ privacy.sexy ] ( https://privacy.sexy ) ** | Custom or standard macOS hardening preset |
102- | ** Hostname ** | Set custom hostname — hide your name from the network |
103- | ** Encrypted DNS ** | Quad9 (9.9.9.9) with malware blocking and DNSSEC |
104- | ** Homebrew analytics ** | One-click disable |
119+ | Tool | Description |
120+ | :--------------------------------------- | :---------------------------------------------- ------------------------------------------------- |
121+ | ** Security Status ** | FileVault, Firewall, SIP, Gatekeeper — at a glance; toggle Gatekeeper on/off |
122+ | ** [ privacy.sexy ] ( https://privacy.sexy ) ** | Custom or standard macOS hardening preset |
123+ | ** Hostname ** | Set custom hostname — hide your name from the network |
124+ | ** DNS Setup ** | Choose from 11 providers: Cloudflare, Google, Quad9, OpenDNS, AdGuard, NextDNS, ControlD, and more |
105125
106- </details >
107-
108- <details >
109- <summary ><strong >🧹 Cleanup</strong ></summary >
126+ ### 🧹 Cleanup
110127
111- <br >
112-
113- System cleanup powered by [ Mole] ( https://github.com/tw93/mole ) — removes caches, logs, and leftover files.
114-
115- </details >
128+ - ** Homebrew Cleanup** — ` brew cleanup --prune=all && brew autoremove `
129+ - ** Deep Clean** — powered by [ Mole] ( https://github.com/tw93/mole ) , removes caches, logs, and leftover files
116130
117131---
118132
@@ -122,46 +136,41 @@ System cleanup powered by [Mole](https://github.com/tw93/mole) — removes cache
122136
123137Complete environment setup from one menu.
124138
125- <details >
126- <summary ><strong >🖥️ Terminal & Shell</strong ></summary >
127-
128- <br >
139+ ### 🖥️ Terminal & Shell
129140
130141** Terminal** — install & configure [ iTerm2] ( https://iterm2.com ) or [ Ghostty] ( https://ghostty.org ) :
131142
132143- ** iTerm2 Dynamic Profiles** — 3 presets (Cyberdrift, Nord Frost, Tokyo Night) with JetBrainsMono Nerd Font, auto-set as default
133144- ** iTerm2 Defaults** — GPU renderer, compact tabs, hidden scrollbar, focus follows mouse
134- - ** Ghostty** — config from ` config/ghostty/ `
145+ - ** Ghostty** — config from ` config/ghostty/ ` ; Catppuccin Mocha and Latte themes downloaded automatically
135146
136147** Shell** — [ Starship] ( https://starship.rs ) prompt + [ FastFetch] ( https://github.com/fastfetch-cli/fastfetch ) + ` .zshrc ` with modern aliases:
137148
138- | Alias | Tool |
139- | :------------ | :---------------------------------------------- |
140- | ` ls ` ` ll ` ` lt ` | [ eza] ( https://github.com/eza-community/eza ) with icons and tree view |
141- | ` cat ` | [ bat] ( https://github.com/sharkdp/bat ) with syntax highlighting |
142- | ` grep ` | [ ripgrep] ( https://github.com/BurntSushi/ripgrep ) |
143- | ` find ` | [ fd] ( https://github.com/sharkdp/fd ) |
144- | ` g ` ` lg ` | git, [ lazygit] ( https://github.com/jesseduffield/lazygit ) |
149+ <details >
150+ <summary >Shell aliases</summary >
151+
152+ | Alias | Tool |
153+ | :------------- | :------------------------------------------------------------------- |
154+ | ` ls ` ` ll ` ` lt ` | [ eza] ( https://github.com/eza-community/eza ) with icons and tree view |
155+ | ` cat ` | [ bat] ( https://github.com/sharkdp/bat ) with syntax highlighting |
156+ | ` grep ` | [ ripgrep] ( https://github.com/BurntSushi/ripgrep ) |
157+ | ` find ` | [ fd] ( https://github.com/sharkdp/fd ) |
158+ | ` g ` ` lg ` | git, [ lazygit] ( https://github.com/jesseduffield/lazygit ) |
145159
146160</details >
147161
148- <details >
149- <summary ><strong >📝 Code Editors</strong ></summary >
150-
151- <br >
162+ ### 📝 Code Editors
152163
153164Shared ` settings.json ` applied to any of these editors:
154165
155166- [ VSCode] ( https://code.visualstudio.com ) · [ Cursor] ( https://cursor.sh ) · [ Windsurf] ( https://codeium.com/windsurf ) · [ VSCodium] ( https://vscodium.com ) · [ Zed] ( https://zed.dev )
156167
157- FiraCode Nerd Font , format on save, ligatures, sidebar right , telemetry off.
168+ Fira Code , format on save, ligatures, sidebar left , telemetry off.
158169
159- </ details >
170+ ** Extensions ** — multi-select installer from ` config/vscode/extensions.txt ` ; auto-detects ` code ` / ` cursor ` / ` codium ` CLI.
160171
161172<details >
162- <summary ><strong >🗂️ Dock Layout</strong ></summary >
163-
164- <br >
173+ <summary >🗂️ Dock Layout</summary >
165174
166175Config-file based dock management via [ dockutil] ( https://github.com/kcrawford/dockutil ) :
167176
@@ -173,34 +182,30 @@ Config-file based dock management via [dockutil](https://github.com/kcrawford/do
173182</details >
174183
175184<details >
176- <summary ><strong >🎵 Spicetify Marketplace</strong ></summary >
177-
178- <br >
185+ <summary >🖼️ Wallpapers</summary >
179186
180- Restore your Spicetify marketplace setup from backup — extensions, themes, and CSS snippets.
187+ - [ Catppuccin wallpapers] ( https://github.com/zhichaoh/catppuccin-wallpapers )
188+ - [ Gruvbox wallpapers] ( https://github.com/AngelJumworworbo/gruvbox-wallpapers )
189+ - [ wallhaven.cc] ( https://wallhaven.cc )
190+ - [ Curated collection] ( https://raindrop.io/emalfai/wallpaper-69077386 )
181191
182192</details >
183193
184194<details >
185- <summary ><strong >🖼️ Wallpapers</strong ></summary >
186-
187- <br >
195+ <summary >📦 Profile Backup & Restore</summary >
188196
189- Curated wallpaper links opened from the menu:
197+ Export your entire environment to a folder, import it on another Mac or after a clean install.
190198
191- - [ Personal collection] ( https://raindrop.io/emalfai/wallpaper-69077386 ) (Raindrop)
192- - [ Catppuccin wallpapers] ( https://github.com/zhichaoh/catppuccin-wallpapers )
193- - [ Gruvbox wallpapers] ( https://github.com/AngelJumworworbo/gruvbox-wallpapers )
194- - [ wallhaven.cc] ( https://wallhaven.cc )
199+ Includes: Brewfile, macOS defaults (Dock, Finder, Keyboard, Screenshots), dotfiles (.zshrc, Starship, FastFetch, Ghostty), editor settings (VSCode, Cursor, Zed), iTerm2 config, and dock layout.
195200
196201</details >
197202
198203---
199204
200205<div align =" center " >
201206
202- [ MIT License] ( LICENSE ) · [ Report a Bug] ( https://github.com/emylfy/macrift/issues )
207+ [ MIT License] ( LICENSE ) · [ Changelog ] ( CHANGELOG.md ) · [ Report a Bug] ( https://github.com/emylfy/macrift/issues )
203208
204- <sub >If macrift saved you time, consider leaving a ⭐ </sub >
209+ <sub >If this saved you time, a star helps others find it </sub >
205210
206211</div >
0 commit comments