Create, manage, and run scheduled automated tasks (cron jobs) in Clacky. Use this skill whenever the user wants to create a new automated task or cron job, set up recurring automation, schedule something to run daily/weekly/hourly, view all scheduled tasks, edit an existing task prompt or cron schedule, enable or disable a task, delete a task, check task run history or logs, or run a task immediately via the WebUI. Trigger on phrases like cron, scheduled task, run every day, automate this; 定时任务, 每天自动, 定时执行.
A skill for creating, managing, and running scheduled automated tasks in Clacky.
Storage:
~/.clacky/tasks/<name>.md # Task prompt file (self-contained AI instruction)
~/.clacky/schedules.yml # All scheduled plans (YAML list)
~/.clacky/logger/clacky-*.log # Execution logs (daily rotation)
API Base: http://${CLACKY_SERVER_HOST}:${CLACKY_SERVER_PORT}
Cron-Tasks API (unified — manages task file + schedule together):
GET /api/cron-tasks → list all cron tasks with schedule info
POST /api/cron-tasks → create task + schedule {name, content, cron, enabled?}
PATCH /api/cron-tasks/:name → update {content?, cron?, enabled?}
DELETE /api/cron-tasks/:name → delete task file + schedule
POST /api/cron-tasks/:name/run → execute immediately (creates a new session)| Expression | Meaning |
|---|---|
0 9 * * 1-5 | Weekdays at 09:00 |
0 9 * * * | Every day at 09:00 |
0 */2 * * * | Every 2 hours |
*/30 * * * * | Every 30 minutes |
0 19 * * * | Every day at 19:00 |
0 8 * * 1 | Every Monday at 08:00 |
0 0 1 * * | First day of every month |
Field order: minute hour day-of-month month day-of-week
curl -s http://${CLACKY_SERVER_HOST}:${CLACKY_SERVER_PORT}/api/cron-tasksDisplay each task: name, cron schedule, enabled status, content preview.
If no tasks exist, inform the user and offer to create one or show templates.
Key tip: Remind the user that the Clacky WebUI Task Panel (sidebar → Tasks) also shows all tasks and supports direct management.
Step 1: Gather required info (only ask for what's missing)
Step 2: Generate task name
[a-z0-9_-], lowercase, no spacesdaily_report, price_monitor, weekly_summaryStep 3: Write the task prompt
The prompt must be:
Good task prompt example:
You are a price monitoring assistant. Complete the following task:
## Goal
Check the current BTC price on CoinGecko, compare with yesterday's price, and log an alert if the change exceeds 5%.
## Steps
1. Fetch https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd&include_24hr_change=true
2. Parse the JSON response to get current price and 24h change
3. If |change| > 5%, write an alert to ~/price_alerts/alert_YYYY-MM-DD.txt
4. Print the current price and change percentage
Execute immediately.Step 4: Create via API
curl -s -X POST http://${CLACKY_SERVER_HOST}:${CLACKY_SERVER_PORT}/api/cron-tasks \
-H "Content-Type: application/json" \
-d '{
"name": "task_name",
"content": "task prompt content...",
"cron": "0 9 * * *",
"enabled": true
}'Step 5: Confirm creation
✅ Task created successfully!
📋 Task name: daily_standup
⏰ Schedule: Weekdays at 09:00 (cron: 0 9 * * 1-5)
View and manage this task in the Clacky WebUI → Tasks panel. Click ▶ Run to execute immediately.Step 1: Identify the task (if unclear, LIST first and ask)
Step 2: Show current state via LIST or ask user to confirm
Step 3: Update via API
# Update content only
curl -s -X PATCH http://${CLACKY_SERVER_HOST}:${CLACKY_SERVER_PORT}/api/cron-tasks/task_name \
-H "Content-Type: application/json" \
-d '{"content": "new prompt content..."}'
# Update cron schedule only
curl -s -X PATCH http://${CLACKY_SERVER_HOST}:${CLACKY_SERVER_PORT}/api/cron-tasks/task_name \
-H "Content-Type: application/json" \
-d '{"cron": "0 8 * * 1-5"}'
# Update both
curl -s -X PATCH http://${CLACKY_SERVER_HOST}:${CLACKY_SERVER_PORT}/api/cron-tasks/task_name \
-H "Content-Type: application/json" \
-d '{"content": "...", "cron": "0 8 * * 1-5"}'Step 4: Confirm changes
✅ Task updated!
📋 daily_standup
Schedule: 0 9 * * 1-5 → 0 8 * * 1-5 (now weekdays at 08:00)# Disable
curl -s -X PATCH http://${CLACKY_SERVER_HOST}:${CLACKY_SERVER_PORT}/api/cron-tasks/task_name \
-H "Content-Type: application/json" \
-d '{"enabled": false}'
# Enable
curl -s -X PATCH http://${CLACKY_SERVER_HOST}:${CLACKY_SERVER_PORT}/api/cron-tasks/task_name \
-H "Content-Type: application/json" \
-d '{"enabled": true}'Confirm:
✅ daily_standup has been disabled.
To re-enable: say "enable daily_standup"Always confirm before deleting (unless the user has explicitly said to delete):
⚠️ Are you sure you want to delete daily_standup? This cannot be undone.curl -s -X DELETE http://${CLACKY_SERVER_HOST}:${CLACKY_SERVER_PORT}/api/cron-tasks/task_nameRead the daily log files directly:
grep "task_name" ~/.clacky/logger/clacky-$(date +%Y-%m-%d).log | tail -20Or search across recent days:
grep -h "task_name" ~/.clacky/logger/clacky-*.log | tail -30Display format:
📊 Run History: ai_news_x_daily
Mar 10 19:00 ❌ Failed — JSON::ParserError: unexpected end of input
Mar 09 19:00 ✅ Success — took 1m 42s
Mar 08 19:00 ✅ Success — took 2m 10scurl -s -X POST http://${CLACKY_SERVER_HOST}:${CLACKY_SERVER_PORT}/api/cron-tasks/task_name/runThis creates a new session. Tell the user:
▶️ Task started in a new session.
View it in the Clacky WebUI → Sessions panel.When user says "what templates are there" or "what can I automate":
📚 Common Task Templates — pick one to get started:
1. 📰 AI News Digest — Daily fetch of AI news from X/RSS, generate Markdown report
2. 💰 Price Monitor — Check crypto/stock prices on a schedule, log alerts on anomalies
3. 📊 Weekly Work Summary — Every Monday, summarize last week's work into a report
4. 🌤 Weather Reminder — Fetch weather every morning and save to file
5. 🔍 Competitor Monitor — Periodically scrape competitor sites for changes
6. 📝 Journal Prompt — Evening reminder to journal with daily reflection questions
7. 🔗 Link Health Check — Periodically verify specified URLs are accessible
8. 📂 File Backup — Regularly back up a specified directory to another location
Tell me which one interests you, or describe your own use case![a-z0-9_-], no spaces, no uppercaseclacky-ai/openclacky
e7b898f
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.