A CLI kanban board/task manager for Mac and Linux
- Per project task lists
vim
style key-bindings- Stored using Markdown
- Clean diffs for easy version control
- Support for sub-tasks
- Written in Haskell
You can install Taskell on your Mac using Homebrew:
brew install smallhadroncollider/taskell/taskell
There are usually bottles (binaries) available for High Sierra and Sierra. If these are not available for your computer, Homebrew will build Taskell from scratch using Stack, which can take a while, particularly on older machines. Occasionally the build fails the first time, but usually works on a second attempt.
A .deb
package is available for Debian/Ubuntu. Download it and install with dpkg -i <package-name>
.
Run sudo dnf install ncurses-compat-libs
then download and run binary as described below.
A binary is available for Mac and Linux. Download it and copy it to a directory in your $PATH
(e.g. /usr/local/bin
or /usr/bin
).
If none of the above options work you can build taskell using Stack. First install Stack on your machine. Then clone the repo and run stack build && stack install
: this will build taskell and then install it in ~/.local/bin
(so make sure that directory is in your $PATH
). Building from scratch can take a long time and occasionally doesn't work the first time (if this happens try running it again).
taskell
: will usetaskell.md
in the pwd - offers to create if not foundtaskell filename.md
: will usefilename.md
in the pwd - offers to create if not found
-h
: show help-v
: show version number-t <trello-board-id>
: import a Trello board (see below)
Taskell includes the ability to fetch a Trello board and store it as local taskell file.
Before fetching a Trello board, you'll need to create an access token and store it in ~/.taskell/config.ini
.
-
First, get a Trello token
-
Then add it to
~/.taskell/config.ini
:[trello] token = <your-trello-access-token>
You can revoke access tokens on Trello
Running the following would pull down the Trello board with the ID "TRe1l0iD" into a file named trello.md
and then open taskell with that file.
taskell -t TRe1l0iD trello.md
Make sure you have permission to view the Trello board, otherwise you'll get an error.
- This is a one-off procedure: it effectively imports a Trello board to taskell
- Only lists, card titles, and card descriptions are currently supported
- Better support for Card details (e.g. sub-tasks, due dates)
- Full syncing with Trello: effectively using taskell as a CLI Trello front-end
Press ?
for a list of controls
- If you're using a simple two-column "To Do" and "Done" then use the space bar to mark an item as complete while staying in the "To Do" list. If you're using a more complicated column setup then you will want to use
H
/L
to move tasks between columns.
By default stores in a taskell.md
file in the working directory:
## To Do
- Do this
## Done
- Do That
You can edit Taskell's settings by editing ~/.taskell/config.ini
:
[general]
; the default filename to create/look for
filename = taskell.md
[layout]
; the width of a column
column_width = 30
; the padding of a column
; for both sides, so 3 would give a gap of 6 between two columns
column_padding = 3
[markdown]
; the markdown to start a title line with
title = "##"
; the markdown to start a task line with
task = "-"
; the markdown to start a sub-task line with
subtask = " *"
Make sure that the values in the [markdown]
section are surrounded by double-quotes.
If you always use sub-tasks, an alternative setup for [markdown]
might be:
[markdown]
title = "##"
; each task is a header
task = "###"
; subtasks are list items under the header
subtask = "-"
Warning: currently if you change your [markdown]
settings any older files stored with different settings will not be readable.
You can edit Taskell's colour-scheme by editing ~/.taskell/theme.ini
:
[other]
; list title
title.fg = green
; current list title
titleCurrent.fg = blue
; current task
taskCurrent.fg = magenta
You can also change the background and default text colour:
[default]
; the app background colour
default.bg = brightBlack
; the app text colour
default.fg = white
The available colours are: black
, red
, green
, yellow
, blue
, magenta
, cyan
, white
, brightBlack
, brightRed
, brightGreen
, brightYellow
, brightBlue
, brightMagenta
, brightCyan
, brightWhite
, or default
See roadmap.md for planned features
Please check the roadmap.md before adding any bugs/feature requests to Issues.
Anyone is welcome to contribute to the project, but please read through CONTRIBUTING.md and make sure that you agree with the Code of Conduct before getting involved.
Built using Brick. Thanks to Jonathan Daugherty for answering all my questions and pointing me in the right direction. Also thanks to Jack Leigh and Thom Wright for helping me get started.