Todo Lists stored on github
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Todo Lists stored on github

What is it?

Gitodo is a simple CLI utility to manage todo list items, using a github repo as the datastore. Todo lists are stored and managed in markdown files.

Gitodo supports sublists inside lists, as well as list/sublist creation, checking off items, listing items, and searching.


  • Create a new list gitodo create FileName

  • Add a new Todo to a list gitodo todo FileName "Take Over The World"

  • Checking off a todo item gitodo complete FileName "Take Over The World"

  • Creating a sublist: gitodo sublist FileName "Sublist Name"

  • Viewing a List gitodo show FileName

  • Viewing only uncompleted todos: gitodo show FileName --open

  • Viewing only completed todos: gitodo show FileName --done

  • Remove a todo: gitodo remove FileName "todo"

  • Searching for a todo: gitodo search FileName "todo"

Create list with different name than file

By default gitodo will add a heading to a new list file equal to the name of the file. To use a custom heading for your new list file, you can use the --list-name flag.

gitodo create Concerts --list-name "Rad Shows to go see"

Forcing (The -f flag)

By default Gitodo will throw errors if you attempt to add a todo to a file that does not exist, or to a sublist that does not exist in a file. Adding the -f flag, (or --force) will suppress the errors and create the file or sublist as necessary.

Working with sublists (The -s flag)

If you could like a command to pertain to a sublist only during either show or todo commands, you may add the -s flag with the list name to follow.

Example: gitodo show FileName -s "Sublist Name"

If you would like to create a new Todo List with a sublist you can add the -s flag to add the default General sublist to the file. You can also add an argument after the -s flag to provide a custom sublist name.

Example: gitodo create FileName -s //adds General sublist

With Custom Sublist: gitodo create FileName -s "My Nifty List Name"

Adding Links (The -l flag)

If you would like to add a link to a todo, you can do that easily with the -l flag.


gitodo todo SomeFileName "The Dutch" -l ""

Will Result in:
- [ ] [The Dutch](

Searching All files(The -a flag)

When searching for todos, you can add the -a or --all tag to search every .md file in the current directory.

gitodo search "Search Term" --all

Custom Commit Messages (The -m flag)

By default gitodo will compile commit messages detailing each step of the process.


Added sublist General in list Todo Alice In Wonderland successfully added

If you would like to change that commit message, you can use the -m flag.

gitodo pubish -m "We're all mad here"


Make gitodo executable, and move to a useable place.

chmod +x gitodo && cp gitodo /usr/local/bin/

Gitodo is not able to be used from inside any git repo you like.

Upcoming Features

  • Support for Due Dates

  • View due todos gitodo show --due

  • View past due todos gitodo show --past-due

  • Add multiple, todos at once
  • move todo to different list gitodo move FileName "Todo" "New List Name"
  • move todo to different file gitodo move FileName "Todo" --file "New Filename Name"
  • move list to different file gitodo move OldFileName --file NewFileName --list "list Name"
  • remove sublist
  • complete sublist
  • Ability to have same todo on multiple sublists
  • Ability to publish a single file
  • Allow access to lists inside subfolders