There was no live view of what was actually still open — a half-sent application, a security fix, a consulting rate I kept meaning to decide. The "proper" fix is a dashboard heatmap, but that needs a desktop session. So I built the usable-today version instead: one markdown file, plus a bot that ticks a thread off the instant I text close 3 from my phone. Writing it down surfaced 11 loose threads at once.
A security fix that's 80% done. An application letter written but never sent. A consulting rate I keep meaning to decide before a meeting. Each one stalls at a different step, in a different tool — and none of them shows up anywhere as "still open." My todo list only holds tasks I typed in; my inbox holds read mail; my repos hold uncommitted changes. There was no single live view of the threads actually left dangling across all of it. Out of sight, they quietly rot.
The "proper" answer is a dashboard heatmap: a tile per thread, colour by how stale it is. It's even on the roadmap (todo #34). But that's a desktop build, and desktop time is exactly what I don't have this week. So I built the version I could use tonight: inbox/open-threads.md — one line per open thread, appended as new ones open. The trick isn't the file, it's the interface: I never edit it by hand. I reply close 3 from anywhere — phone Telegram, desktop terminal — and Claude flips that line from - [ ] to - [x] in the file my next session reads. A checklist with a chat interface, reachable from my pocket.
inbox/open-threads.md. 10 still open. (works the same from the desktop terminal — same file, same reply)
close N from the phone; the desktop session reads the ticked file nextI only meant to build a tracker. Writing it down turned into an audit. The moment the file existed, 11 open threads stared back — and a couple were things I'd have sworn were done. A kill-switch check that had quietly failed three nights running. Personal data sitting uncommitted in a working repo. Two application letters written but stuck on a send decision. A consulting rate I still hadn't prepped for a meeting next week. The tool earned its place before I closed a single line: you can't close what you can't see.
The live file names actual people, companies and repos — so on this page every thread is abstracted to its type: "a job application," "a consulting deal," "a cold pitch," "an uncommitted-data repo." The private backlog stays private; the method is the point. If you build your own, keep the real file where only your AI session can read it — inbox/, never the public showcase.
Closing a thread from the phone, the checkbox flipping in the file, the one-line structure that makes it work, and the honest "why not the dashboard yet" note. Tap any image to enlarge it and read exactly what's on screen.




close 7 — watch it tick off in the file the desktop reads nextThis is the proof the loop works, not a promise that it will. From the couch, I text close 7. The bot flips line 7 to - [x], tells me how many threads are left, and the next desktop session opens the file already knowing that one is done — no re-sync, no app, no context lost between my pocket and my desk. The scrappy text file is doing the job the fancy dashboard tab still can't: it's usable today, from anywhere.
On camera: the loose threads rotting out of sight, the one-file tracker, the close N reply that works from phone or desktop, and the 11-thread audit that fell out of just writing it down.
The method is free, and there's almost nothing to it. A markdown checklist your AI session can read, one line per open thread, and a "close N" reply that ticks a box from any device. No app, no database, no dashboard — just a file and a chat interface. Everything in this episode is free and open — clone it, run it, make it yours.
# A checklist your AI reads, closeable from your phone:
# inbox/open-threads.md — one "- [ ] N. thread" per line; reply "close N" from anywhere → it flips to "- [x]"
The sanitized starter file + the close-N skill are being cleaned up for release. Comment THREADS on the post and the bot DMs you both the moment they're public.
The text file proved the idea. Next I give it a face: a tile per open thread on the dashboard, colour by how stale it's going, still closeable from the same close N reply. The upgrade the pragmatic version was buying time for.