必须使用launchd配置:LaunchAgent适用于用户登录后定时任务,LaunchDaemon可实现合盖唤醒与无人值守运行,二者均需正确编写plist文件并加载服务。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在 macOS 上让 OpenClaw 按固定时间自动执行任务(比如每天早8点抓取邮件、每小时同步一次笔记),必须绕过其默认的 Heartbeat 机制,直接对接系统级调度框架 launchd——否则合盖睡眠后任务必然中断,且无法保证精确触发。
配置 LaunchAgent 实现用户登录态定时唤醒
此方式适用于你本人登录 macOS 后长期保持账户活跃的场景,任务随用户会话启动,无需 root 权限,适合日常办公自动化。
打开终端,进入用户服务目录:cd ~/Library/LaunchAgents
创建任务配置文件:nano com.openclaw.daily-report.plist
粘贴以下内容(【务必把 /Users/yourname/.openclaw 中的 yourname 替换为你真实的用户名】):
<?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>com.openclaw.daily-report</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/python3</string>
<string>/Users/yourname/.openclaw/scripts/daily_report.py</string>
</array>
<key>WorkingDirectory</key>
<string>/Users/yourname/.openclaw</string>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>8</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
<key>StandardOutPath</key>
<string>/Users/yourname/.openclaw/logs/daily_report.out</string>
<key>StandardErrorPath</key>
<string>/Users/yourname/.openclaw/logs/daily_report.err</string>
</dict>
</plist>
保存退出:Control+O → 回车 → Control+X。
加载服务:launchctl load ~/Library/LaunchAgents/com.openclaw.daily-report.plist
立即测试执行:launchctl start com.openclaw.daily-report
启用 LaunchDaemon 实现合盖唤醒与无人值守运行
当你需要 OpenClaw 在电脑合盖、休眠甚至未登录状态下仍准时执行关键任务(如凌晨备份数据、定时上传日志),必须使用系统级守护进程 LaunchDaemon。它由 root 权限管理,可响应电源状态变化并唤醒系统。
第一步:将 OpenClaw 的 CLI 工具路径加入系统 PATH。编辑 /etc/paths.d/openclaw,写入:/usr/local/bin(若你用 brew 安装)或 /opt/homebrew/bin(Apple Silicon 默认路径)。
第二步:创建系统级配置文件:sudo nano /Library/LaunchDaemons/com.openclaw.backup.plist
第三步:填入以下内容(注意 【Key 和 ProgramArguments 必须严格对齐缩进,任意空格错位会导致 launchctl load 失败】):
<?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>com.openclaw.backup</string>
<key>ProgramArguments</key>
<array>
<string>openclaw</string>
<string>run</string>
<string>--task</string>
<string>backup-now</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>3</integer>
<key>Minute</key>
<integer>15</integer>
</dict>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<false/>
<key>StandardOutPath</key>
<string>/var/log/openclaw-backup.log</string>
</dict>
</plist>
第四步:赋予读权限:sudo chmod 644 /Library/LaunchDaemons/com.openclaw.backup.plist
第五步:加载并启动:sudo launchctl load /Library/LaunchDaemons/com.openclaw.backup.plist → sudo launchctl start com.openclaw.backup
验证与故障排查
检查任务是否注册成功:launchctl list | grep openclaw。若返回空行,说明 plist 文件未被识别,重点检查文件路径、命名是否含非法字符、XML 格式是否闭合。
查看最近一次执行日志:tail -20 /var/log/openclaw-backup.log。如果日志为空但 launchctl list 显示 PID,说明 OpenClaw CLI 未正确安装或未加入 PATH。
强制触发一次(仅限 LaunchAgent):launchctl kickstart -k user/$(id -u)/com.openclaw.daily-report。LaunchDaemon 不支持 kickstart,需用 start 命令。
若任务在睡眠后未唤醒,确认系统设置中已开启「唤醒以供网络访问」和「电源适配器供电时允许唤醒」:前往「系统设置」→「电池」→「电源适配器」→ 勾选对应选项。


















