A small tool to represent items from a todo.txt as a Kanban board

New ticket tracker added

1 year, 5 months ago

New mailing list added

1 year, 5 months ago


Build statusGo Report CardHomeIssuesDiscussion

A small tool to represent items from a todo.txt as a Kanban board.


If you like kanto, you might like legume, another local tool for managing issues in todotxt files and sourcecode comments.


If there is a todo.txt file in the current directory, it will be used instead of the default $TODO_FILE. This can be overridden with the -x flag, in which case the environment variable TODO_FILE will be used. The --file argument (or file= in the .kanto) supersedes these.

Projects are standard todo.txt + projects. The kanban states are interpreted from the @context. Tasks are ordered within their columns by priority. Completed tasks are hidden.

Contexts are presented in the order in which they're found in the todo file, so if you have a @completed task before a @started task, then that's the order the columns will be shown. If you want to enforce an order, put some completed tasks in the project at the start of the todo.txt in the order you want. Alternatively, you can specify the preferred order via the command line (or a config file).

If context orders are provided via preferences (--lanes), then only those contexts will create columns. Tasks with no contexts are ignored, except when an empty lane is added (--lanes ""). If an empty lane is specified, any un-contexted task will get put in a virtual "QUEUED" lane.

A list of projects may also be provided as a filter (the free arguments), so that only tasks for those projects will be shown. These may also be specified in the config file, as projects = PROJECT, one project per line. If no projects are specified, all tasks will be added.

If there is a .kanto file in the current directory, it will be loaded to fill the configuration. It should be a file of key = value pairs (unquoted), and can contain:

  • file = path-to-todotxt-file
  • lanes = lane-name (multiple of these, in order, are the same as -l LANE1 -l LANE2 -l LANE3 ...)
  • projects = project-name (multiple of these, in order, are the same as PROJA PROJB PROJC ...)

Tasks can be progressed (to the next lane) or regressed (to the previous lane) using the kanto progress ID and kanto regress ID commands. "progress" and "regress" can be abbreviated, as long as they are unique; e.g., kanto p 2 works too.


Pre-compiled binaries for Debian, Redhat, Alpine, and Arch are built by CI. The Arch zst and Alpine APKs are zst/gz tarballs, either of which can be inspected and extracted into / to install, or use something like xstow. The Arch .zst.sig is signed with my GPG key 0D7ABD6668FDD1.

If you have Go installed, you can get kanto with:

go install ser1.net/kanto@latest

#Example .kanto

# Lines like this will be ignored
file = .todo.txt
projects = project
projects = other_project
lanes = planning
lanes = in_process

An example todo.txt is included in this repository.