{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Kandji Distribution (macOS)","description":"Control the power of AI Agents in runtime.","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"kandji-distribution-macos","__idx":0},"children":["Kandji Distribution (macOS)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Deploy Capsule Security hooks for AI coding assistants across your macOS fleet using Kandji MDM. This guide covers deployment for Cursor, GitHub Copilot, and Claude Code."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"prerequisites","__idx":1},"children":["Prerequisites"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Kandji"]}," tenant with administrative access"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Capsule Security"]}," account with admin access"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Target devices running macOS"]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"cursor","__idx":2},"children":["Cursor"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Deploy the Cursor hooks configuration using a Kandji Custom App."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-1-download-the-configuration","__idx":3},"children":["Step 1: Download the Configuration"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Log in to the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Capsule Security"]}," portal"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Navigate to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Settings > Integrations"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Locate the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Cursor"]}," integration"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Download the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["hooks.json"]}," file"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-2-create-the-custom-app","__idx":4},"children":["Step 2: Create the Custom App"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Log in to your Kandji tenant"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Navigate to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Library > Custom Apps"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Add New"]}," and select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Custom App"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Configure the installation:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Name"]},": Capsule Security Cursor Hooks"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Install Type"]},": Select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["ZIP File (unzip contents into specified directory)"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Unzip Location"]},": ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/Library/Application Support/Cursor/"]}]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Configure the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Preinstall Script"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"#!/bin/bash\nmkdir -p \"/Library/Application Support/Cursor\"\nchmod 755 \"/Library/Application Support/Cursor\"\n","lang":"bash"},"children":[]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Create a ZIP archive containing the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["hooks.json"]}," file:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"zip hooks.zip hooks.json\n","lang":"bash"},"children":[]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Upload the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["hooks.zip"]}," file to the Custom App"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Assign the Custom App to the appropriate devices or Smart Groups"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Deploy the configuration"]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"verification","__idx":5},"children":["Verification"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After deployment, restart Cursor on target devices, then:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Open Cursor Settings"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Navigate to the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Hooks"]}," tab"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Confirm the hooks are listed and enabled"]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"github-copilot","__idx":6},"children":["GitHub Copilot"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Deploy the GitHub Copilot hooks configuration using a Kandji Custom App."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-1-download-the-configuration-1","__idx":7},"children":["Step 1: Download the Configuration"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Log in to the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Capsule Security"]}," portal"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Navigate to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Settings > Integrations"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Locate the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["GitHub Copilot"]}," integration"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Download the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["hooks.json"]}," file"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-2-create-the-custom-app-1","__idx":8},"children":["Step 2: Create the Custom App"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Log in to your Kandji tenant"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Navigate to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Library > Custom Apps"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Add New"]}," and select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Custom App"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Configure the installation:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Name"]},": Capsule Security GitHub Copilot Hooks"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Install Type"]},": Select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["ZIP File (unzip contents into specified directory)"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Unzip Location"]},": ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/Library/Application Support/Code/User/hooks/"]}]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Configure the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Preinstall Script"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"#!/bin/bash\nmkdir -p \"/Library/Application Support/Code/User/hooks\"\nchmod 755 \"/Library/Application Support/Code/User/hooks\"\n","lang":"bash"},"children":[]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Create a ZIP archive containing the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["hooks.json"]}," file:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"zip hooks.zip hooks.json\n","lang":"bash"},"children":[]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Upload the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["hooks.zip"]}," file to the Custom App"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Assign the Custom App to the appropriate devices or Smart Groups"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Deploy the configuration"]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"verification-1","__idx":9},"children":["Verification"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After deployment, restart VS Code on target devices, then:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Right-click in the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Chat"]}," view and select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Diagnostics"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Confirm the hooks are loaded and enabled"]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"claude-code","__idx":10},"children":["Claude Code"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Deploy the Claude Code managed settings configuration using a Kandji Custom App."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-1-download-the-configuration-2","__idx":11},"children":["Step 1: Download the Configuration"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Log in to the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Capsule Security"]}," portal"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Navigate to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Settings > Integrations"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Locate the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Claude Code"]}," integration"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Install"]}," and select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["macOS"]}," as the target platform"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Download the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["managed-settings.json"]}," file"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-2-create-the-custom-app-2","__idx":12},"children":["Step 2: Create the Custom App"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Log in to your Kandji tenant"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Navigate to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Library > Custom Apps"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Add New"]}," and select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Custom App"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Configure the installation:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Name"]},": Capsule Security Claude Code Hooks"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Install Type"]},": Select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["ZIP File (unzip contents into specified directory)"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Unzip Location"]},": ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/Library/Application Support/ClaudeCode/"]}]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Configure the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Preinstall Script"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"#!/bin/bash\nmkdir -p \"/Library/Application Support/ClaudeCode\"\nchmod 755 \"/Library/Application Support/ClaudeCode\"\n","lang":"bash"},"children":[]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Create a ZIP archive containing the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["managed-settings.json"]}," file:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"zip managed-settings.zip managed-settings.json\n","lang":"bash"},"children":[]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Upload the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["managed-settings.zip"]}," file to the Custom App"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Assign the Custom App to the appropriate devices or Smart Groups"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Deploy the configuration"]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"verification-2","__idx":13},"children":["Verification"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After deployment, restart Claude Code on target devices, then:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Run ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/hooks"]}," in Claude Code to confirm all hooks are listed"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Start a session and verify events appear in the Capsule Security portal"]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"key-considerations","__idx":14},"children":["Key Considerations"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The preinstall scripts ensure target directories exist with proper permissions before file deployment"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Restart each application on target devices after deployment for hooks to take effect"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Updates can be deployed by modifying the Custom App and incrementing the version"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use Kandji Smart Groups for dynamic targeting and staged rollouts"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["All three integrations can be deployed as separate Custom Apps and assigned independently"]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"support","__idx":15},"children":["Support"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For help with deployment:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Email"]},": support@capsule.security"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Include"]},": Your organization ID, Kandji tenant details, and any error messages"]}]}]},"headings":[{"value":"Kandji Distribution (macOS)","id":"kandji-distribution-macos","depth":1},{"value":"Prerequisites","id":"prerequisites","depth":2},{"value":"Cursor","id":"cursor","depth":2},{"value":"Step 1: Download the Configuration","id":"step-1-download-the-configuration","depth":3},{"value":"Step 2: Create the Custom App","id":"step-2-create-the-custom-app","depth":3},{"value":"Verification","id":"verification","depth":3},{"value":"GitHub Copilot","id":"github-copilot","depth":2},{"value":"Step 1: Download the Configuration","id":"step-1-download-the-configuration-1","depth":3},{"value":"Step 2: Create the Custom App","id":"step-2-create-the-custom-app-1","depth":3},{"value":"Verification","id":"verification-1","depth":3},{"value":"Claude Code","id":"claude-code","depth":2},{"value":"Step 1: Download the Configuration","id":"step-1-download-the-configuration-2","depth":3},{"value":"Step 2: Create the Custom App","id":"step-2-create-the-custom-app-2","depth":3},{"value":"Verification","id":"verification-2","depth":3},{"value":"Key Considerations","id":"key-considerations","depth":2},{"value":"Support","id":"support","depth":2}],"frontmatter":{"seo":{"title":"Kandji Distribution (macOS)"}},"lastModified":"2026-03-18T17:35:58.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/mdm-kandji","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}