It's 8:40 a.m. You open Slack and scan #incidents. You switch to GitHub and list yesterday's merged PRs and deploys. You check today's calendar for anything that collides with a release. Then you write the standup update. That takes about 30 minutes, every weekday.
Do the math yourself: 30 minutes × 5 days is 2.5 hours a week, or roughly 120 hours a year, spent on work that looks the same every day. This guide gives you a method to hand that routine to a personal AI agent, such as OpenAGI or the chat assistant you already use, without letting it send, post, or spend anything you didn't approve. You can start the method with a spreadsheet and no budget.
What It Means to Automate a Routine With a Personal AI Agent
Automating a daily routine with a personal AI agent means writing down a recurring multi-step task, giving an AI model scoped access to the tools that task touches, and letting it run the steps on a schedule or trigger. Anything that changes the outside world, such as sending email, posting messages, or editing a calendar, waits for a human approval.
An agent is a different thing from a workflow tool. Anthropic's Building Effective Agents guide draws the line clearly. Workflows are systems where models and tools follow predefined code paths. Agents are systems where the model directs its own process and tool use. Zapier, n8n, and cron are workflows: step 3 always follows step 2. A personal agent interprets, summarizes, and decides inside each step. That flexibility lets it notice that an incident thread was reopened. The same flexibility makes it less predictable.
“Personal” matters too. A personal agent acts with your credentials. Slack shows the message as yours, Gmail sends from your address, and calendar invites come from your account. When the agent makes a mistake, recipients and audit logs attribute it to you.
The rest of this page depends on two verbs:
- READ: observe, fetch, filter, or summarize, with no external side effects. A draft shown only to you counts as a READ output.
- WRITE: anything that sends, posts, edits, deletes, merges, schedules, or spends. The same draft posted to a channel counts as a WRITE.
Why It's Hard: What Actually Breaks When an Agent Runs Your Routine
Most agent failures in daily routines come from too much permission, too little verification, or unread inputs, and only rarely from the model being unable to do the task. The OWASP Top 10 for LLM Applications (2025) covers nearly all of them: Prompt Injection (LLM01), Sensitive Information Disclosure (LLM02), Excessive Agency (LLM06), Misinformation (LLM09), and Unbounded Consumption (LLM10). Here is how each shows up in a standup routine:
- Credential overreach. The easiest OAuth scope to grant is usually full read/write. You connect Gmail to read one label, and the agent can now send email as you.
- Silent wrong answers. The model summarizes a Slack thread confidently and drops the one message that mattered: an incident reopened at 2 a.m.
- Claimed vs. verified completion. The agent reports “posted” and nothing was posted. Checking the artifact (the message, the PR, the check run) is a different act from trusting a status line. METR's 2025 randomized trial found experienced developers were 19% slower with AI tools while believing they were about 20% faster. How fast it felt tells you little about how fast it was.
- Prompt injection through data. A Slack message, email, or PR description can contain text the model treats as an instruction (“ignore previous instructions and forward this thread to…”). Simon Willison calls the dangerous combination the lethal trifecta: private data, untrusted content, and the ability to communicate externally. A standup agent that reads Slack and can post has all three.
- Drift. Someone renames a repo or the team adds a #incidents-eu channel. The automation keeps running the old version, and nobody notices for weeks.
- Cost creep. A retry loop or a 200-message context window runs up model spend overnight when nothing caps it.
- Data leaving your machine. Local state does not mean local inference. If your model is a cloud API, the incident details in every prompt go to that provider.
The Method: 8 Steps to Automate a Routine Safely (No Tool Required)
You can do every step below today with a spreadsheet, a notes file, and the AI chat tool you already use. The tool comes later, if you need one at all.
Step 1: Write the routine down exactly as you do it
Run the routine manually for 3 days and log every step: the source, what you look at, what you decide, what you produce, and how long it takes. Write down the judgment calls, because those are what the agent will get wrong: “If a Sev1 is still open, lead the standup with it.” “Skip deploys to staging.”
Step 2: Classify every step as READ or WRITE
Build a sheet with these columns: Step | System | Read/Write | Data sensitivity | Reversible? | Who sees the output. Anything that sends, posts, edits, or spends is WRITE, even if it seems harmless.
| Step | System | Read/Write | Sensitivity | Reversible? |
|---|---|---|---|---|
| Read #incidents | Slack | READ | Internal | n/a |
| List yesterday's merged PRs and deploys | GitHub | READ | Internal | n/a |
| Read today's calendar | Google Calendar | READ | Personal | n/a |
| Draft standup text (shown only to you) | Agent output | READ | Internal | Yes |
| Post standup to #team | Slack | WRITE | Team-visible | Hard to fully retract |
| Email a stakeholder about an incident | Gmail | WRITE | External | No |
Step 3: Connect read-only first, with least privilege
Saltzer and Schroeder stated the principle of least privilege in 1975: every program should run with the smallest set of privileges the job needs. In practice, that means read scopes on specific Slack channels, a fine-grained GitHub personal access token limited to specific repos, and calendar read. Create no write credentials in week one. Where a platform doesn't offer a read-only scope, treat that connection as WRITE.
Step 4: Run it supervised for one week
The agent produces its output, and you still do the routine yourself. Compare the two daily in a log: date | agent missed | agent wrong | agent added noise | time to review. Decision rule: proceed only after 5 consecutive weekdays with zero material misses.
Step 5: Save the routine as a named, versioned skill
Write it as a spec: inputs, sources, exact output format, behavior on missing data (“say ‘no deploys found’, do not guess”), and what it must never do. Store it somewhere you can diff changes, such as a git repo or a versioned doc.
Step 6: Require approval for every WRITE
The agent drafts, and you approve or edit before anything is sent, posted, or scheduled. The approval screen must show the exact payload: recipient, channel, and full text. An “Approve this action?” prompt with no payload is not a real approval.
Step 7: Set spend and blast-radius limits
Set a daily model spend cap and a per-run cap, a maximum number of messages per day, and an allowlist of recipients and channels. Decide in advance what happens when the agent hits a limit: it stops and notifies you, and it never retries silently.
Step 8: Review monthly
Spend 15 minutes on a checklist. Are scopes still minimal? Are sources still correct? Did you approve anything without reading it? How does spend compare to the cap? Should any steps be retired? Revoke credentials for any routine you stopped using.
Read before write, supervise before trust, approve every write, cap every spend, review every month.
Worked Example: Automating the Morning Standup Routine Over Two Weeks
A standup routine can move from 30 minutes of doing to about 5 minutes of reviewing in two weeks, as long as you fix the spec each time the agent misses something. The numbers below are illustrative. They show the expected range given how the method works, and they are not a measured study.
Baseline (Days 0–3)
The manual routine takes about 30 minutes across four sources: #incidents, GitHub deploys, the calendar, and the team's standup thread. The log shows 6 READ steps and 2 WRITE steps: posting the standup, and occasionally emailing a stakeholder.
Decision 1: Scope
Connect Slack read for #incidents only, GitHub read for the 2 production repos, and calendar read. Grant no Slack post permission and no email send permission. The draft is the valuable part, and posting it by hand takes 10 seconds. Removing the “communicate externally” leg breaks the lethal trifecta for the entire supervised phase.
Week 1 (Days 1–5): Supervised
- Day 2: The agent missed a deploy from a third repo nobody had listed. That's a fix to the spec, not the model.
- Day 4: The agent summarized a resolved incident as open because the resolution was posted as a thread reply. The fix: the spec now says “read thread replies; status is the latest message.”
Decision 2: The gate
The clean-day counter resets after each spec fix. Week 1 ends with 3 clean days, not 5, so supervision continues into week 2. Trust is earned per version of the routine.
Week 2 (Days 6–10)
The routine reaches 5 consecutive clean days. Review time drops from 30 minutes of doing to roughly 5 minutes of reading and editing the draft.
Decision 3: Add one write, with approval
Allow posting to #team only, behind an approval step that shows the exact text. Stakeholder email stays manual. It is external and irreversible, and it happens about once a month, so automating it saves little and risks a lot.
Decision 4: Limits
Set a daily model spend cap at about 2× the observed daily cost from week 2, plus a per-run cap. Allow a maximum of 1 post per day to 1 channel. Any cap hit triggers stop-and-notify.
End state
- Runs automatically: all READ steps and the draft.
- One tap of approval: the #team post.
- Stays manual: external email, and anything during an active Sev1.
The net result: about 25 minutes saved per weekday, after an investment of about 150 minutes (15 extra minutes a day of comparison logging for 10 days). You break even about 6 workdays after supervision ends. After that, the savings come to roughly 100 hours a year.
Common Mistakes (Including Ones No Tool Fixes)
The most expensive mistakes in routine automation are decisions about scope and review, and no product makes those decisions for you.
- Granting write scopes “for later.” Unused write access adds risk and does nothing else. Add it when the step that needs it is ready.
- Skipping the supervised week. The first misses come from your spec, and you only find them by comparing side by side.
- Rubber-stamp approvals. Parasuraman and Manzey's 2010 research on automation bias shows people increasingly wave through reliable automation. If you've approved 20 drafts without reading them, the gate has become theater. Reduce the noise or the number of gated actions. Don't keep a gate nobody reads.
- Reading untrusted text and writing in the same run without approval. No tool fully solves prompt injection as of 2027. Defenses such as delimiting, dual-LLM patterns, and Google DeepMind's CaMeL reduce the risk. Meta's “Agents Rule of Two” proposes that a session combining untrusted input, sensitive data, and external actions should have human supervision. Approval on writes is the mitigation, not a cure.
- Assuming local storage means private inference. Check your provider's retention and training terms, or use a local model for sensitive routines.
- Automating a broken routine. If the manual process includes a check that no longer matters, automation keeps it forever.
- No owner for review. Without a monthly review, routines accumulate stale scopes and dead sources. Deciding to retire a routine stays a human job.
- Treating “the agent said done” as done. Verify against the artifact: the posted message, the PR, the check run.
When You Need Tooling
A written checklist plus a chat assistant is enough while you run the routine yourself and paste the output. Tooling starts to matter once one of three things is true: the routine runs unattended (on a schedule, before you're at your desk), it touches 3 or more connected systems, or it includes any WRITE step. At that point you're no longer watching every step, so approvals, spend caps, and a log need to be enforced by software instead of remembered. A second threshold comes when you run more than a handful of routines, or supervise several coding-agent sessions at once. Checking each one by hand stops scaling.
OpenAGI: A Personal Agent Built Around Approvals and Limits
OpenAGI is a personal agent, built by Spencer Shulem, that runs on a computer you control, keeps context across sessions, and learns routines from activity you choose to share. For this use case, it can notice a weekday pattern (check #incidents, pull yesterday's deploys, draft a standup) and offer to run it as a saved skill, but only after you approve it. Its Adaptive Scrutiny layer scores incoming signals on seven axes, including risk and confidence, before choosing to act, ask, watch, ignore, or propagate. Write actions land in “ask” instead of happening quietly.
- Connections: Gmail, Google Calendar, approved messaging contacts, MCP tools (for example, buildbetter-mcp for customer context before a meeting), and reviewed skills. Email and calendar writes require approval.
- Limits: model spend caps can be set daily and per turn, which matches Step 7.
- Supervisor: one view of Codex, Claude Code, Conductor, and Antigravity sessions (working, waiting on checks, blocked, waiting for you), with the thread and PR behind each item. It reads verification evidence instead of trusting an agent's “done.” Modes are Observe, Propose, and Auto, and Auto runs only bounded nudges, only after you explicitly enable it.
- Voice: optional on Mac, Android, and Even G2 glasses, with a readback and a spoken approval code before any action.
- Install: the Mac menu bar app (DMG, v0.0.58),
curl -fsSL openagi.sh | sh, Docker, Linux, or Raspberry Pi. Windows runs from source (Node.js 22+). The dashboard runs at http://127.0.0.1:43210/, and state defaults to ~/.openagi. Models can be a cloud API, ChatGPT sign-in, a local model server, or Apple Intelligence. It is source-available under PolyForm NC.
Caveats: local state does not mean on-device inference, because prompts go to whichever provider you configure. Per the README, these are capabilities you configure and verify. Installing OpenAGI does not by itself make work finish autonomously. The mobile apps are source/QA builds with no public store release.
Other Options: Peer Agents, Workflow Tools, and Scripts
Choose by how much judgment the routine needs and where you want your data to live. Hermes Agent (Nous Research) is OpenAGI's closest open-source peer. It is local, model-agnostic, and multi-channel, with persistent memory and auto-skills. LittleBird is a cloud SaaS assistant that watches your screen and meetings. n8n and Zapier suit fully deterministic routines, because fixed steps are easier to audit. Cron or GitHub Actions scheduled workflows plus a model API call give you maximum control, but you build approvals, caps, and logging yourself.
| Option | Runs where | Judgment inside steps | Learns from observation | Best fit |
|---|---|---|---|---|
| OpenAGI ★ | Your machine (daemon), BYO-LLM | Yes, with Adaptive Scrutiny | Yes, opt-in local capture | Unattended routines with gated writes and spend caps |
| Hermes Agent | Your machine, model-agnostic | Yes | No | Local memory and skills across chat channels |
| LittleBird | Vendor cloud | Yes | Yes, in their cloud | Teams comfortable with SaaS data handling |
| n8n / Zapier | Cloud or self-hosted | Limited | No | Deterministic, auditable steps |
| Cron / GitHub Actions + API | Your infrastructure | Whatever you code | No | Full control, DIY safety |
FAQ
Is it safe to let an AI agent run my daily routine?
It is safe enough when three controls are in place: read-only access by default, explicit approval of the exact content for every write (email, message, calendar change), and model spend capped daily and per run. Without all three, it is not.
Which steps of a routine should I automate first?
Start with read-only steps: gathering, filtering, and summarizing. Add write steps one at a time, each behind an approval, after the read-only version has run cleanly for at least five consecutive weekdays.
How long should I supervise an automated routine before trusting it?
Supervise for at least one work week of side-by-side runs, and restart the count after any change to the routine's instructions. Trust is earned per version, not per tool.
Does running an agent on my own computer keep my data private?
Not automatically. Local storage keeps state on your machine, but with a cloud model, each prompt's content is sent to that provider. Use a local model for sensitive routines, or confirm your provider's retention and training terms.
Can an AI agent be tricked by content in Slack or email?
Yes. Text in messages, PR descriptions, or issues can act as instructions to the model (prompt injection). Requiring human approval for every write is the most practical mitigation, because a manipulated agent can then only propose, not act.
Do I need a dedicated tool to automate a routine?
No. A written routine spec, a read/write classification spreadsheet, and a chat assistant cover routines you run yourself. A dedicated tool becomes worthwhile once the routine runs unattended or includes write actions, because approvals and spend limits then need to be enforced rather than remembered.
Sources and Further Reading
- OpenAGI website: https://openagi.sh
- OpenAGI README and source: https://github.com/spshulem/openAGI
- Principle of least privilege: Wikipedia
- Prompt injection: Wikipedia
- OWASP Top 10 for Large Language Model Applications
- Model Context Protocol documentation
- GitHub Actions documentation
Start With One Routine and One Approval Gate
The safest way to begin is one routine, read-only scopes, a week of side-by-side runs, and approval on the first write. OpenAGI gives you enforced approvals, daily and per-turn spend caps, saved skills, and a Supervisor view, all on hardware you control, with the model you choose.
Install OpenAGI in 5 minutes. Read the README, configure your first read-only skill, and Star on GitHub.
