Skip to content

Dooit vs dstask

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

Dooit

Terminal to-do manager configured with a Python file

Free

dstask

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

Free

Where they differ

  • Dooit is free. dstask is free.
  • Only dstask lists a macOS app.
  • dstask also covers Markdown.
In commonFree planLinuxWindowsOpen sourceKeyboard-firstTasks

At a glance

Dooitdstask
PricingFreeFree
Starts atFreeFree
Free planFree and open source under the MIT license, with no paid version. It is installed from PyPI, Conda, Arch Linux packages or a Nix flake.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.
Free trialNone listedNone listed
macOS
Windows
Linux
Made bykraanzu (dooit-org)Cal Bryant
Price read fromgithub.comgithub.com
CheckedOct 9, 2026Oct 9, 2026

Who each one suits

Dooit

  • People who manage their tasks from a terminal
  • Vim users who want familiar keybindings
  • Tinkerers who like configuring tools in Python

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

Worth knowing

Dooit

  • It runs in a terminal only; there is no graphical, web or mobile app.
  • Customizing it means writing a Python config file.
  • The documentation has no section on syncing tasks between devices.
  • The docs list install methods (PyPI, Arch Linux, NixOS, Conda) rather than supported operating systems; the changelog includes fixes for Windows but does not mention macOS.

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.

Key features

Dooit

Terminal interface with Vim-like keys
The app runs as a text interface in the terminal and uses Vim-like keybindings. Pressing ? opens a help menu listing every key currently bound.
Workspaces and nested todos
Todos are grouped into workspaces by topic. Workspaces can contain child workspaces, and a todo can hold sub-todos.
Due dates, urgency and status
A todo has a due date that accepts forms such as "1 jan 2025", one of four urgency levels, and a status of completed, pending or overdue. Words starting with @ act as tags.
Recurrence and effort
Recurrence is entered as an interval such as 1d or 1w, in minutes, hours, days or weeks. Effort is a plain number that can stand for points, time or a streak.
Python configuration
A Python config file sets keybindings, layout, the status bar, the dashboard, column formatters and themes, and custom CSS is supported.
Plugins and a Python backend
The separate Dooit Extras package adds utilities for customizing a setup, and the Workspace and Todo tables can be queried or changed from Python through SQLAlchemy.

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.

Plans

Dooit

  • Free$0

    The complete terminal app and the optional Dooit Extras package, installed with pip, Conda, yay on Arch Linux or Nix.

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.

More comparisons