一键导入
macos-task-scheduler
Schedule recurring tasks on macOS using launchd plists
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Schedule recurring tasks on macOS using launchd plists
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
MCP server providing browser automation tools that bypass Cloudflare, LinkedIn, Indeed, and other WAF-protected sites using agent-browser with anti-detection stealth.
Delegate coding/tasks to pi CLI over RPC with persistent, resumable sessions.
Browser automation via agent-browser CLI (Vercel Labs). Headless Chrome navigation, snapshots, clicks, fills, screenshots, eval, and batch flows for web research, UI testing, and QA.
Manifest V3 Chrome extension that patches browser fingerprint vectors at document_start for WAF bypass
Hermes-native tool plugin for controlling pi --mode rpc sessions with full lifecycle management
Build three essential docs for AI agent context: personal constitution, goals, and business strategy. Based on Allie Miller's framework.
| name | macos-task-scheduler |
| description | Schedule recurring tasks on macOS using launchd plists |
| version | 1.0.0 |
| author | Dustin Chadwick (@ShaggyD) |
| tags | ["macos","automation","launchd","scheduling"] |
Create and manage macOS launchd plist files for scheduled tasks.
Setting up recurring tasks on macOS means writing XML plist files with the right keys, figuring out the scheduling syntax, and remembering the right load, unload, and start commands. One typo in the XML and launchctl silently ignores your job.
A skill that handles the full launchd lifecycle: generates plist files with correct XML structure, manages scheduling with StartCalendarInterval and StartInterval syntax, and covers load, unload, start, and stop commands so you don't have to remember them.
Schedule scripts without touching raw XML or digging through man pages. One reference covers the complete plist template, the common gotchas, and the exact commands to make launchd run your task.
<?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.yourname.taskname</string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>-l</string>
<string>-c</string>
<string>YOUR COMMAND HERE</string>
</array>
<key>StartCalendarInterval</key>
<array>
<dict>
<key>Minute</key><integer>0</integer>
<key>Hour</key><integer>9</integer>
</dict>
</array>
<key>WorkingDirectory</key>
<string>/path/to/project</string>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/usr/local/bin:/usr/bin:/bin</string>
</dict>
<key>StandardOutPath</key>
<string>/path/to/project/taskname.log</string>
<key>StandardErrorPath</key>
<string>/path/to/project/taskname.error.log</string>
</dict>
</plist>
/bin/bash -l -c wrapper| Command | Description |
|---|---|
launchctl load path/to/plist | Register task |
launchctl unload path/to/plist | Remove task |
launchctl start com.name.task | Run immediately |
launchctl list | grep taskname | Check status |
<!-- Daily at 9:30 AM -->
<dict>
<key>Minute</key><integer>30</integer>
<key>Hour</key><integer>9</integer>
</dict>
<!-- Every hour -->
<dict>
<key>Minute</key><integer>0</integer>
</dict>
<!-- Weekly on Sundays at 10 AM -->
<dict>
<key>Minute</key><integer>0</integer>
<key>Hour</key><integer>10</integer>
<key>Weekday</key><integer>0</integer>
</dict>
<!-- First day of month at midnight -->
<dict>
<key>Minute</key><integer>0</integer>
<key>Hour</key><integer>0</integer>
<key>Day</key><integer>1</integer>
</dict>
ls -la ~/Library/LaunchAgents/
launchctl list | grep -E "com\.yourname\."
launchctl unload ~/Library/LaunchAgents/com.yourname.taskname.plist
rm ~/Library/LaunchAgents/com.yourname.taskname.plist