# Debloat Brave Browser on macOS — The Right Way

> Source: <https://gist.github.com/byzandome/e4ab668b1d38d747f81bef78889ca52a>
> Published: 2026-06-18 13:28:01+00:00

Remove Brave Wallet, Leo AI, Brave Rewards, Brave VPN, and more — cleanly and permanently.

Brave Browser ships with cryptocurrency, AI, VPN, and other features that many users don't need. This guide disables them properly using macOS policy files so they stay gone — even after browser updates.

Two methods:

| Method | Persistence | Complexity |
|---|---|---|
1. User-Level |
Lost on profile reset | Simple |
2. Managed Preferences |
Survives updates | Recommended |

Close Brave completely before applying any changes.

Open Terminal and run:

```
# Disable Leo AI
defaults write com.brave.Browser BraveAIChatEnabled -bool false
defaults write com.brave.Browser BraveLeoEnabled -bool false
defaults write com.brave.Browser BraveChatEnabled -bool false
defaults write com.brave.Browser BraveAIEnabled -bool false

# Disable Brave Wallet
defaults write com.brave.Browser BraveWalletDisabled -bool true
defaults write com.brave.Browser CryptoWalletEnabled -bool false

# Disable Brave Rewards
defaults write com.brave.Browser BraveRewardsDisabled -bool true

# Disable Brave VPN
defaults write com.brave.Browser BraveVPNDisabled -bool true
```

Reopen Brave and verify.

This creates a system-level policy file that Brave reads on every launch. It takes precedence over user settings and survives reinstalls.

```
sudo tee "/Library/Managed Preferences/com.brave.Browser.plist" > /dev/null << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>BraveAIChatEnabled</key>
    <false/>
    <key>BraveRewardsDisabled</key>
    <true/>
    <key>BraveVPNDisabled</key>
    <true/>
    <key>BraveWalletDisabled</key>
    <true/>
    <key>BraveLeoEnabled</key>
    <false/>
    <key>BraveChatEnabled</key>
    <false/>
    <key>BraveAIEnabled</key>
    <false/>
    <key>CryptoWalletEnabled</key>
    <false/>
</dict>
</plist>
EOF
sudo chmod 644 "/Library/Managed Preferences/com.brave.Browser.plist"
plutil -lint "/Library/Managed Preferences/com.brave.Browser.plist"
```

You must see: `/Library/Managed Preferences/com.brave.Browser.plist: OK`

If you see an error, the XML is malformed — check for stray characters.

```
killall "Brave Browser" 2>/dev/null; open -a "Brave Browser"
```

Open `brave://policy`

in the address bar.

Every key you set should appear with status **Active** and the correct value. If a key is missing, Brave did not read it — recheck the plist syntax.

Add these inside `<dict>`

to remove even more:

```
<key>BraveNewsDisabled</key>
<true/>
<key>BraveTalkDisabled</key>
<true/>
<key>SyncDisabled</key>
<true/>
<key>TorDisabled</key>
<true/>
<key>IncognitoModeAvailability</key>
<integer>1</integer>
<key>BraveP3AEnabled</key>
<false/>
<key>BraveStatsPingEnabled</key>
<false/>
<key>BraveWebDiscoveryEnabled</key>
<false/>
```

`.plist`

files are XML. Two rules to avoid breaking them:

**No** XML comments use`#`

comments.`<!-- like this -->`

.**No trailing text** after a closing tag.

If the file is invalid, Brave ignores it silently — no warnings, no errors. Always run `plutil -lint`

to confirm.

```
defaults delete com.brave.Browser BraveAIChatEnabled
defaults delete com.brave.Browser BraveLeoEnabled
defaults delete com.brave.Browser BraveChatEnabled
defaults delete com.brave.Browser BraveAIEnabled
defaults delete com.brave.Browser BraveWalletDisabled
defaults delete com.brave.Browser CryptoWalletEnabled
defaults delete com.brave.Browser BraveRewardsDisabled
defaults delete com.brave.Browser BraveVPNDisabled
sudo rm "/Library/Managed Preferences/com.brave.Browser.plist"
```

Restart Brave after reverting.

Based on [hi-one/Debloat-Brave-Browser-MacOS.md](https://github.com/hi-one/hi-one/blob/main/Debloat-Brave-Browser-MacOS.md) with XML syntax corrections and expanded verification. Credit to the original author for the groundwork.

*This guide is unofficial. Use at your own risk.*
