This guide is intended for organizations that require to install Comet at large scale. If you’re looking for the individual Comet installer, you’ll find it here.

This guide covers deploying the Comet browser across your organization using Mobile Device Management (MDM) solutions on macOS systems.

Prerequisites

To install Comet for Enterprise using MDM you will need:

  • An MDM solution (Jamf Pro, Intune, Kandji, Mosyle, Workspace ONE, etc.)

  • Access to your organization’s Comet settings at perplexity.ai/account/org/comet

  • Your organization token (available from the Comet Setup page)

Overview

Mac policies are deployed using Configuration Profiles (.mobileconfig files) through your MDM solution. These profiles use the ai.perplexity.comet payload type to configure Comet settings.

Getting Started

First, you’ll need to download the Comet installer and obtain your organization token from: perplexity.ai/account/org/comet.

The Comet for Enterprise installer is currently available as a .dmg macOS disk image.

Mass-Deploying Comet

For mass deployment using tools like Jamf Pro:

  1. Upload the .dmg file to your MDM solution

  2. Prepare a script that mounts the DMG, copies the Comet app to /Applications, and unmounts the DMG

  3. This script can be part of your post-install tasks or included in the package

  4. Use post-install scripts to:

    • Handle app copy

    • Set permissions

    • Make Comet the default browser if required

    • Configure first run settings (via plist manipulation if needed)

Jamf Pro Deployment

Jamf Pro allows you to deploy and manage custom application settings in two different ways.

  • Using just the plist content (without the full mobileconfig wrapper), where Jamf handles wrapping it into a proper configuration profile.

  • Using custom json schema to provide a UI based approach to managing policies (unique to Jamf)

Generic MDM Deployment

For MDM solutions that require a complete .mobileconfig file, such as Kandji, Mosyle, Fleet, SimpleMDM, etc., use the full configuration profile format below.

Deployment Steps:

  1. Copy the example template and customize for your needs

  2. Generate unique UUIDs for PayloadUUID fields (use uuidgen in Terminal)

  3. Save as a .mobileconfig file

  4. Upload to your MDM as a custom configuration profile

  5. Assign to target devices or groups

Before configuring browser policies, you must first enroll devices into your organization. This associates each Comet installation with your enterprise account for centralized management.

Deploy a configuration profile containing your CloudManagementEnrollmentToken. Get your organization token from perplexity.ai/account/org/comet.

<?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>PayloadContent</key>
<array>
<dict>
<key>PayloadType</key>
<string>ai.perplexity.comet</string>
<key>PayloadIdentifier</key>
<string>ai.perplexity.comet</string>
<key>PayloadUUID</key>
<string>A1B2C3D4-E5F6-7890-ABCD-EF1234567890</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>CloudManagementEnrollmentToken</key>
<string>YOUR-ORG-TOKEN-HERE</string>
</dict>
</array>
<key>PayloadDisplayName</key>
<string>Comet - Organization Enrollment</string>
<key>PayloadIdentifier</key>
<string>ai.perplexity.comet.org-enrollment</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>B2C3D4E5-F6A7-8901-BCDE-F23456789012</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>

Once devices are enrolled, you can deploy additional configuration profiles to enforce browser policies. See examples below.

Example: Block Extensions

<?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>PayloadContent</key>
<array>
<dict>
<key>PayloadDisplayName</key>
<string>Comet Extension Blocklist Policy</string>
<key>PayloadIdentifier</key>
<string>ai.perplexity.comet</string>
<key>PayloadType</key>
<string>ai.perplexity.comet</string>
<key>PayloadUUID</key>
<string>12345678-1234-1234-1234-123456789012</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>ExtensionInstallBlocklist</key>
<array>
<!— Metamask —>
<string>nkbihfbeogaeaoehlefnkodbefgpgknn</string>
</array>
</dict>
</array>
<key>PayloadDisplayName</key>
<string>Comet - Extension Blocklist</string>
<key>PayloadIdentifier</key>
<string>ai.perplexity.comet.extension.blocklist</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>87654321-4321-4321-4321-210987654321</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>

Example: Block URLs

<?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>PayloadContent</key>
<array>
<dict>
<key>PayloadDisplayName</key>
<string>Comet URL Blocklist Policy</string>
<key>PayloadIdentifier</key>
<string>ai.perplexity.comet</string>
<key>PayloadType</key>
<string>ai.perplexity.comet</string>
<key>PayloadUUID</key>
<string>12345678-1234-1234-1234-123456789012</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>URLBlocklist</key>
<array>
<string>chatgpt.com</string>
<string>&#42;.competitor.com</string>
</array>
</dict>
</array>
<key>PayloadDisplayName</key>
<string>Comet - URL Blocklist</string>
<key>PayloadIdentifier</key>
<string>ai.perplexity.comet.url.blocklist</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>87654321-4321-4321-4321-210987654321</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>