Skip to content

dstask vs topydo

Price, platforms and features side by side. The table says where each price was read and when.

dstask

Terminal task tracker with git sync and a markdown note per task

Free

topydo

Console todo.txt manager with dependencies and recurring tasks

Free

Where they differ

  • dstask is free. topydo is free.
  • dstask also covers Markdown.
In commonFree planmacOSLinuxWindowsOpen sourceLocal-firstKeyboard-firstTasks

At a glance

dstasktopydo
PricingFreeFree
Starts atFreeFree
Free planThe 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 trialNone listedNone listed
macOS
Windows
Linux
Made byCal BryantBram Schoenmakers
Price read fromgithub.comgithub.com
CheckedOct 9, 2026Oct 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.

More comparisons