mm answers one question — what now — with exactly one task. Mark what matters as a gate and mm won't offer you anything easier until it's done. Interrupts preempt, then unwind. Habits sync both ways with your Obsidian daily note. Zero dependencies, MIT.
Framer AI AgentsDesign and publish professional sites with AI
Promoted
Maker
📌
Hi Product Hunt 👋
I built mm because my problem was never remembering what to do. It was
opening a perfectly good to-do list, seeing eleven things, and picking the
easiest one. Every app I tried answered "what have I got?" — and that
question always has a comfortable answer.
So mm only answers "what now", with exactly one task.
The part that actually changed my days is gates. You mark the work that
matters as a gate, and while it is open mm refuses to hand you anything
else. Not a red label. Not a nag. The easy task is still in the list,
greyed out and marked gate-locked, and the tool simply will not offer it.
You can always override it — mm done closes anything — but you have to
type that, on purpose. Turns out that is the whole difference.
Two other things I use every day:
→ Interrupts go on a stack that unwinds. Something urgent preempts
everything, and closing it puts you back on the exact task you left,
rather than quietly replacing it.
→ Habits sync both ways with my Obsidian daily note. I tick "reading" in
Obsidian, it leaves the queue with the streak credited. I run mm done, the
box ticks itself.
It is Python 3.11+, zero dependencies, MIT, and everything lives in ~/.mm as
plain files. No account, no server, no telemetry — there is no network code
in it at all.
What it is not: there is no GUI and no phone app, no due dates and no
reminders. If you need those, a normal to-do app is genuinely the better
tool and I would rather you keep using it.
I would love to hear where gates break for you — especially the day you
override one, and why. That is the feedback I cannot get from my own usage.