In this tutorial, you’ll build a personal briefing bot that wakes up every morning, researches topics you care about, summarizes the findings, and delivers a concise briefing straight to your Telegram or Discord.
By the end, you’ll have a fully automated workflow combining web search, cron scheduling, delegation, and messaging delivery — no code required.
This recipe hits web search, summarization, and optional TTS — all bundled in a Portal subscription. The fastest setup is mibyan setup --portal. See Nous Portal.
What We’re Building
Here’s the flow:
- 8:00 AM — The cron scheduler triggers your job
- Mibyan spins up a fresh agent session with your prompt
- Web search pulls the latest news on your topics
- Summarization distills it into a clean briefing format
- Delivery sends the briefing to your Telegram or Discord
The whole thing runs hands-free. You just read your briefing with your morning coffee.
Prerequisites
Before starting, make sure you have:
- Mibyan installed — see the Installation guide
- Gateway running — the gateway daemon handles cron execution:
- Firecrawl API key — set
FIRECRAWL_API_KEY in your environment for web search
- Messaging configured (optional but recommended) — Telegram or Discord set up with a home channel
No messaging? No problemYou can still follow this tutorial using deliver: "local". Briefings will be saved to ~/.mibyan/cron/output/ and you can read them anytime.
Step 1: Test the Workflow Manually
Before automating anything, let’s make sure the briefing works. Start a chat session:
Then enter this prompt:
Mibyan will search the web, read through results, and produce something like:
If this works, you’re ready to automate it.
Iterate on the formatTry different prompts until you get output you love. Add instructions like “use emoji headers” or “keep each summary under 2 sentences.” Whatever you settle on goes into the cron job.
Step 2: Create the Cron Job
Now let’s schedule this to run automatically every morning. You can do this in two ways.
Before creating cron jobs, ensure Mibyan has a default model and provider configured globally. If you want a specific job to use different values, set explicit per-job model/provider overrides when creating it.
Option A: Natural Language (in chat)
Just tell Mibyan what you want:
Mibyan will create the cron job for you using the unified cronjob_manage tool.
Option B: CLI Slash Command
Use the /cron command for more control:
The Golden Rule: Self-Contained Prompts
Critical conceptCron jobs run in a completely fresh session — no memory of your previous conversations, no context about what you “set up earlier.” Your prompt must contain everything the agent needs to do the job.
Bad prompt:
Good prompt:
The good prompt is specific about what to search, how many articles, what format, and what tone. It’s everything the agent needs in one shot.
Step 3: Customize the Briefing
Once the basic briefing works, you can get creative.
Multi-Topic Briefings
Cover several areas in one briefing:
Using Delegation for Parallel Research
For faster briefings, tell Mibyan to delegate each topic to a sub-agent:
Each sub-agent searches independently and in parallel, then the main agent combines everything into one polished briefing. See the Delegation docs for more on how this works.
Weekday-Only Schedule
Don’t need briefings on weekends? Use a cron expression that targets Monday–Friday:
Twice-Daily Briefings
Get a morning overview and an evening recap:
Adding Personal Context with Memory
If you have memory enabled, you can store preferences that persist across sessions. But remember — cron jobs run in fresh sessions without conversational memory. To add personal context, bake it directly into the prompt:
Tailor the personaIncluding details about who the briefing is for dramatically improves relevance. Tell the agent your role, interests, and what to skip.
Step 4: Manage Your Jobs
List All Scheduled Jobs
In chat:
Or from the terminal:
You’ll see output like:
Remove a Job
In chat:
Or ask conversationally:
Mibyan will use cronjob(action="list") to find it and cronjob(action="remove") to delete it.
Check Gateway Status
Make sure the scheduler is actually running:
If the gateway isn’t running, your jobs won’t execute. Install it as a background service for reliability:
Going Further
You’ve built a working daily briefing bot. Here are some directions to explore next:
What else can you schedule?The briefing bot pattern works for anything: competitor monitoring, GitHub repo summaries, weather forecasts, portfolio tracking, server health checks, or even a daily joke. If you can describe it in a prompt, you can schedule it.