Sentinel: macOS Installation
Install and configure the Sentinel Agent on macOS for AI tool monitoring and DLP enforcement.
System Requirements
- OS: macOS 10.13 (High Sierra) or later, up to macOS 14 (Sonoma)
- Architecture: Intel x86-64 and Apple Silicon (M1/M2/M3)
- Memory: 256MB minimum, 512MB recommended
- Disk Space: 100MB for installation
- Permissions: Administrator password required for installation
Installation Methods
1. Homebrew (Recommended)
Install Homebrew (if needed):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Install Sentinel:
brew tap truthvouch/sentinelbrew install sentinelWith API Key:
brew install sentinel \ --with-api-key="sk-..." \ --with-org-id="org-..."Upgrade:
brew upgrade sentinelUninstall:
brew uninstall sentinel2. DMG Installer
Download:
https://download.truthvouch.io/sentinel/macos/latestInstallation:
- Download
Sentinel.dmg - Double-click to open disk image
- Drag “Sentinel” to “Applications” folder
- Open System Preferences → Security & Privacy
- Grant accessibility permissions when prompted
- Restart computer
3. Command Line Script
# Download and run installercurl -fsSL https://download.truthvouch.io/sentinel/macos/install.sh | bash -s -- \ --api-key "sk-..." \ --org-id "org-..."First-Time Setup
1. Accessibility Permissions
Sentinel requires full disk access to monitor AI tools:
Manually grant permissions:
- Open System Preferences
- Security & Privacy → Privacy
- Full Disk Access
- Add
/Applications/Sentinel.app - Add
/usr/local/opt/sentinel/bin/sentinel(if installed via Homebrew)
Grant via command line:
# Open Privacy settingsopen "x-apple.systempreferences:com.apple.preference.security?Privacy_FullDiskAccess"2. Configure API Key
Edit configuration file:
nano ~/.truthvouch/sentinel/config.yamlAdd:
cloud: api_key: sk-... organization_id: org-...3. Start Agent
Using Homebrew:
brew services start sentinelUsing LaunchControl/LaunchRocket:
Applications → Utilities → LaunchControlFind "io.truthvouch.sentinel" → StartManual start:
launchctl load ~/Library/LaunchAgents/io.truthvouch.sentinel.plist4. Verify Installation
# Check if daemon is runninglaunchctl list | grep truthvouch
# View logslog stream --predicate 'process == "sentinel"' --level debug
# Check service statusbrew services list | grep sentinelConfiguration
Config File Location
~/.truthvouch/sentinel/config.yamlOr system-wide:
/usr/local/etc/truthvouch/sentinel/config.yamlEdit Configuration
# Edit user confignano ~/.truthvouch/sentinel/config.yaml
# Reload daemonlaunchctl unload ~/Library/LaunchAgents/io.truthvouch.sentinel.plistlaunchctl load ~/Library/LaunchAgents/io.truthvouch.sentinel.plistLaunchDaemon Setup
Location
/Library/LaunchDaemons/io.truthvouch.sentinel.plistManual Registration
sudo cp /usr/local/opt/sentinel/io.truthvouch.sentinel.plist \ /Library/LaunchDaemons/
sudo launchctl load /Library/LaunchDaemons/io.truthvouch.sentinel.plist
sudo launchctl start io.truthvouch.sentinelControl Daemon
# Startsudo launchctl start io.truthvouch.sentinel
# Stopsudo launchctl stop io.truthvouch.sentinel
# Restartsudo launchctl stop io.truthvouch.sentinel && sleep 2 && \sudo launchctl start io.truthvouch.sentinel
# View statussudo launchctl list | grep sentinel
# View logslog stream --predicate 'process == "sentinel"' --level debugMDM Deployment
Deploy Sentinel via Mobile Device Management (Jamf, Kandji, MOSYLE):
Jamf Pro
Create Smart Group:
- Criteria: All Computers → Scope
Create Policy:
- Deployment → Software
- Add “Sentinel.dmg”
- Scripts → Add install script
- Execution Frequency: Once per computer
Installation Script:
#!/bin/bash
# Download DMGcurl -o /tmp/Sentinel.dmg https://download.truthvouch.io/sentinel/macos/latest
# Mount DMGhdiutil attach /tmp/Sentinel.dmg
# Install appcp -r /Volumes/Sentinel/Sentinel.app /Applications/
# Unmount DMGhdiutil detach /Volumes/Sentinel
# Grant permissionssudo chmod +x /Applications/Sentinel.app/Contents/MacOS/sentinel
# Configuredefaults write ~/.truthvouch/sentinel/config.yaml \ -dict cloud \ -dict api_key "sk-..." \ organization_id "org-..."
# Start daemonlaunchctl load ~/Library/LaunchAgents/io.truthvouch.sentinel.plist
exit 0Kandji Catalog
Create custom profile with:
- App installer:
Sentinel.dmg - Configuration: API key via environment variables
- Post-install script: Grant accessibility permissions
Uninstallation
Via Homebrew
brew uninstall sentinelbrew tap-delete truthvouch/sentinelVia DMG
# Stop daemonlaunchctl unload ~/Library/LaunchAgents/io.truthvouch.sentinel.plist
# Remove apprm -rf /Applications/Sentinel.app
# Remove configrm -rf ~/.truthvouch/
# Remove launch agentrm ~/Library/LaunchAgents/io.truthvouch.sentinel.plistAuto-Update
Enable Auto-Update
advanced: auto_update: true update_check_interval: 24Manual Update
# Check for updatessentinel --check-update
# Install updatesentinel --install-update
# Or reinstall via Homebrewbrew upgrade sentinelLogs
View Logs
# Real-time logslog stream --predicate 'process == "sentinel"' --level debug
# Last 100 lineslog stream --predicate 'process == "sentinel"' --max 100
# Save to filelog stream --predicate 'process == "sentinel"' > sentinel.log 2>&1Log File Locations
~/.truthvouch/sentinel/logs//var/log/sentinel.log (system-wide)Permissions and Entitlements
Sentinel requires:
- Full Disk Access — Monitor all processes and files
- Network Access — Outbound HTTPS to TruthVouch cloud
- Accessibility — Monitor application windows (if enabled)
- Camera/Microphone — None (not required)
Firewall Configuration
Add Firewall Exception
# Allow outbound HTTPSsudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /Applications/Sentinel.app/Contents/MacOS/sentinelsudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /Applications/Sentinel.app/Contents/MacOS/sentinelNetwork Requirements
Sentinel requires outbound HTTPS to:
https://api.truthvouch.io- Your custom endpoint (if configured)
Troubleshooting
Permissions Issues
# Check accessibility permissionsioreg -l | grep "Sentinel"
# Request permissionsopen "x-apple.systempreferences:com.apple.preference.security?Privacy_FullDiskAccess"
# Check file permissionsls -la ~/.truthvouch/Service Won’t Start
# Check daemon statuslaunchctl list | grep truthvouch
# Check logs for errorslog stream --predicate 'process == "sentinel"'
# Manually test/usr/local/bin/sentinel --config ~/.truthvouch/sentinel/config.yamlNetwork Issues
# Test API connectivitycurl -I https://api.truthvouch.io
# Check DNS resolutionnslookup api.truthvouch.io
# View network connectionsnetstat -an | grep 443High CPU Usage
# Monitor CPUtop -o %CPU | grep sentinel
# Check configcat ~/.truthvouch/sentinel/config.yaml | grep monitoring
# Reduce monitoring scopesed -i '' 's/clipboard_monitoring: true/clipboard_monitoring: false/' \ ~/.truthvouch/sentinel/config.yamlPerformance Optimization
Reduce Memory Usage
Edit config.yaml:
database: max_size_mb: 50
monitoring: clipboard_monitoring: false network_monitoring: falseSelective Monitoring
monitoring: tools: - name: "ChatGPT" enabled: true - name: "Unused Tool" enabled: falseIntegration with Company IT
For corporate deployment:
Share via Homebrew Tap:
# Create custom tap with your company's Sentinel packagebrew tap company/sentinel https://github.com/company/homebrew-sentinel
# Deploy via MDM scriptbrew install company/sentinel/sentinelCreate Installation Package:
# Create pkg installerproductbuild --component /Applications/Sentinel.app \ /Applications \ --version 1.0.0 \ Sentinel-1.0.0.pkgSee Configuration Reference for detailed options and Policy Sync for managing policies.