This is intended to be a two-way sync between Habitica and Todoist. Any tasks that can only be found in one service should appear in the other, with the same status. Therefore, if you complete a task in one service, it should appear as completed in the other. Tasks that are created in Habitica should be sent to the 'Inbox' project in Todoist.


This utility depends on two existing API Python wrappers:

  • pip install habitica
  • pip install pytodoist


In order to have two-way syncing, a paid copy of Todoist is required.

If used without a paid copy of Todoist, the following will happen:

  1. completed tasks will not sync between the services
  2. tasks that you begin and complete from one service will not transfer to the other.

That is, if a task is created in Todoist and then checked off, it will not give you points in Habitica.

Task Priority and DifficultyEdit

By default, Todoist priority translates to Habitica task difficulty as follows, as laid out in $PRIORITY_DOC:

Todoist Priority Habitica Difficulty
p1 Hard
p2 Medium
p3 Easy
p4 Trivial

To change how the sync interprets difficulty or priority, please edit $PRIORITY_DOC.