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_TOKENApple 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_TOKENDownload Links
| Architecture | Download 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.agentView Logs
bash
# System log
log show --predicate 'subsystem == "io.slimrmm.agent"' --last 1h
# Or using log file
tail -f /var/log/slimrmm-agent.logLaunchDaemon 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:
- Open System Preferences → Security & Privacy
- Select Privacy tab
- Click Full Disk Access
- Click the lock to make changes
- Click + and add
/usr/local/bin/slimrmm-agent
Screen Recording (for Remote Desktop)
- Open System Preferences → Security & Privacy
- Select Privacy tab
- Click Screen Recording
- 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.pkgPostinstall 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 0Uninstallation
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.logFirewall Configuration
macOS Application Firewall typically allows outbound connections. If configured to block:
- Open System Preferences → Security & Privacy
- Select Firewall tab
- Click Firewall Options
- Add
slimrmm-agentand 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 30mConnection Issues
bash
# Test connectivity
curl -I https://your-server.com/health
# Check network
networksetup -getinfo "Wi-Fi"
# DNS lookup
host your-server.comCertificate 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.pemDebug 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.plistGatekeeper Issues
If macOS blocks the agent:
bash
# Remove quarantine attribute
sudo xattr -r -d com.apple.quarantine /usr/local/bin/slimrmm-agentOr 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