A Grok Bot routine is a saved prompt that runs your bot either on a schedule or when an outside event arrives, and it keeps running while you're away. Schedules use cron syntax in your local time zone, with runs at least five minutes apart. Cron runs a fixed script that does the same thing every time. So use a routine when each run needs judgment (reading, summarizing, deciding whether anything changed), and use cron when a deterministic script is enough.
Who this is for
You run an agent-ops desk on Grok Bot and catch yourself either writing shell scripts to babysit an agent, or opening chat every morning to type the same request. This page helps you decide which jobs belong in a routine and how to write the prompt.
Routine vs cron
| Grok Bot routine | Cron job | |
|---|---|---|
| What runs | A saved prompt, handled by your bot | A fixed command or script |
| Trigger | A cron schedule in your local time, or an outside event | A cron schedule on the host |
| Spacing | At least 5 minutes between scheduled runs | Whatever the host allows |
| While you're away | Keeps running | Keeps running while the host is up |
| Each run | Bot reads, reasons, and decides what to do | Same steps every time |
| Good for | Triage, digests, "did anything change?" checks | Backups, rotations, fixed exports |
If the job is "run `backup.sh` at 2 AM," that's cron. If it's "check the support inbox at 9 and tell me what needs a human," that's a routine.
Writing a routine prompt
Write the intent and the output, not a click-by-click tool recipe. The bot picks the tools at run time.
| Weak prompt | Stronger prompt |
|---|---|
| "Open the inbox, search unread, read each one…" | "Each weekday at 9:00, review new support email since the last run. Give me a short list of threads that need a human, with one line on why." |
| "Check the repo." | "Every hour, look for new failing checks on open PRs. Summarize only new failures since the last run." |
Good prompts include: what to look at, what counts as "worth reporting," the output format, and what the bot must not do on its own.
Quiet when nothing changed
A scheduled check that reports "nothing new" every hour turns into noise. Write the condition into the saved prompt: "If nothing changed since the last run, end the run without messaging me." The bot reads that instruction on every run, just like the rest of the prompt.
Approval boundaries
A routine is a schedule, not a permission slip. Write the same stop rules into the routine's prompt that you'd put in a role description: draft and report, but stop before send, publish, or pay unless the prompt explicitly names that action. For the role-template version of those stop rules, see Agent-ops kit vs SaaS boilerplate.
Keep secrets out of the routine prompt too. Name the env var the job needs, not the value.
Where ShipKits fits
The Operator Pack ($47) is markdown seats + skills + install.sh — not a hosted app, not a chatbot. Seven named seats, three skills, an ops playbook and a token-cost playbook. Done means a file, PR, or URL. Same pack for Cursor, Claude Code, and Grok Bot. Soft path: start at /free. Cheat Sheet for the skim checklist mindset.
Soft next step
Pick one thing you check by hand every day and write it as a routine prompt with a "stay quiet if nothing changed" line and a stop-before-send rule. Soft ladder: /free, then the Operator Pack ($47). Related: agent-ops kit vs SaaS boilerplate.