Skip to content

Cfait vs dstask

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

Cfait

Offline-first CalDAV task manager for terminal, desktop and Android

Free

dstask

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

Free

Where they differ

  • Cfait is free. dstask is free.
  • Only Cfait lists an Android app.
  • Cfait also covers daily notes and time tracking.
  • dstask also covers Markdown.
In commonFree planLinuxWindowsmacOSOpen sourceLocal-firstKeyboard-firstTasks

At a glance

Cfaitdstask
PricingFreeFree
Starts atFreeFree
Free planCfait is free, open-source software under the GPL-3.0 license with no paid plans. The developer accepts donations through Liberapay and Ko-fi.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
Android
Made byBenoit Brummer (Trougnouf)Cal Bryant
Price read fromgithub.comgithub.com
CheckedOct 9, 2026Oct 9, 2026

Who each one suits

Cfait

  • Keyboard-driven users who work in a terminal
  • People who sync tasks through their own CalDAV server
  • Linux and Android users who want an open-source task manager

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

Cfait

  • There is no iOS app or web version: the README lists Linux, FreeBSD, Windows, macOS and Android.
  • The macOS binaries are built and hosted by a contributor on a separate site, not on the project's releases page.
  • Syncing between devices needs a CalDAV server that the user hosts or signs up for; Cfait runs no sync service of its own.
  • Help is built into the apps; the README points to in-app guides, a commented config file and SPECS.md in place of a manual.

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

Cfait

One-line task syntax
Typing a line such as "Buy green tea @tomorrow !1" sets the due date and priority. Other markers set start dates, estimated durations, recurrence and locations.
Terminal, desktop and Android apps
A terminal interface, a graphical desktop app and a native Android app with home-screen widgets share one Rust core and the same task data.
Offline-first with CalDAV sync
The default Local collection needs no server. To sync devices, Cfait connects to standard CalDAV servers; the README names Nextcloud, Radicale and Baikal.
Sub-tasks, dependencies and tags
Tasks form parent and child trees, one task can block another, and hierarchical tags such as #work:backend can be combined into reusable aliases.
Time tracking and goals
A task can be started and paused to record time spent, given an estimated duration, or tied to a recurring habit goal such as five times a year.
Daily notes and wiki pages
A date-anchored journal and wiki pages linked with double square brackets sit beside the tasks and sync as CalDAV VJOURNAL entries.

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

Cfait

  • Free$0

    The terminal, desktop and Android apps with every feature. Syncing uses a CalDAV server the user supplies.

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