1.43.6 • Public • Published

npm version Downloads [Build Status

Imdone is text based kanban processor with a simple syntax that uses comment tags like TODO and FIXME and todo.txt format. This model allows the user to create and modify tasks using the keyboard and automatically establishes a link between their tasks and work. Get imdone or use the cli to see your projects board and this library in action.

imdone-screenshot.png (5120×2838)

Imdone format

Imdone aims to keep you in the flow of your work while capturing tasks to be accomplished later. Most kanban tools require the user to use a UI. Imdone lets you capture tasks in a simple text format that has roots in programming comment tags like TODO and FIXME and todo.txt format.

Code Style

// TODO This is a task
// TODO: This is a task
// TODO:5 This is a task
// TODO: A task with a description looks like this.
// Every line after the task is part of the description until we find another
// task, a blank comment line, or a line of code
// - A list item
// - Another list item

Hash Style

#TODO: This is a task
#TODO:0 This is a task
#to-do:0 This is a task

#TODO: If you don't want your task to get converted to html in markdown files, put it in a comment.
You can still add descriptive text, but don't forget to leave a blank line
between the description and the comment end tag, or the comment end will become
a part of your description.


Take a look at the source of this You'll probably find a few tasks in comments.

Markdown Style

[This is a task](#todo:)
[This is a task](#todo:10)

Task syntax

  • Code style tasks will only be detected if the list name matches a string in the code.include_lists attribute in .imdone/config.yml and the file extension exists in lib/languages.js.
  • List names in code style tasks must match this regular expression ([A-Z]+[A-Z-_]+?).
  • Only code style tasks can be used in code files and must be in a line or block comment
    • Code style tasks are only detected in comments for files with extensions listed in imdone-core/languages.js or the languages attribute in the .imdone/config.yml
  • In Hash and markdown style tasks list name can be any combination of upper and lower case letters, underscores and dashes
  • In Hash and markdown style tasks the list name must be followed by a : and a number which determines sort order in the list
    • Sort numbers can be reused, in which case tasks with the same sort number will be sorted alphabetically by text.
  • Task text can have todo.txt formatting excluding the completion and priority markers.
  • Task text can have markdown formatting

todo.txt syntax examples

Imdone uses todo.txt +project/tag @context and meta:data

Create date

#DOING:20 This task was created on 2018-02-09 created:2018-02-09

Completed date

#DOING:20 This task was completed on 2018-02-09 completed:2018-02-09

Due Date

#doing:20 This task is due on 2015-02-09 due:2015-02-09

Tags (todo.txt projects)

#doing:20 This task has a *madjs* tag +madjs


#doing:20 This task has a *madjs* context @madjs


#doing:20 This task has profile metadata profile:piascikj
Metadata links
  • Tasks with metadata can be linked to external resources like other task mgmt systems and websites
  • Add a meta attribute to .imdone/config.yml
  • In this example user:piascikj would link to
  "meta": {
    "user": {
      "urlTemplate": "",
      "titleTemplate": "github profile for %s"


  • task.found
  • task.deleted
  • file.modified
  • initialized
  • file.processed
  • file.update
  • file.empty
  • file.reading
  • files.found
  • files.saved
  • config.update
  • list.found
  • list.modified
  • tasks.moved
  • tasks.updated
  • error
  • config.loaded




Package Sidebar


npm i imdone-core

Weekly Downloads






Unpacked Size

301 kB

Total Files


Last publish


  • piascikj