dstask vs topydo
Price, platforms and features side by side. The table says where each price was read and when.
Where they differ
- dstask is free. topydo is free.
- dstask also covers Markdown.
In commonFree planmacOSLinuxWindowsOpen sourceLocal-firstKeyboard-firstTasks
At a glance
| dstask | topydo | |
|---|---|---|
| Pricing | Free | Free |
| Starts at | Free | Free |
| Free plan | The whole program is free and open source under the MIT license, with no paid edition. Sync runs over a git repository that you set up and host yourself. | The whole program is free and open source under the GNU General Public License v3, with no paid edition. It is installed from PyPI with pip. |
| Free trial | None listed | None listed |
| macOS | ||
| Windows | ||
| Linux | ||
| Made by | Cal Bryant | Bram Schoenmakers |
| Price read from | github.com | github.com |
| Checked | Oct 9, 2026 | Oct 9, 2026 |
Who each one suits
dstask
- People who work in a terminal and are comfortable with git
- Taskwarrior users who want sync without running a sync server
- Keeping working notes and checklists alongside each task
topydo
- People who keep tasks in a todo.txt file and work in a terminal
- todo.txt users who want dependencies and recurring items
- Keyboard users who want several filtered lists side by side
Worth knowing
dstask
- Personal use only: the README lists collaboration as a non-feature.
- There is no GUI, web or mobile app in dstask itself; the FAQ points to a separate, early-stage community web GUI.
- Editing the same task on two machines without syncing can produce a git merge conflict that has to be resolved by hand.
- Tasks are not encrypted: the FAQ says encryption is not a design goal. Contexts are not synchronised between machines.
topydo
- Console only: there is no graphical, web or mobile app. The docs say there is no native Android build and describe running it under Termux.
- Column mode does not work natively on Windows; the docs point Windows users to Cygwin for it.
- Dependencies, recurrence and start dates rely on tags that, the README says, other todo.txt tools may not interpret properly.
- The documentation describes no sync feature, and releases are infrequent: PyPI shows 0.14 in December 2020, 0.15 in April 2025 and 0.16 in February 2026.
Key features
dstask
- Git-based sync and undo
- Tasks are stored in a git repository, ~/.dstask by default. The sync command pulls then pushes, and undo reverts the last action with git revert, so there is no sync server to run.
- Contexts
- A context is a filter of tags and projects that narrows task listings and is also applied to new tasks. It is set with the context command or, per terminal, with the DSTASK_CONTEXT variable.
- Markdown note per task
- The note command opens a full markdown note for a task in your editor, where a checklist can track subtasks. The open command launches the URLs found in a task and its note in the browser.
- Priorities, projects, tags and due dates
- Tasks take a priority from P0 (critical) to P3 (low), a project, tags and a due date typed as a weekday, a relative day or a date. The default view sorts by priority, then creation date.
- Task states and review commands
- Start and stop mark tasks as active or paused. Commands such as show-resolved, show-projects and show-unorganised list completed tasks by week, project completion and untagged tasks.
- Import from Taskwarrior and GitHub
- The separate dstask-import tool loads a Taskwarrior export, which the docs call lossy, or pulls GitHub issues into dstask one-way using an API token.
topydo
- Command line, prompt and column modes
- Runs as one-off shell commands, as a prompt with Tab auto-completion, or as a text interface of side-by-side columns with vim-like keys, where each column has its own filter and sort order.
- Due dates, start dates and relative dates
- Due and start dates are stored as tags on the todo.txt line. When adding items you can type relative dates such as tomorrow, 1w or fri, which are written to the file as absolute dates.
- Dependencies between items
- The dep subcommand links a parent item to child items that should be done first. A parent with open children is hidden from the default list, and a Graphviz Dot export can draw the dependency tree.
- Recurring items
- A rec tag such as rec:1w creates a new instance of an item when it is completed, counted from the completion date or, in strict mode, from the original due date.
- Filtering, sorting and output formats
- Filter expressions select items by text and by tag comparisons such as due:<today, and sort and group expressions order the result. The ls command can also output iCalendar, JSON and Graphviz Dot.
- Backups and revert
- After each change topydo stores a backup of the todo and archive files, 5 by default, and the revert subcommand undoes the last command or a numbered earlier one.
Plans
dstask
Free$0
The dstask binary and the dstask-import tool for Linux, macOS and Windows, from the GitHub releases page or unofficial Homebrew, AUR, Nix and FreeBSD packages.
topydo
Free$0
The full program with its command-line, prompt and column interfaces. Prompt mode, column mode and iCalendar output each need an extra pip dependency.