
Zane Homsi
Zane Homsi, you've built a home-computer chief of staff that phones restaurants for you, guards your money behind a tap, and rewrites its own rules every Sunday.
- Useful9Five runs fire on their own and nearly everything lands in one chat
- Creative9A voice agent feeding the morning brief is a nerve-y piece of wiring
- Replicable9Every run asks its questions up front and gives a chat-only fallback
1Run my computer from a chat on my phone
A chat bot on my phone that reaches a full assistant running on my home computer.
Details
It answers, runs my commands and sends me every alert from the other runs.
Ask first
- Which chat app? (default one with an official bot API)
- Who may talk to it? (default only your own account; everyone else is ignored)
- Which commands should show in its menu? (default status, brief, wrap up, compact)
Needs
- A computer that stays on, a coding assistant that can run there, and a chat bot account.
- A process supervisor that restarts the assistant if it crashes or the machine reboots.
- Say to the person: "Only your account can reach it, and it still asks before sending email, buying or trading."
- If your assistant can only chat: use its phone app; you lose scheduled alerts but keep the conversation.
Build
- Create the bot and lock it to the person's account ID.
- Run the assistant in a long-lived terminal session on the home computer, connected to the bot; have the supervisor start it at login and restart it on failure.
- Add a command menu that maps short commands to the assistant's own commands. Never expose one that wipes its context.
- Point every scheduled run's alerts at this chat, so the person has one place to look.
- Keep the same approval rules as at the desk: drafts, trades and sends wait for a yes in the chat.
Check
- Message it from another account; it must not answer. Then reboot the computer and confirm it replies within 2 minutes without anyone logging in.
In my version
- Telegram bot, Claude Code on a Mac mini in a tmux session kept alive by launchd, plus a remote-control server so my phone's Claude app can open Mac sessions too.
Built it? Tell Zane.
Mewhat's on tomorrow?
Bot3 meetings. The 2:00 overlaps a dentist hold. Want me to flag it?
Meping me when the passport email arrives
BotWatching for it. I'll text once, then stop.
Me/wrap-up
BotSaved a summary of today's session to memory.
2Approve money moves with one tap
A proposed order arrives as a ticket in my chat.
Details
Nothing is placed until I tap approve; my assistant can never approve its own ticket.
- Done when
- My tap places the order; a decline closes the ticket
Ask first
- Which actions may it propose? (default only moves inside your own accounts)
- How long is a ticket valid? (default 24 hours)
- Any limit above which it must not even propose? (default your choice; required)
Needs
- A chat app with buttons, or reply with "yes 1" if it has none.
- An account that allows orders by API, with keys the assistant cannot read.
- If your assistant can only chat: it writes the ticket text and you place the order yourself.
Build
- Read: a proposal from another run or from the person.
- Decide: reject it if it breaks a written rule or is over the limit.
- Deliver: send a ticket with what, why and expiry.
- Act: only the person's tap, checked by a separate process that holds the keys, places the order. The assistant has no path to approve.
- Close: record approved, declined or expired.
Check
- Send a test ticket against a paper or sandbox account and confirm nothing happens until you tap.
In my version
- Tickets in my Telegram chat; a small script holds the keys and places the order only on my tap.
Built it? Tell Zane.
Ticket
Move extra cash to savings
Whyabove the band in your rules
[Approve] [Decline]
Expires in 24 hours if you do nothing.
3Brief me on today before I wake up
A one-page brief of today: what came in overnight, what is on the calendar, what my phone assistant handled.
Details
A text only if something needs me today.
Ask first
- Which inboxes and calendars should it read? (default every account you check daily)
- When should the brief be ready? (default 30 minutes before you usually wake)
- What counts as "needs you today"? (default a reply, decision or payment due before tonight)
- Where should the text go? (default your usual chat app; a phone notification if it cannot text)
Needs
- Read access to email and calendar. Say to the person: "It reads to summarize; it never sends, deletes or accepts anything."
- Notes from any other assistant that acts for the person (calls, bookings), if there is one; skip that section if not.
- A scheduler that runs while the person sleeps, and a way to re-run a missed slot.
- If your assistant can only chat: paste the night's email subjects and today's calendar each morning and ask for the same four sections.
Build
- 1. Read: mail received since the last brief (window, not a fixed time), calendar for today, overnight notes from other assistants.
- 2. Decide: sort each item into Needs you today, On the calendar, Handled overnight, FYI. Needs you today means a dated ask or deadline before midnight. Keep: "confirm by noon". Drop: a newsletter with a sale ending today.
- 3. Deliver: write the brief as a dated note. Only if Needs you today is non-empty, send a short text with those lines. Nothing is sent to anyone else.
- 4. Remember: store the time of the last mail read so the next run starts there. If the machine was asleep at the slot, re-run once when it wakes.
- Cost: one model call a day, about 30 a month.
Check
- Run it now with the text turned off against yesterday's mail; every line in Needs you today must point to a real message with a same-day ask.
- A quiet morning produces the note and no text. Confirm the first scheduled run by the note's timestamp.
In my version
- A coding agent on a Mac mini, started by the system scheduler at 4:50am, with a 15-minute catch-up job for missed slots.
- Two inboxes (personal and my business), one calendar, call notes from my phone assistant (see "Make and take calls for me").
- Texts go to my chat bot (see "Run my computer from a chat on my phone").
Built it? Tell Zane.
Zane's assistant · Needs you today
Contractor wants a yes on the Thursday slot by noon (email, 9:40pm)
Dentist moved your cleaning to 3:30; reply to keep it
On the calendar
9:00 Roadmap review (60 min)
12:30 Lunch with an old colleague, Redwood City
Handled overnight
Phone assistant booked the Saturday dinner for 4; confirmation in email
FYI
14 newsletters, 3 receipts, nothing else new
4Tap me only when something changed
A short text, only when something new needs me before the next check.
Details
Most runs send nothing.
- Done when
- Each 'ping me when' watcher deletes itself once it fires
Ask first
- How often, and between which hours? (default every 2 hours, 8am to 8pm)
- What is worth interrupting you for? (default a new ask with a deadline before the next check, a calendar conflict, or a watcher match)
- Any standing "ping me when" items to start with? (default none)
Needs
- Read access to email and calendar, plus notes from any other assistant that acts for the person.
- A small stored list of watchers: what to look for, added date, and whether it has fired.
- Say to the person: "It reads and decides; it never sends email, changes your calendar or messages anyone but you."
- If your assistant can only chat: say "ping me when X arrives" and ask "anything new?" a few times a day.
Build
- 1. Read: everything since the previous check (stored timestamp), the next 24 hours of calendar, and the watcher list.
- 2. Decide: the default answer is "nothing". Send only for (a) a new ask due before the next check, (b) a calendar change that creates an overlap, or (c) a watcher match. Keep: "the meeting moved and now overlaps". Drop: "a new newsletter".
- 3. Deliver: one text, three lines at most. A fallback is a notification.
- 4. Close: delete any watcher that matched, and say so in the text.
- 5. Remember: save the new timestamp after the run finishes.
- Cost: about 7 model calls a day, about 210 a month; use a small model.
Check
- Add a watcher for an email you can send yourself, run it with delivery off, and confirm it matches once and is then removed.
- A normal afternoon sends nothing.
In my version
- Runs 7 times a day on a Mac mini with a smaller model; watchers live in a small file; texts go to my chat bot.
- I add watchers by texting "ping me when ..." (see "Run my computer from a chat on my phone").
Built it? Tell Zane.
Zane's assistant · Heads-up (2pm)
The 4:00 moved to 4:30, and it now overlaps school pickup
Your watcher fired: the passport renewal email arrived
Watcher removed: passport renewal
5Brief me on household money three times a week
An email briefing on household money, checked against rules I wrote down, ending with the decisions waiting on me.
Details
It proposes; it never moves money.
Ask first
- Which accounts, and can it get read-only access to each? (default whatever you can export; type in the rest)
- What are your rules? (default a target mix and how far each part may drift before you act)
- Which money dates matter? (default tax deadlines, renewals, big bills)
- Which days? (default Monday, Wednesday, Friday)
Needs
- Balances per account, read-only. Say to the person: "It reads balances; it cannot move money or place orders."
- A short written rules page the person owns. If they have none, help them write one first; that is most of the value.
- A list of upcoming money dates.
- If your assistant can only chat: paste balances and your rules page and ask for the same three sections.
Build
- 1. Read: pull balances with a script, not the model, and save them with today's date.
- 2. Decide: a script compares each number to the rules and flags anything outside its band; the model only writes the words around those flags. Dates within 30 days go under Coming up.
- 3. Draft: write three sections: Where things stand, Coming up, Decisions for you. Every decision is a proposal.
- 4. Check: a second pass confirms every number in the text matches the saved data; if one does not, send nothing and alert the person.
- 5. Deliver: email the briefing. Nothing is traded, paid or moved.
- Cost: a few model calls per run, about 40 a month.
Check
- Run it with email off and change one rule so a flag must appear; confirm it shows under Decisions and the check step passes.
In my version
- A coding agent on a Mac mini, three mornings a week; scripts pull the data, a few helper agents write sections, a checker compares numbers before it sends.
- Decisions I approve go to "Approve money moves with one tap".
Built it? Tell Zane.
Money briefing
Where things stand
- Everything is inside your own limits except one: cash is above your target band.
Coming up
- Quarterly estimated tax due in 3 weeks
- An insurance renewal next month
Decisions for you
1. Move the extra cash to savings? (proposed, not done)
2. Nothing else this week
6Make my assistant better from last week's mistakes
A short list of proposed edits to my assistant's own instructions, drawn from the week's corrections and failed jobs.
Details
I approve each one.
- Done when
- Approved edits are applied, and next week's review checks they held
Ask first
- Which day and time? (default Sunday evening)
- What counts as a correction? (default any time you told it to redo, stop or change something)
- How long unused before an instruction is proposed for retirement? (default 6 weeks)
Needs
- A searchable record of the week's chats and job logs.
- The assistant's own instruction files, which it can read but not edit in this run.
- If your assistant can only chat: once a week, ask "what did I correct you on this week, and what should you change?" and paste the answer into its custom instructions yourself.
Build
- 1. Read: corrections from the past 7 days, failed or noisy job runs, and last week's approved edits.
- 2. Decide: propose an edit only if the same correction appeared twice or a job failed twice. Keep: "two corrections about length". Drop: a one-off preference.
- 3. Deliver: write numbered proposals with the evidence for each. Never edit a live instruction file in this run.
- 4. Close: after the person approves, the live assistant applies the edit; next week's run reports whether it held.
- Cost: one larger model call a week.
Check
- Run it over last week with delivery off; every proposal must quote at least two real corrections or failures.
In my version
- A coding agent on a Mac mini, Sundays at 7:30pm, with a smaller model; proposals go in a file and I approve by chat.
Built it? Tell Zane.
Proposed edits (3)
1Morning brief: drop shipping notifications from FYI. You said "stop showing me these" twice.
2Drafting: never use "circle back". Corrected on Tuesday.
3Retire the old travel checklist: unused for 6 weeks.
Held from last week
Shorter replies: no corrections this week
7Turn the week's notes into long-term memory
My assistant files the week's loose session notes into its long-term memory and my personal wiki, and texts me only if something changed.
Details
Ask first
- Where does long-term memory live? (default one folder of short notes, one fact each)
- What is worth keeping? (default a fact that will matter in a future chat)
- Should it text you about changes? (default only if something changed)
Needs
- A place the assistant drops quick notes during the week, and a memory folder it reads at the start of each chat.
- Version history on that folder so any change can be undone.
- If your assistant can only chat: once a week, ask it to list what it learned about you and add or remove items in its saved memory.
Build
- Read: the week's quick notes and the current memory index.
- Decide: for each note, update an existing memory, add one, or drop it. Replace a fact that changed; never keep two versions of it. Keep: "moved to a new team". Drop: "was tired on Tuesday".
- Deliver: write the changes, save a version, and write a one-page review of what changed.
- Text the person only if something changed.
Check
- Plant two notes, one durable and one trivial, run it, and confirm only the durable one lands.
In my version
- A coding agent on a Mac mini, Sundays at 7pm; memory is plain text files with version history; the wiki is a folder of pages.
Built it? Tell Zane.
Memory changes this week
Updated: the home project page now shows the contractor's new start date
Added: you prefer morning flights for trips under 3 hours
Removed: an old note about a gym membership you cancelled
8Find new routines worth copying, weekly
Two or three new Runbook routines that fit how I work, each with one line on why.
Details
Nothing when nothing fits.
Ask first
- Which day and time to check (default Friday 8am, your time zone)
- How you want the picks: the place you already hear from your assistant (default)
- How many picks at most (default 3)
Needs
- An assistant that can run on a schedule and open a web page
- What your assistant already knows about you: your routines, tools and recurring tasks
- If your assistant can only chat: ask it "anything new on Runbook for me?" once a week and it does the same check on the spot
Build
- Each week, open https://myrunbook.ai/new.json?since=<date of the last check, or 7 days ago>.
- Pick at most three routines that fit something specific about the person: a task they repeat, a tool they already use, a gap in their week. Skip ones they already have, ones that need a setup they lack, and ones that are only broadly relevant.
- If nothing fits, send nothing.
- If something fits, send one short message: each pick's name, one line on why it fits, and its link, ending "Reply with a number and I'll set it up."
- Never build anything without a yes. On a yes, open that routine's build steps and follow them.
- Save the date of this check for next week.
Check
- Run it once now with since set to 30 days ago and delivery off; every pick must name a specific reason it fits
- A week with nothing new or nothing fitting sends no message
Built it? Tell Zane.
New on Runbook for you this week
1Find forgotten subscriptions: you pay for six tools and asked me last month which you still use.
2Gift ideas from friends: two close friends have birthdays in November.
Reply with a number and I'll set it up.
9Make and take calls for me
I tell my assistant who to call and why; a voice agent makes the call and sends back a short call note that lands in my morning brief.
Details
Ask first
- What may it call about? (default bookings, appointments and simple follow-ups)
- What must it never do? (default pay, share card numbers, or agree to anything costing money)
- Should it say it is an AI? (default yes, at the start)
Needs
- A voice-agent service with a phone number and an API.
- A fixed call-note format the agent returns: who, asked, result, follow-up.
- If your assistant can only chat: it writes a call script and you make the call.
Build
- Read: the person's request and any times from the calendar.
- Decide: refuse any request outside the allowed list.
- Deliver: place the call, then save the call note where the morning brief reads it.
- No answer or voicemail: leave no message unless the person asked for one, write "no answer" in the call note, and try once more after 2 hours.
Check
- Have it call your own phone for a fake booking and confirm the note matches what was said.
In my version
- A voice agent built on Bland, which my coding assistant dispatches by API from my own number; notes feed "Brief me on today before I wake up".
Built it? Tell Zane.
Call note
Calledthe restaurant
Asked fortable for 4, Saturday 7pm
Resultbooked 7:15, under my name
Follow-upnone
10Turn my meeting notes into a personal wiki
My assistant reads new meeting transcripts and updates one wiki page per person, project and topic, with a log of what changed.
Details
Ask first
- Which meetings count? (default all recorded ones since the last update)
- What gets its own page? (default a person, project or topic that comes up twice)
Needs
- Meeting transcripts or summaries from any note-taker.
- A folder of plain pages with an index and a change log.
- Meetings without a transcript: paste bullet notes and it treats them as a short transcript, marked "notes only".
- If your assistant can only chat: paste a meeting summary and ask which page it belongs on and what to change.
Build
- Read: transcripts since the last logged update.
- Decide: for each fact, update an existing page or make a new one. Flag contradictions; never pick a side silently.
- Deliver: write the pages, update the index and log, and list what changed.
Check
- Run it on one past meeting and confirm every new line cites that meeting.
In my version
- Granola transcripts, read by Claude Code; plain text pages.
Built it? Tell Zane.
Wiki update
Updated: Home renovation, new start date and permit status
Updated: Running club, race calendar for spring
New page: Financial planner, first meeting notes
Flagged: two pages disagree on the move date
11Draft anything in my own voice
Emails, posts and newsletter drafts that sound like me, written from my own style guide and past writing.
Details
I edit and send.
Ask first
- Where is your best writing? (default 10 pieces you are proud of)
- Words or habits you never want? (default none)
Needs
- Samples of the person's writing, and a one-page style guide built from them.
- If your assistant can only chat: paste the style guide at the top of each request.
Build
- Read: the request and the style guide.
- Decide: apply the banned-words list and the person's sentence habits.
- Deliver: one draft; the person sends it.
Check
- Mix three of its drafts with three of the person's own; they should not be able to tell easily.
In my version
- A style guide, a samples file and a list of banned constructions, read by Claude before any draft.
Built it? Tell Zane.
Draft
Hey Sam, quick one. I read the plan. The second phase is the bet; the first is table stakes. Can we cut phase one to two weeks and spend the rest on the part only we can do?
12Let me mark up a draft like a doc
Any draft opens as a page where I highlight text and leave comments, then copy all comments back in one paste for a single revision.
Details
Ask first
- Where should the page open? (default your browser)
Needs
- An assistant that can write and open a local web page.
- If your assistant can only chat: number the paragraphs and comment by number.
Build
- Read: the current draft.
- Deliver: write a page that shows it, lets the person select text and attach a comment, and has one button to copy all comments as a list.
- Revise: the person pastes the list back; apply every comment in one pass.
Check
- Leave three comments, copy them, and confirm each quotes the selected text.
In my version
- Claude Code builds the page with a small annotation library bundled in.
Built it? Tell Zane.
Comments (3)
1"we believe" -> cut, just say it
2Para 2 -> too long, split
3Closing line -> stronger, end on the ask
13Pressure-test a strategy before I share it
A structured critique of a plan or product doc: the weakest assumption, what is missing, and what would change my mind.
Details
Ask first
- What frameworks do you trust? (default: define done first, smallest v1, name the riskiest assumption)
Needs
- The doc, and a short page of the person's own frameworks.
- If your assistant can only chat: this is a chat habit; paste both.
Build
- Read: the doc and the frameworks.
- Decide: find the single weakest assumption, then what is missing, then a test that would change the person's mind.
- Deliver: three short sections, no rewrites.
Check
- Run it on a doc you already know is weak and confirm it finds that weakness.
In my version
- A saved command in Claude Code that reads my frameworks page first.
Built it? Tell Zane.
Weakest assumption
That users will set this up themselves. Nothing in the doc shows they will.
Missing
What done looks like for v1
What would change my mind
Five users completing setup unaided
14Tailor my resume to a job post
A one-page resume picked from my master list of bullets to match a job post, exported as a file, with notes on what changed.
Details
Ask first
- Your rules? (default one page, no summary line)
- Where is the master list? (default build one from your current resume)
Needs
- A master list of every bullet you could use, and the job post.
- If your assistant can only chat: paste both and ask for a ranked bullet list.
Build
- Read: the post and the master list.
- Decide: rank bullets by match; never invent a claim.
- Deliver: a one-page file plus notes on what changed and why.
Check
- Every bullet in the output must exist in the master list.
In my version
- HTML resume as the source, exported to PDF and Word; a notes file per version.
Built it? Tell Zane.
Notes
Led with the platform work; the post asks for scale
Cut two older bullets to stay at one page
- No new claims added
15Run several coding agents on one goal
I give one objective; a local app breaks it into a task graph and hands tasks to several coding agents, showing progress on one screen.
Details
Ask first
- Which agents can you run? (default one coding agent, two copies)
- Max agents at once? (default 3)
Needs
- Two or more coding agents that run from the command line, and a repository.
- If your assistant can only chat: ask it for the task graph and run each task yourself.
Build
- Read: the objective.
- Decide: split it into tasks with dependencies; no two tasks edit the same files.
- Deliver: start agents on ready tasks, show status, start dependents when a task finishes.
- Failures: if an agent fails, retry once, then mark the task blocked and hold everything that depends on it. If two tasks touch the same file, run them one after the other.
- Stop: when every task is done or blocked, or after 2 failures in a row.
Check
- Run a two-task objective where task 2 depends on task 1 and confirm it waits.
In my version
- A local web app that coordinates Claude Code and Codex.
Built it? Tell Zane.
Objectiveadd dark mode
- Tokens (agent A): done
Components (agent B): running, waits on tokens