Command-line Kanban board/task manager with support for Trello boards and GitHub projects
Clone or download
Permalink
Failed to load latest commit information.
.bin fix (.bin/build): fixed issues with build script homebrew pull requests Aug 3, 2018
app feat (IO.Taskell): added Trello command May 9, 2018
docs chore (package.yaml): version bump Aug 5, 2018
src chore (package.yaml): version bump Aug 5, 2018
templates feat (IO.HTTP.GitHub): added GitHub project listing - avoids needing … Aug 3, 2018
test feat (IO.HTTP.GitHub): added pagination support for GitHub import Aug 3, 2018
.editorconfig added .editorconfig file Jan 8, 2018
.envrc added .envrc file and taskell shortcut Nov 16, 2017
.gitignore feat (IO.HTTP.GitHub): added pagination support for GitHub import Aug 3, 2018
.travis.yml test (travis.yml): added travis.yml Apr 4, 2018
.weeder.yaml test (.weeder.yaml): added weeder to find unused exports Apr 5, 2018
CODE_OF_CONDUCT.md docs (CODE_OF_CONDUCT.md): added a code of conduct May 11, 2018
CONTRIBUTING.md docs (CONTRIBUTING.md): added contribution guidelines for using git May 11, 2018
LICENSE fixed 'Author name here' in LICENSE Nov 21, 2017
README.md docs (README.md): added parental leave notice Aug 12, 2018
Setup.hs Initial commit Nov 15, 2017
github.paw docs (github.paw): added github Paw file Jul 31, 2018
package.yaml chore (package.yaml): version bump Aug 5, 2018
roadmap.md docs (roadmap.md): added bugs/features Aug 5, 2018
stack.yaml chore (stack.yaml): updated resolver Jul 31, 2018
trello.paw chore (trello.paw): encrypted paw file and changed trello key May 30, 2018
version-bump.md chore (package.yaml): switched over to hpack May 21, 2018

README.md

Mark is on parental leave between August 12th and November 19th 2018, as such development on Taskell will likely slow to a trickle during this period.

Please continue to file Issues and Pull Requests.

Taskell

Build Status

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 and due dates
  • Trello board imports
  • GitHub project imports

Buy Me A Coffee

Follow @taskellcli on Twitter for updates

Demo


Contents

Installation

Homebrew (Mac)

You can install Taskell on your Mac using Homebrew:

brew install taskell

There are usually bottles (binaries) available. If these are not available for your computer, Homebrew will build Taskell from scratch, which can take a while, particularly on older machines. Occasionally the build fails the first time, but usually works on a second attempt.

Debian/Ubuntu

A .deb package is available for Debian/Ubuntu. Download it and install with dpkg -i <package-name>.

Fedora

Run sudo dnf install ncurses-compat-libs then download and run binary as described below.

Binaries

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).

Stack

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).

Using Taskell

  • taskell: will use taskell.md in the pwd - offers to create if not found
  • taskell filename.md: will use filename.md in the pwd - offers to create if not found

Options

  • -h: show help
  • -v: show version number
  • -t <trello-board-id>: import a Trello board (see below)
  • -g <github-project-id>: import a GitHub project (see below)

Controls

Press ? for a list of controls

Tips

  • 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.

Storage

By default stores in a taskell.md file in the working directory:

## To Do

- Do this

## Done

- Do That

Importing Trello Boards

Taskell includes the ability to fetch a Trello board and store it as local taskell file.

Authentication

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

Fetching

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.

Limitations

  • This is a one-off procedure: it effectively imports a Trello board to taskell
  • Currently imports:
    • Lists
    • Cards
    • Card descriptions
    • Card due dates
    • Card checklists (merged into one list per card)

Importing GitHub Projects

Taskell includes the ability to fetch a GitHub project and store it as local taskell file.

Authentication

Before fetching a GitHub board, you'll need to create a person access token and store it in ~/.taskell/config.ini.

You can delete personal access tokens on GitHub

Fetching

Projects can belong to organisations or to individual repositories.

Make sure you have permission to view the GitHub project, otherwise you'll get an error.

Organisations

To import a project for an organisation called "test-org" you would use the following:

taskell -g orgs/test-org github.md

This would then show you a list of possible projects to import. Enter the number of the project you wish to import.

Repositories

To import a project for the repository "test-repo" for the user "test-user":

taskell -g repos/test-user/test-repo github.md

This would then show you a list of possible projects to import. Enter the number of the project you with to import.

Limitations

  • This is a one-off procedure: it effectively imports a GitHub project to taskell
  • Currently imports:
    • Columns
    • Cards

Configuration

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

; the icon to use when a task has a description
; the default icon may not display on all systems
description_indicator = ""

[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.

Theming

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


Roadmap

See roadmap.md for planned features

Contributing

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.


Acknowledgements

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. Also thanks to Katja Durrani for submitting Taskell to homebrew-core.