https://github.com/imdone/imdone-core
Text based kanban processor
https://github.com/imdone/imdone-core
design-debt task-manager technical-debt
Last synced: about 2 months ago
JSON representation
Text based kanban processor
- Host: GitHub
- URL: https://github.com/imdone/imdone-core
- Owner: imdone
- License: mit
- Created: 2014-03-24T14:50:22.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2025-11-02T01:20:17.000Z (3 months ago)
- Last Synced: 2025-11-02T03:16:27.440Z (3 months ago)
- Topics: design-debt, task-manager, technical-debt
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/imdone-core
- Size: 5.69 MB
- Stars: 146
- Watchers: 6
- Forks: 28
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://badge.fury.io/js/imdone-core)
[](https://npmjs.org/package/imdone-core)

Imdone is text based kanban processor with a simple syntax that uses [comment tags like TODO and FIXME](https://en.wikipedia.org/wiki/Comment_%28computer_programming%29#Tags) and [todo.txt format](https://github.com/todotxt/todo.txt#todotxt-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](https://imdone.io) or use the cli to see your projects board and this library in action.

- [Imdone format](#imdone-format)
- [Code Style](#code-style)
- [Hash Style](#hash-style)
- [Markdown Style](#markdown-style)
- [Task syntax](#task-syntax)
- [todo.txt syntax examples](#todotxt-syntax-examples)
- [Create date](#create-date)
- [Completed date](#completed-date)
- [Due Date](#due-date)
- [Tags (todo.txt projects)](#tags-todotxt-projects)
- [Context](#context)
- [Metadata](#metadata)
- [Metadata links](#metadata-links)
- [Events](#events)
- [Resources](#resources)
- [License](#license)
## 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](https://en.wikipedia.org/wiki/Comment_%28computer_programming%29#Tags) and [todo.txt format](https://github.com/todotxt/todo.txt#todotxt-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 README.md. 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](https://github.com/imdone/imdone-core/blob/master/lib/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](https://github.com/todotxt/todo.txt) 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
#### Context
#doing:20 This task has a *madjs* context @madjs
#### Metadata
#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
```javascript
"meta": {
"user": {
"urlTemplate": "https://github.com/%s",
"titleTemplate": "github profile for %s"
}
}
```
Events
----
- task.found
- task.deleted
- file.modified
- initialized
- file.processed
- file.update
- file.empty
- file.read
- file.reading
- files.found
- files.saved
- config.update
- list.found
- list.modified
- tasks.moved
- tasks.updated
- error
- config.loaded
Resources
----
- [Using TODO Comments to Keep You Programming in the Zone](https://medium.com/imdoneio/the-imdone-pitch-feedback-welcome-386430accf01)
- [5 ways using TODO comments will make you a better programmer](https://medium.com/imdoneio/5-ways-using-todo-comments-will-make-you-a-better-programmer-240abd00d9e4)
- [I Still Use Plain Text for Everything, and I Love It](https://lifehacker.com/i-still-use-plain-text-for-everything-and-i-love-it-1758380840)
- [Why Geeks Love Plain Text (And Why You Should Too)](http://www.lifehack.org/articles/technology/why-geeks-love-plain-text-and-why-you-should-too.html)
- [The Benefits of Using Plain Text | Terminally Incoherent](http://www.terminally-incoherent.com/blog/2007/07/18/the-benefits-of-using-plain-text/)
- [The future of education is plain text · Simply Statistics](https://simplystatistics.org/2017/06/13/the-future-of-education-is-plain-text/)
- [The future of education is plain text | Hacker News](https://news.ycombinator.com/item?id=14545250)
- [Derry Birkett › Plain text is the best UX](http://derrybirkett.com/comment/plain-text-is-the-best-ux/)
- [Tools – The Plain Text Project](https://plaintextproject.online/tools.html)
- [The Plain Text Workflow · Richard A. Lent, Ph.D.](https://richardlent.github.io/post/the-plain-text-workflow/)
- [My Plain Text Workflow – Doyce Testerman](http://doycetesterman.com/index.php/2014/12/my-plain-text-workflow/)
- [Word Processors: Stupid and Inefficient](http://ricardo.ecn.wfu.edu/~cottrell/wp.html)
- [Is the keyboard faster than the mouse? | Hacker News](https://news.ycombinator.com/item?id=14544571)
- [Blog | Personal Kanban](http://personalkanban.com/pk/blog/)
- [Do TODO comments make sense? - Software Engineering Stack Exchange](https://softwareengineering.stackexchange.com/questions/125320/do-todo-comments-make-sense)
License
----
[MIT](LICENSE)
[npm-image]: https://img.shields.io/npm/v/imdone-core.svg
[npm-url]: https://npmjs.org/package/imdone-core
[downloads-image]: https://img.shields.io/npm/dm/imdone-core.svg
[downloads-url]: https://npmjs.org/package/imdone-core
[travis-image]: https://img.shields.io/travis/imdone/imdone-core/master.svg?label=linux
[travis-url]: https://travis-ci.org/imdone/imdone-core