Skip to content
OpenTask
v0.5.0 — board layout, desktop app, audio cues

The task manager you actually own

OpenTask speaks the Todoist workflow you already know — the Quick Add grammar, the filter language, the keyboard map — without the cloud, the subscription, or the second user you never wanted.

docker run -d --name opentask -p 7968:7968 -v ./data:/data ghcr.io/pranav-karra-3301/opentask
The OpenTask Today view: an overdue section with one-tap reschedule, priority colours, and the project sidebar
container to run
1container to run
volume to back up
1volume to back up
telemetry calls
0telemetry calls
licensed, forever
AGPLlicensed, forever

Capture

Type it the way you say it

The full Todoist Quick Add grammar: natural-language dates like “tom 4pm” or “mid january”, #project, /section, @label, p1–p4, {deadlines}, !reminders, “for 45min” durations, and // descriptions. Tokens highlight as you type and land as structured fields.

Get started
Quick Add parsing “Prepare launch notes tomorrow 9am p2 #Work @deep-work” into chips

Organize

Projects, sections, labels, filters

Nested projects with sections and a 20-colour palette. The Todoist filter language is here in full — & | ! ( ), date and deadline operators, @label wildcards, ##Project with descendants, search:, subtask — and every view can be a list or a kanban board.

What it does and does not do
A project rendered as a kanban board with Admin and Meetings columns

Plan

Today, Upcoming, and a keyboard for everything

Overdue rolls up with one-tap reschedule. Upcoming is a week strip you can drag tasks between. ⌘K opens a fuzzy palette over every view, project, and action, and every destructive edit has a 10-second undo.

Also: a CLI
The Upcoming view showing a week strip with tasks grouped by day

Measure

Goals, streaks, and unlimited history

Daily and weekly goals, karma, vacation mode, and an activity feed that never truncates — because the database is yours and nobody is upselling you a history add-on.

The Reporting view showing daily completion counts and streaks

Own your data

Easy to move in. Easy to leave.

Import from Todoist with a backup ZIP or a live API token. Export a full JSON snapshot or per-project CSV whenever you like. Nightly VACUUM INTO snapshots with retention and one-click restore. It is one SQLite file — the exit is always open, which is the only reason to trust the entrance.

Run it in about a minute

One container, one /data volume, port 7968. Then open it and create your account — registration locks itself after the first user.

docker run -d --name opentask -p 7968:7968 -v ./data:/data ghcr.io/pranav-karra-3301/opentask