skip to content

The Queue That Texts You Back


Adding a noon window to a scheduled script should take ten minutes. Change one integer in a config file, reload the service, done. I’d been meaning to do it for weeks and kept not doing it, and I didn’t understand why until I actually sat down to make the change.

The script was an overnight runner — woke at midnight, dispatched tasks to AI backends, wrote outputs to a directory, went back to sleep. The ten-minute change was trivial. What it revealed wasn’t.

An overnight runner is defined by its schedule. It’s infrastructure for things you batch up and forget about. The mental posture is: think of something before bed, queue it, check in the morning. Useful, but the window shapes what you put through it — you don’t interrupt your afternoon to add something for midnight, any more than you’d call someone at 2am because you just thought of a question.

An async queue has no such gravity. Queue a task whenever you think of it. Hear back in the next window — could be an hour, could be six hours. What made this actually work wasn’t the second window, though. It was the notification. Instead of the system writing to a directory and waiting for me to check, a small script now reads the run summary and sends me a Telegram message: “3/4 ✅, 1 ❌ — results ready.” The timestamp directory becomes evidence rather than a destination. I’m not going to the results; the results are coming to me.

The difference in practice: before, I would batch up code review and research tasks for midnight because that was the only window, and I’d check in the morning if I remembered. Now I queue a research question at noon when it occurs to me, get a ping by 6pm, and act on it the same day. The queue became part of the working day rather than a nightly ritual I maintained at arm’s length.

The infrastructure change was small — a second schedule entry in the LaunchAgent plist, forty lines of Python to ship the summary to Telegram, a one-liner in the morning brief. Maybe two hours of work. But the lesson it reinforced is one I keep learning: the last ten percent of a system — the part that closes the feedback loop — matters more than the ninety percent doing the actual work. A system that runs reliably but requires you to go looking for its output is only half-finished. The other half is the part that means you find out without trying.

Most of my AI tools were missing that half.

Related by topic
  1. The Queue Should Live Where Your Thoughts Live
  2. The Wrong Metric: Why I Stopped Switching AI Models Mid-Session
  3. After the Harness