بنقرة واحدة
cron-manager
// Plan, create, edit, remove, list, and test scheduled cron jobs. Each cron job runs as an AI agent session — use the plan→build→create workflow to keep sessions efficient.
// Plan, create, edit, remove, list, and test scheduled cron jobs. Each cron job runs as an AI agent session — use the plan→build→create workflow to keep sessions efficient.
Manage ZSA keyboard layouts via the oryx-bench CLI. Use when discussing keyboard layouts, key bindings, layer changes, achordion, tap-hold, custom keycodes, key overrides, combos, ZSA, Oryx, Keymapp, QMK, or the ZSA Voyager. v0.1 supports the Voyager geometry only — Moonlander/Ergodox are tracked for a future release. Supports both Oryx-mode (visual editor + local code) and local-only mode (no cloud dependency).
Scaffold new OpenClaw skills with correct directory structure, SKILL.md, and run.ts template.
Persistent task queue for tracking issues, user tasks, improvements, and followups. Survives context resets.
Track asset prices (BTC, etc.) and alert on percentage drops within a time window. Uses CoinGecko API.
Fetch and filter job board listings. Returns structured JSON.
Fetch and parse RSS/Atom feeds. Returns structured JSON.
| name | cron-manager |
| description | Plan, create, edit, remove, list, and test scheduled cron jobs. Each cron job runs as an AI agent session — use the plan→build→create workflow to keep sessions efficient. |
| user-invocable | false |
Use this skill for ANY task that needs to happen on a schedule or repeatedly:
Key insight: Each cron run is a full AI agent session — expensive if done frequently. The plan subcommand helps you decide when a backing skill is needed to keep sessions lightweight.
NEVER do any of these instead of using this skill:
crontab -e or create systemd timers~/.openclaw/cron/jobs.json directlyopenclaw cron add, openclaw cron edit, or openclaw cron rm directlywhile sleep loops or use watch for recurring tasksAll of the above bypass version control and the sync system. Use this skill instead.
ALWAYS start with plan — never jump straight to create.
./run.ts plan --task "Track BTC price, alert on 5% drop in 1h" --schedule "*/15 * * * *"
The plan returns:
script-only (skill does everything), script-agent (skill gathers data, agent interprets), or agent-only (full reasoning needed)If skillSpec.needed is true:
skill-scaffold create --name "<skillSpec.suggestedName>" --description "<skillSpec.description>"
Then implement the logic in skills/<name>/run.ts:
--help, exit codes, JSON output./skills/<name>/run.ts --help and a real invocationAdd the symlink to module.nix and rebuild.
./run.ts create --name "BTC Monitor" --schedule "*/15 * * * *" \
--requires price-monitor \
--prompt "Run price-monitor check --asset btc --threshold 5 --window 1h. If alert: false, end silently. If alert: true, send details via WhatsApp."
The --requires flag validates that referenced skills exist before creating the YAML.
./run.ts list
./run.ts plan --task "description" --schedule "cron expression"
./run.ts create --name "Job Name" --schedule "0 8 * * *" --prompt "Instructions" [--requires skill1,skill2]
./run.ts edit --name "Job Name" [--schedule "..."] [--prompt "..."] [--session main|isolated]
./run.ts remove --name "Job Name"
./run.ts list [--verbose]
./run.ts test --name "Job Name"
./run.ts --help
script-only (monitoring):
# Plan identifies: high-frequency + monitoring → script-only, needs price-monitor skill
./run.ts plan --task "Track BTC price, alert on 5% drop" --schedule "*/15 * * * *"
# After building the skill:
./run.ts create --name "BTC Monitor" --schedule "*/15 * * * *" --requires price-monitor \
--prompt "Run price-monitor check --asset btc --threshold 5 --window 1h. If no alert, end silently. If alert, send via WhatsApp."
script-agent (digest):
# Plan identifies: data gathering + digest → script-agent, use existing job-scanner skill
./run.ts plan --task "Scan job boards and send top matches" --schedule "0 8 * * *"
# job-scanner already exists:
./run.ts create --name "Job Scan AM" --schedule "0 8 * * *" --requires job-scanner,job-tracker \
--prompt "Run job-scanner --new-only. Filter results for roles matching Enrique's profile (see LORE.md). Add top matches via job-tracker add. Draft top-5 digest. Send to Enrique via WhatsApp. Approval required."
agent-only (reasoning):
# Plan identifies: reasoning-heavy → agent-only, no skill needed
./run.ts plan --task "Weekly self-audit of performance" --schedule "30 10 * * 0"
./run.ts create --name "Self-Audit" --schedule "30 10 * * 0" \
--prompt "Weekly Self-Audit. Review your performance for the past week..."
JSON to stdout. Each subcommand returns a structured result:
{ "action": "plan", "tier": "script-only", "skillSpec": { "needed": true, "suggestedName": "price-monitor", ... }, "suggestedPrompt": "...", "workflow": [...] }
{ "action": "created", "name": "BTC Monitor", "file": "btc-monitor.yaml", "requires": ["price-monitor"], "syncResult": "..." }
This skill manages YAML files in /etc/nixos/openclaw/cron/jobs/ and runs cron-sync to register changes with the gateway. You don't need to understand the internals — just use the CLI commands above.