Skip to content

macOS Agent Installation

This guide covers installing the SlimRMM agent on macOS systems.

Supported Versions

  • macOS 11 (Big Sur)
  • macOS 12 (Monterey)
  • macOS 13 (Ventura)
  • macOS 14 (Sonoma)
  • macOS 15 (Sequoia)

Supported Architectures

  • Intel (x64)
  • Apple Silicon (ARM64) - M1, M2, M3, M4

Prerequisites

  • Administrator privileges (sudo access)
  • Network access to SlimRMM server (HTTPS/443)
  • Full Disk Access permission (for some features)

Quick Installation

Intel Mac

bash
# Download agent
curl -L -o slimrmm-agent https://your-server.com/api/v1/download/agent/darwin-amd64

# Make executable
chmod +x slimrmm-agent

# Install
sudo ./slimrmm-agent --install \
  --server https://your-server.com \
  --token YOUR_ENROLLMENT_TOKEN

Apple Silicon (M1/M2/M3/M4)

bash
# Download ARM64 agent
curl -L -o slimrmm-agent https://your-server.com/api/v1/download/agent/darwin-arm64

# Make executable
chmod +x slimrmm-agent

# Install
sudo ./slimrmm-agent --install \
  --server https://your-server.com \
  --token YOUR_ENROLLMENT_TOKEN
ArchitectureDownload Path
Intel (x64)/api/v1/download/agent/darwin-amd64
Apple Silicon/api/v1/download/agent/darwin-arm64

Service Management

SlimRMM uses launchd for service management.

launchctl Commands

bash
# Check status
sudo launchctl list | grep slimrmm

# Load/Start service
sudo launchctl load /Library/LaunchDaemons/io.slimrmm.agent.plist

# Unload/Stop service
sudo launchctl unload /Library/LaunchDaemons/io.slimrmm.agent.plist

# Restart (kickstart)
sudo launchctl kickstart -k system/io.slimrmm.agent

View Logs

bash
# System log
log show --predicate 'subsystem == "io.slimrmm.agent"' --last 1h

# Or using log file
tail -f /var/log/slimrmm-agent.log

LaunchDaemon Configuration

Location: /Library/LaunchDaemons/io.slimrmm.agent.plist

xml
<?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>Label</key>
    <string>io.slimrmm.agent</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/slimrmm-agent</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
    <key>StandardOutPath</key>
    <string>/var/log/slimrmm-agent.log</string>
    <key>StandardErrorPath</key>
    <string>/var/log/slimrmm-agent.log</string>
</dict>
</plist>

Configuration

Configuration File

Location: /var/lib/slimrmm/.slimrmm_config.json

json
{
  "server": "https://your-server.com",
  "uuid": "550e8400-e29b-41d4-a716-446655440000",
  "mtls_enabled": true,
  "log_level": "info"
}

Certificate Storage

  • Certificate: /var/lib/slimrmm/cert.pem
  • Private Key: /var/lib/slimrmm/key.pem
  • CA Certificate: /var/lib/slimrmm/ca.pem

Permissions

Full Disk Access

For complete system monitoring, grant Full Disk Access:

  1. Open System PreferencesSecurity & Privacy
  2. Select Privacy tab
  3. Click Full Disk Access
  4. Click the lock to make changes
  5. Click + and add /usr/local/bin/slimrmm-agent

Screen Recording (for Remote Desktop)

  1. Open System PreferencesSecurity & Privacy
  2. Select Privacy tab
  3. Click Screen Recording
  4. Add slimrmm-agent

MDM Deployment

For enterprise deployment via Jamf, Kandji, or other MDM:

Package Creation

bash
# Create package structure
mkdir -p /tmp/slimrmm-pkg/usr/local/bin
mkdir -p /tmp/slimrmm-pkg/Library/LaunchDaemons
mkdir -p /tmp/slimrmm-pkg/var/lib/slimrmm

# Copy files
cp slimrmm-agent /tmp/slimrmm-pkg/usr/local/bin/
cp io.slimrmm.agent.plist /tmp/slimrmm-pkg/Library/LaunchDaemons/

# Build package
pkgbuild --root /tmp/slimrmm-pkg \
         --identifier io.slimrmm.agent \
         --version 1.0.0 \
         --scripts /tmp/scripts \
         slimrmm-agent.pkg

Postinstall Script

bash
#!/bin/bash
# postinstall

# Configure agent
/usr/local/bin/slimrmm-agent --configure \
  --server "https://your-server.com" \
  --token "YOUR_TOKEN"

# Load service
launchctl load /Library/LaunchDaemons/io.slimrmm.agent.plist

exit 0

Uninstallation

bash
# Stop and unload service
sudo launchctl unload /Library/LaunchDaemons/io.slimrmm.agent.plist

# Remove files
sudo rm /usr/local/bin/slimrmm-agent
sudo rm /Library/LaunchDaemons/io.slimrmm.agent.plist
sudo rm -rf /var/lib/slimrmm

# Remove logs
sudo rm /var/log/slimrmm-agent.log

Firewall Configuration

macOS Application Firewall typically allows outbound connections. If configured to block:

  1. Open System PreferencesSecurity & Privacy
  2. Select Firewall tab
  3. Click Firewall Options
  4. Add slimrmm-agent and set to "Allow incoming connections"

Troubleshooting

Agent Won't Start

bash
# Check launchd status
sudo launchctl list | grep slimrmm

# View detailed error
sudo launchctl error system/io.slimrmm.agent

# Check logs
log show --predicate 'subsystem == "io.slimrmm.agent"' --last 30m

Connection Issues

bash
# Test connectivity
curl -I https://your-server.com/health

# Check network
networksetup -getinfo "Wi-Fi"

# DNS lookup
host your-server.com

Certificate Errors

bash
# Check certificate validity
openssl x509 -in /var/lib/slimrmm/cert.pem -noout -dates

# Verify chain
openssl verify -CAfile /var/lib/slimrmm/ca.pem /var/lib/slimrmm/cert.pem

Debug Mode

bash
# Stop service
sudo launchctl unload /Library/LaunchDaemons/io.slimrmm.agent.plist

# Run in foreground with debug
sudo /usr/local/bin/slimrmm-agent --debug

# When done, restart service
sudo launchctl load /Library/LaunchDaemons/io.slimrmm.agent.plist

Gatekeeper Issues

If macOS blocks the agent:

bash
# Remove quarantine attribute
sudo xattr -r -d com.apple.quarantine /usr/local/bin/slimrmm-agent

Or allow in Security preferences after first run attempt.

Security Considerations

  • Agent runs as root via launchd
  • Certificates stored with restricted permissions (600)
  • All communication encrypted with TLS 1.3
  • mTLS provides mutual authentication
  • Consider Full Disk Access implications

Released under the MIT License.