OpenTodo 0.20.0: routines, multi-step automations that run on your own server, with AI steps that never write without your review

Wait 5 sec.

I am the maintainer of OpenTodo, a self-hosted, local-first task manager (Go + SQLite, one container, AGPL). This release adds routines, and since this sub gave me the most useful feedback on earlier releases, here is what they are and what they are not. What a routine is. Several steps in a row, each using what the step before produced. "Every Sunday at 18:00: find overdue tasks, set them due tomorrow, count them, notify me with the count." Steps include find, create, change, comment, read and append to notes, split, join, format, if/otherwise, repeat for each, timers, notifications, a webhook, an email to your own verified address, and two AI steps. https://reddit.com/link/1xlslg5/video/4ytn0yso26zh1/player How you build one. An editor of cards, phone first. Each card is a sentence whose bold words are buttons. Each card previews what it would do against your real tasks before anything is written. Eleven starters are included. Everything also exists in the REST API, the ot CLI (JSON or YAML) and over MCP. AI steps, with limits. Ask AI and Summarise call the provider you configured (Anthropic, OpenAI, Gemini, or a compatible endpoint on your own network). A run with an AI step writes nothing by itself: changes wait as a proposal you review item by item and apply with one Undo. "Apply without asking" is off by default, can only be switched on in the app (never by an agent or a token), is capped at 20 items a run, and switches itself off after a run that would exceed that or after two failures. Each routine has a daily token budget. No AI vendor is built in; the feature is off until the owner configures a provider. Encrypted accounts. With end-to-end encryption on, routines that read text run on one of your own devices, not on the server; the server only relays ids and applies encrypted changes. What it is not. Not a general workflow engine: 20 steps, 60 seconds, 500 items written per run. Not a scheduler for arbitrary scripts; the only outbound targets are your own webhooks and your own verified email address. Runs on. One container, about 34 MB binary with the web app inside, SQLite, no other services, a Raspberry Pi is fine. Upgrade is replace the image and restart; the release notes list the additive fields. Clip of the editor in the comments. Docs: https://open-todo.app/docs/routines/ . Source: https://github.com/OpenTodoApp/OpenTodo . Happy to answer anything, including why I made choices you disagree with.   submitted by   /u/Alternative_One_4804 [link]   [comments]