OpenTodo 0.12.0 builds on Precision. Press → on a task to see its details under the row, without leaving the list. Mention a whole group with @Adults, and filter by workspace with workspace: Home. The comment box gets buttons for mentions and formatting, ot gets shell completion, and end-to-end encrypted accounts can use the assistant from their own device with their own key, when the owner allows it. The briefing links each full day, has a switch in Settings, and the rest of the app now holds up at larger text sizes.
Upgrade notes
- No migrations, no new environment variables. Replace the image or the binary and restart. Upgrade the server before the devices, as for every release.
- The assistant for encrypted accounts is off until the owner turns it on in Settings → Assistant. While it is on, the page's Content-Security-Policy lets the app connect to the provider addresses the owner allowed, for every account on the server; turn it off to keep the policy as before. (Assistant on encrypted accounts)
- Group mentions are stored as
group:<id>in the existing mention lists. Devices still on 0.11 ignore those entries until they update; the server notifies the group either way. (Sync protocol)
Added
- Mention and format from the comment box. The comment box has an @ button that starts a mention (people first, then the workspace's groups), and on a computer a Formatting button that shows a row of bold, italic, link, lists and more. Comments are still stored as Markdown, so the API,
ot, MCP and exports see them as before. (Comments and activity) - Shell completion for
ot.ot completion bash,ot completion zshorot completion fishprints a script; install it once and Tab completes commands, flags and fixed values, plus project, label and workspace names, open task ids with their titles, and#projectand@labelinot add, read from your profile's server. Offline it still completes commands and flags and prints nothing into your prompt. (Shell completion) - Mention a group. In a comment or a task's notes,
@Adultsmentions a group of the task's workspace: the mention list offers the groups after the people, the group shows as a chip with a group icon, and everyone in the group who can see the task gets one notification naming the group. Nobody outside the project is told, and someone mentioned twice is notified once. (Workspaces) - Filter by workspace.
workspace: Home(orworkspace: "Side projects") matches the tasks of that workspace, and a filter that names a workspace looks at every workspace, so(workspace: Home | workspace: Work) & due = this weeklists both from anywhere; the filter builder has a Workspace condition. (Filters) - The assistant on encrypted accounts, from your own device. The server cannot read an end-to-end encrypted account, so it never runs the assistant for one. When the owner turns on Let encrypted accounts use the assistant from their own device (off by default), the panel sets the assistant up on this device instead: you choose a provider the owner allows (Anthropic, OpenAI, Google Gemini or a model server such as Ollama at an address the owner listed), a model and your own key, which stays in this browser and is deleted at sign-out. Your device reads its own decrypted tasks and calls the provider directly; the server sees no content and no key, and usage is not reported. Proposals, review, undo and skills work as before. The page's Content-Security-Policy lets the app reach exactly the providers the owner allowed. (Assistant on encrypted accounts)
- Expand a row in place. Select a task and press →, choose Show details in the row's actions, or tap the arrow at the end of a row on a phone: the task's notes (with Show more), its dates, project, priority, estimate, labels, assignee and what it waits for, its subtasks and its comment and attachment counts open under the row, without leaving the list. Tick subtasks right there; ← or Esc closes the details again. One row at a time, in lists and views (not on boards). (Expand a row)
Changed
- App store templates match what was submitted. OpenTodo 0.11.0 is submitted to the Umbrel, TrueNAS, CasaOS, Dokploy, Easypanel, Cosmos and Portainer stores. The TrueNAS app's default Web UI port is now 30536 (30530 was taken by another app in the catalogue), and the Dokploy template names a release such as
0.11.0instead ofstable, as Dokploy's catalogue requires; to update a Dokploy service, change its image tag and redeploy. On Umbrel, add OpenTodo to Apple's Calendar or Reminders with the full CalDAV address, because automatic discovery stops at Umbrel's login. (TrueNAS, Dokploy, Umbrel) - The briefing links each full day, and has a switch in Settings. When Upcoming says "Friday and Monday are already full", Friday and Monday are now separate links, each opening Upcoming at that day, in every language. Settings → General → Briefing has a Show the briefing switch, the same choice as Hide briefing in the menu of Today and Upcoming, on all your devices. "2 tasks are late" still selects those tasks, ready for the selection bar; Esc clears them. (The briefing)
Fixed
-
Inbox zero is one quiet line when planned tasks are below it. With every task that has no project already scheduled, the Inbox showed the large Inbox zero picture above the "Planned, no project" group and its count; it now shows only the sentence there, and keeps the picture for an Inbox with nothing below it. (Today and Upcoming)
-
The bulk label picker shows the right checkmarks. Opened with L straight after ticking tasks, the label picker showed no checkmarks until it was closed, and none changed after a pick; it now marks the labels every ticked task has as soon as it has read them, and updates after each pick.
-
Larger text sizes on the rest of the app. With the browser's text size at 20 or 24 px, the date picker's month no longer runs off a phone, the Share dialog's email field gets its own line, Settings keeps your name readable beside your role, the command bar's mode buttons wrap instead of overlapping, Statistics shows its figures in one column on a phone, and the Inbox's Process on a phone keeps only its icon so the title fits. Display mode, dialogs and the wide task panel now switch layouts at the same points as the rest of the app.
Install
- Docker:
docker run -d -p 8080:8080 -v opentodo:/data ghcr.io/pixari/opentodo:0.12.0 - Binary: download
opentodo-<os>-<arch>below, then run it (data goes to./data). - Command-line client:
ot-<os>-<arch>. Browser extension:opentodo-browser-extension-chrome.zipandopentodo-browser-extension-firefox.zip.
Verify downloads with sha256sum -c SHA256SUMS. Self-hosting guides: docs/self-hosting.