Tweety Bird
Install

Docs

Schedules

Hourly, daily, weekly, monthly. Write the prompt once, text it as a schedule, get the result on your phone.

Make one by texting it

Say when, then what:

every morning at 7, audit deps and open a PR if there's a CVE
every weekday at 9am, summarize yesterday's merged PRs
every friday at 5pm, draft what shipped this week
every hour, check the webhook retry queue
on the 1st of every month at 7am, pull last month's invoices

The thread replies with the schedule it made and its next run. Name an agent to pin it ("every night at 11, have codex ..."); otherwise it uses your default agent. A raw cron expression works too: /schedule add "0 7 * * 1-5" run the tests.

Manage them

/schedule                 list, with next run times
/schedule add <text>
/schedule pause <name or id>
/schedule resume <name or id>
/schedule delete <name or id>
/schedule run <name or id>   run it now

Plain English works for the common ones: "pause the dependency audit". The terminal has the same verbs: tweetybird schedule list, add, pause, resume, delete, run.

How a scheduled run works

  • It runs on your Mac, in the schedule's repo, through Claude Code or Codex, with that day's shared memory. Scheduled runs use the repo's policy; anything that needs a tap buzzes your phone and waits.
  • The result is texted to you. Prompts written to be quiet answer "NOTHING TO REPORT" when there is nothing worth a text, and you get no message.
  • Files the run produces (a screenshot, a PDF, a report) arrive as attachments.
  • Runs go one at a time, so a pile-up after a long sleep does not start five agents at once.

Catch-up on wake

If the Mac was asleep or off when a schedule was due, the most recent missed run happens once when it wakes, marked as a catch-up. Missed runs are never silently skipped, and a week of sleep does not replay seven times. A Mac mini that never sleeps is the easy answer for schedules that must run on time; see Two Macs.

The Night Shift pack

Ten pre-written, tested scheduled prompts. Install them one at a time or all at once:

/schedule pack                       list the pack, tap to install
tweetybird schedule pack install dependency-audit
tweetybird schedule pack install all
KeyWhenWhat it does
dependency-auditDaily 7:00 AMAudits every dependency, opens a PR for any real CVE, leaves intentional pins alone.
webhook-watchHourlyChecks the Stripe webhook retry queue. Texts only if something is stuck.
night-shiftNightly 11:00 PMPicks up the highest-priority open thread from today and pushes a PR.
morning-qaDaily 6:30 AMClicks through the real signup flow in a real browser. Screenshot only if it broke.
ship-summaryFriday 5:00 PMDrafts what shipped this week for X and LinkedIn, from the commits.
invoice-pullMonthly, the 1st, 7:00 AMPulls invoices from Stripe, AWS, Vercel, and Supabase in your Chrome and texts the PDFs.
flaky-test-hunterMonday 6:00 AMFinds tests that failed then passed on retry and fixes the one it can.
daily-digestDaily 6:00 PMWhat both agents decided today, in one text.
backup-verifySunday 3:00 AMChecks the backup ran and actually restores.
cross-reviewEvery 15 minutesCodex reviews what Claude wrote, and the other way round, when a PR opens.

Every pack prompt respects decisions already in memory, never pushes to main or deploys, and opens a PR when a change is warranted. More on the Night Shift page.