Skip to content

Native macOS app to generate Microsoft Edge Managed Favorites configuration files for Enterprise deployment (JSON for Windows/GPO and Plist for macOS/Intune)

Notifications You must be signed in to change notification settings

dernerl/ManagedFavsGenerator

Repository files navigation

Managed Favs Generator

A native macOS app to generate Microsoft Edge Managed Favorites configuration files for enterprise deployment via Group Policy (GPO) and Microsoft Intune. All code come from Atlassian Rovo Dev (anthropic.claude-sonnet-4-5-20250929-v1:0) image

image

🎯 What Does It Do?

This app helps IT administrators create and manage Microsoft Edge favorites that can be deployed to users across an organization. It generates properly formatted configuration files for:

  • Windows devices (via Group Policy or Intune)
  • macOS devices (via Intune)

Instead of manually creating complex JSON or Plist files, you use a simple, intuitive interface to:

  1. Add favorites (name + URL)
  2. Generate configuration files automatically
  3. Copy or export them for deployment

✨ Key Features

  • 🎨 Native macOS Design - Modern, fluid interface with animations
  • ⌨️ Keyboard Shortcuts - Fast workflow (⌘N to add, ⌘S to export, ⌘⇧C to copy)
  • 💾 Persistent Storage - Your favorites are saved automatically
  • 📋 Multiple Formats - Generates both JSON (Windows) and Plist (macOS)
  • 🚀 Export Ready - One-click export or copy to clipboard
  • ⚙️ Configurable - Customize toplevel names for your organization

📋 Requirements

  • macOS 15.0 (Sequoia) or later
  • Xcode 16 or later (for building from source)

🚀 Quick Start

Option 1: Download Pre-built Release

  1. Download the latest release from GitHub Releases
  2. Unzip ManagedFavsGenerator-vX.X.X.zip
  3. Move ManagedFavsGenerator.app to your Applications folder
  4. Launch the app

Option 2: Build from Source

# Clone the repository
git clone <repository-url>
cd ManagedFavsGenerator

# Build
swift build -c release

# Run
.build/release/ManagedFavsGenerator

Or open Package.swift in Xcode and press ⌘R.


🔒 macOS Gatekeeper (First Launch)

Since this app is not notarized by Apple, macOS Gatekeeper will block it on first launch. You need to allow it manually.

Method 1: Terminal (Quick)

Remove the quarantine attribute to bypass Gatekeeper:

# Navigate to where you saved the app
cd ~/Downloads

# Remove quarantine flag
xattr -cr ManagedFavsGenerator.app

# Now open normally
open ManagedFavsGenerator.app

Explanation:

  • xattr = Extended attributes tool
  • -c = Clear all attributes
  • -r = Recursive (for app bundles)

Method 2: GUI (System Settings)

  1. Try to open ManagedFavsGenerator.app
  2. macOS shows: "ManagedFavsGenerator.app can't be opened because it is from an unidentified developer"
  3. Click OK
  4. Open System SettingsPrivacy & Security
  5. Scroll down to Security section
  6. Click Open Anyway next to the blocked app message
  7. Click Open in the confirmation dialog
  8. App will launch successfully

Screenshot:

System Settings → Privacy & Security
┌─────────────────────────────────────────┐
│ Security                                │
│ "ManagedFavsGenerator.app" was blocked │
│ [Open Anyway]                           │
└─────────────────────────────────────────┘

Method 3: Right-Click (Alternative)

  1. Right-click (or Control-click) on ManagedFavsGenerator.app
  2. Select Open from context menu
  3. macOS shows modified dialog with Open button
  4. Click Open
  5. App will launch and be remembered for future launches

✅ Verification (Optional)

Verify the download integrity using checksums:

# Download checksums
curl -L -O https://github.com/dernerl/ManagedFavsGenerator/releases/download/vX.X.X/checksums.txt

# Verify ZIP file
shasum -a 256 ManagedFavsGenerator-vX.X.X.zip
cat checksums.txt

# Both SHA-256 hashes should match

📖 How To Use

1. Add Favorites

image

Press ⌘N or click the Add Favorite button in the toolbar:

  • Name: Display name (e.g., "Company Portal")
  • URL: Full URL including https://

Add Folders

image

Press (⌘⇧N) or click the Add Folders button to organize favorites hierarchically. image

2. **Move position by Drag and Drop

image

2. Import Existing Configuration

Import existing configurations from other sources or backups:

JSON Import (Copy/Paste) - ⌘I

image
  • Click Import JSON or press ⌘I
  • Dialog opens with text editor
  • Paste your JSON configuration
  • Click Import
  • Perfect for quick imports, testing, or snippets

Plist Import (File Selection) - ⌘⇧I

image
  • Click Import Plist or press ⌘⇧I
  • Select .plist file from your system
  • Supports full Plist files and Intune fragments
  • Automatically handles files without XML headers

3. Generate Outputs

The app automatically generates two formats as you add favorites:

JSON Format (for Windows/GPO)

  • Used for on-premises Group Policy
  • Used for Intune Settings Catalog (Windows)
  • Press ⌘⇧C to copy to clipboard

Plist Format (for macOS/Intune)

  • Used for Intune Device Configuration Profiles
  • Press ⌘S to export as file
  • Or click Copy to copy to clipboard

4. Configure Toplevel Name

image

The toplevel name (default: managedFavs) is the root key in your configuration. Change it in Settings (⌘,) if needed.

5. Deploy to Your Organization

See deployment guides below for Windows GPO, Intune Windows, or Intune macOS.

6. **Choose Favicon Provider

image

Favicons load automatically when URL is entered. Display favicons next to favorite entries to make them visually recognizable.

🏢 Deployment Scenarios

Windows - Group Policy (On-Premises)

For organizations using Active Directory and Group Policy:

  1. Copy the JSON output from the app
  2. Open Group Policy Management Console
  3. Navigate to: Computer Configuration → Administrative Templates → Microsoft Edge → Favorites
  4. Enable "Configure favorites" policy
  5. Paste the JSON configuration
  6. Link the GPO to the appropriate Organizational Unit (OU)
  7. Run gpupdate /force on client machines

Documentation:


Windows - Intune Settings Catalog

For cloud-managed Windows devices: image

  1. Copy the JSON output from the app
  2. In Microsoft Intune admin center: Devices → Configuration profiles
  3. Create profile:
    • Platform: Windows 10 and later
    • Profile type: Settings catalog
  4. Add settings: Search for "Microsoft Edge""Favorites"
  5. Enable "Configure favorites" and paste JSON
  6. Assign to device groups
  7. Devices will sync and apply the policy

Documentation:


macOS - Intune Preference File

For cloud-managed macOS devices:

  1. Export the Plist from the app (⌘S)
  2. In Microsoft Intune admin center: Devices → Configuration profiles
  3. Create profile:
    • Platform: macOS
    • Profile type: Templates → Preference file
  4. Upload the .plist file
  5. Set preference domain: com.microsoft.Edge
  6. Assign to device groups
  7. Devices will sync and apply the configuration

Documentation:


📝 Configuration Format Examples

JSON (Windows)

{
  "managedFavs": [
    {
      "toplevel_name": "Company",
      "name": "Intranet",
      "url": "https://intranet.company.com"
    },
    {
      "toplevel_name": "Company",
      "name": "Support Portal",
      "url": "https://support.company.com"
    }
  ]
}

Plist (macOS)

The app generates a complete macOS Configuration Profile with:

  • ManagedFavorites array containing your favorites
  • Proper payload structure for Intune deployment
  • Unique UUIDs for identification

🔧 Troubleshooting

Favorites Don't Appear in Edge

Windows (GPO):

  • Run gpupdate /force to apply policies immediately
  • Check policy status: gpresult /r
  • Verify Edge is managed: edge://policy

Windows (Intune):

  • Wait for device sync (can take up to 8 hours, or force sync)
  • Check policy status in Intune portal
  • Verify Edge is up to date

macOS (Intune):

  • Force device sync from Company Portal
  • Check profile installation: System Settings → Profiles
  • Verify Edge is installed and up to date

Invalid Configuration Errors

  • ✅ Ensure all URLs start with https:// or http://
  • ✅ Check for special characters in names
  • ✅ Verify JSON/Plist is properly formatted (app does this automatically)
  • ✅ Ensure toplevel name doesn't contain spaces or special characters

App Issues

  • Favorites not saved: Check file permissions in ~/Library/Application Support/
  • Export fails: Verify write permissions for target directory
  • App won't start: Ensure macOS 15+ and try rebuilding

🔍 Debugging & Verification

Verify Favicon Provider

You can verify which favicon provider (Google or DuckDuckGo) the app is using in real-time:

# Live stream of favicon loading logs
log stream --predicate 'subsystem == "ManagedFavsGenerator" AND category == "Favicons"' --level info --style compact

Example output:

Loading favicon for 'github.com' using Google provider: https://www.google.com/s2/favicons?domain=github.com&sz=32
Loading favicon for 'microsoft.com' using DuckDuckGo provider: https://icons.duckduckgo.com/ip3/microsoft.com.ico

To change the provider:

  1. Open Settings (⌘,)
  2. Navigate to Appearance section
  3. Select your preferred Favicon Provider:
    • Google: More reliable, comprehensive coverage
    • DuckDuckGo: Privacy-focused, no tracking

Changes take effect immediately without restart.

🛠️ Technical Details

For developers and technical documentation, see AGENTS.md - Development guidelines, architecture, and best practices.

📚 Additional Resources

Microsoft Edge Management

Microsoft Intune

Group Policy

🤝 Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

💬 Support

  • App Issues: Open an issue in this repository
  • Edge Policy Questions: Check Microsoft Edge documentation
  • Intune/GPO Questions: Consult Microsoft documentation or your IT team

Made with ❤️ for IT Administrators

About

Native macOS app to generate Microsoft Edge Managed Favorites configuration files for Enterprise deployment (JSON for Windows/GPO and Plist for macOS/Intune)

Resources

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages