Commands, package names, and image names on this page come from the open-source project that Mibyan Desktop is built on, and can differ from the Mibyan Desktop installer. For the supported Mibyan install and update path, see Install and update.
Key ConceptCron jobs run in fresh agent sessions with no memory of your current chat. Prompts must be completely self-contained — include everything the agent needs to know.
Pattern 1: Website Change Monitor
Watch a URL for changes and get notified only when something is different. Thescript parameter is the secret weapon here. A Python script runs before each execution, and its stdout becomes context for the agent. The script handles the mechanical work (fetching, diffing); the agent handles the reasoning (is this change interesting?).
Create the monitoring script:
~/.mibyan/scripts/watch-site.py
Pattern 2: Weekly Report
Compile information from multiple sources into a formatted summary. This runs once a week and delivers to your home channel.0 9 * * 1 is a standard cron expression: 9:00 AM every Monday.
Pattern 3: GitHub Repository Watcher
Monitor a repository for new issues, PRs, or releases.Pattern 4: Data Collection Pipeline
Scrape data at regular intervals, save to files, and detect trends over time. This pattern combines a script (for collection) with the agent (for analysis).~/.mibyan/scripts/collect-prices.py
Pattern 5: Multi-Skill Workflow
Chain skills together for complex scheduled tasks. Skills are loaded in order before the prompt executes.arxiv first (teaches the agent how to search papers), then obsidian (teaches how to write notes). The prompt ties them together.
Managing Your Jobs
Delivery Targets
The--deliver flag controls where results go:
Bot Chat delivery
bot-chat targets deliver the job’s output into a profile’s canonical “Bot
Chat” session as a real message — the bot receives it like any other message,
acts on anything that needs action, and responds in that chat. This is the
target to use when you want a bot to see and react to scheduled output
instead of just having it archived in Run history.
Things to know:
- Machine-local. The profile must exist on the machine running the
scheduler (
mibyan profile list). Names are validated at create time; profiles on other gateways/machines cannot be targeted. - Costs a bot turn. Each delivery runs a full agent turn in the target bot’s Bot Chat — budget accordingly for high-frequency jobs.
- Combinable.
--deliver bot-chat,telegramposts to the bot AND your Telegram home channel. Thealltoken never expands to bot-chat targets. - The delivered message is prefixed so the bot knows it came from a scheduled job, not from you.
Tips
Make prompts self-contained. The agent in a cron job has no memory of your conversations. Include URLs, repo names, format preferences, and delivery instructions directly in the prompt. Use[SILENT] deliberately. For monitoring jobs, include instructions like “if nothing changed, respond with only [SILENT].” Do not ask the agent to explain the token in quiet cases — cron treats [SILENT] as the delivery-suppression marker.
Use scripts for data collection. The script parameter lets a Python script handle the boring parts (HTTP requests, file I/O, state tracking). The agent only sees the script’s stdout and applies reasoning to it. This is cheaper and more reliable than having the agent do the fetching itself.
Test with /cron run. Before waiting for the schedule to trigger, use /cron run <job_id> to execute immediately and verify the output looks right.
Schedule expressions. Supported formats: relative delays (30m), intervals (every 2h), standard cron expressions (0 9 * * *), and ISO timestamps (2025-06-15T09:00:00). Natural language like daily at 9am is not supported — use 0 9 * * * instead.
For the complete cron reference — all parameters, edge cases, and internals — see Scheduled Tasks (Cron).

