![Gitter](https://badges.gitter.im/Join Chat.svg)
Manage your GitHub Flavored Markdown Task List from the command line. A simple (but useful) example built using autocmdr.
Todo-md is meant to be a dead simple text based task manager. There are many task managers out there. What makes todo-md different? todo-md is, first of all, markdown based. todo-md runs off the command line and the task list is stored in a simple markdown file. Text based tasks list are easy to manage as part of a git repository. Furthermore, the todo list is gfm compatible for easy viewing in github and gist. Simply check-in your todo.md file along with your source code and readme file. Also, like git and npm, todo-md by default works in the current working directory so each project can have it's own todo list.
I use todo-md all the time. I hope you find it useful as well. Feedback is welcome.
Install todo-md globally
$ npm install -g Hypercubed/todo-md
Do one of the following to enable auto-completion in your shell.
- Add completion helper to ~/.bashrc (or ~/.zshrc)
todo completion >> ~/.bashrc
- Add completion to current shell
. <(todo completion)
Creating a todo list is done simply by adding your first task. For example
$ todo "Learn to use task-md"
will create a todo.md
file in the current directory containing a single line:
- [ ] Learn to use task-md
Note that when adding tasks the add
command is optional. You can also type todo add "Learn to use task-md"
.
To mark a task as done type
$ todo do 1
or undo
$ todo undo 1
To remove a task
$ todo rm 1
After each command you will see a list of your tasks along with line numbers. You can also get the list at anytime by typing
$ todo
Note that the command list
is optional you may also type todo list
.
Note that do
, undo
, and rm
require an index while list
and add
the index is optional. With the exception of the add
command this index can be a single line number (as displayed when running todo list
) or a list of line numbers. Ranges may also be used. For example the following command will mark line 15,20, and 25-30 as done.
$ todo do 15,20,25-30
Adding the -g option flag to any command will set the working file to ~/todo/todo.md
. Great for keeping a master todo list. Try using gistup to push to github gist for online task management:
cd ~/todo/todo.md
gistup --private -- todo.md
Usage: todo [options] [command]
Commands:
list [index] Displays all (or specified) lines in todo list with line numbers
print [index] Displays all (or specified) lines in todo list without line numbers (same as list --no-color --no-stats --no-line-numbers)
add <text_to_add> [index] Adds text_to_add to your todo file on its own line at [index] or EOF if no index provided
do <index> Marks task as done
undo <index> Marks task as not done
rm <index> Removes tasks
mv <from> <to> Moves task <from> to <to>
status Shows the tasks status (total, done, pending)
Options:
-h, --help Output usage information
-d, --debug Enable debugger
-g, --global Use global todo list (usually ~/todo/todo.md)
-N, --no-line-numbers Disable line numbers
-C, --no-color Disable line numbers
-S, --no-stats Disable stats
-q, --quiet Quiet mode
-V, --version output the version number
See todo.md (managed using todo-md)
Copyright (c) 2013 Jayson Harshbarger
Built using generator-commader and autocmdr.