A command-line task manager powered by git.
Python Scala
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
clask
.gitignore
README.md
migrate.py

README.md

clask

A command-line task manager powered by git.

Usage

Initializing clask

usage: clask init [-h]

Initialize a clask project.

optional arguments:
  -h, --help  show this help message and exit

This will initialize a root branch by the name of clask assuming the directory this command will be executed in is a git repository. All other commands related to clask will make changes to files and directories on that branch.

Adding a task

usage: clask add [-h] slug

Add a task to the current clask project.

positional arguments:
  slug        slug of the task to add

  optional arguments:
    -h, --help  show this help message and exit

This will load an editor with the following YAML template:

name: <slug>
description: [insert description]
state: unstarted

When the editor is closed, the contents of the buffer will be written to a file with the name: <slug>.yml.

It will also create a commit adding the file and attaching the following commit message:

Create task: <slug>

Changing the state of a task

usage: clask move [-h] slug state

Move a task in the current clask project to a new state.

positional arguments:
slug        slug of the task to move
state       new state of the task

optional arguments:
  -h, --help  show this help message and exit

This will change the state of the task slug to state by simply updating the state field of the task file referenced by slug.

It will also create a commit attaching the following commit message for the modification:

Change state: <previous_state> -> <new_state>

Starting a task

usage: clask start [-h] slug

Start a task in the current clask project.

positional arguments:
  slug        slug of the task to move

  optional arguments:
    -h, --help  show this help message and exit

This is a special case of the move command. It will change the state of the task slug to started.

The commit message attached to the commit created by this command will be the same as for the move command.

Editing a task

usage: clask edit [-h] slug

Edit a task in the current clask project.

positional arguments:
  slug        slug of the task to edit

  optional arguments:
    -h, --help  show this help message and exit

This will open the task slug in an editor and allow arbitrary edits to the task file. The contents of a task file are expected to be YAML and this command will fail if the edits do not parse as valid YAML.

It will also create a commit attaching the following commit message for the modification:

Update task: <slug>

Finishing a task

usage: clask finish [-h] slug

Finish a task in the current clask project.

positional arguments:
  slug        slug of the task to move

  optional arguments:
    -h, --help  show this help message and exit

This is a special case of the move command. It will change the state of the task slug to finished and also move the task file to .<slug>.yml.

The commit message attached to the commit created by this command will be the same as for the move command.

Listing tasks

usage: clask list [-h] [--states STATE [STATE ...]] [--all]
                  [--format {long,short}]

List tasks in the current clask project.

optional arguments:
  -h, --help            show this help message and exit
  --states STATE [STATE ...]
                        set of states to list
  --all                 include tasks that have been finished
  --format {long,short}
                        format to display listed tasks (defualt: short)

This will list active tasks in the current clask project. The list can be altered by setting --states and --all options. The --states option allows filtering the list by a set of states. By default, finished tasks are not displayed. The --all`` option will include those tasks. To see only finished tasks, use the---states``` option.

Viewing individual tasks

usage: clask show [-h] slug

Show the details of a task in the current clask project.

positional arguments:
  slug        slug of the task to show

optional arguments:
  -h, --help  show this help message and exit

This will show the details of the task specified by slug in the same way the list command shows tasks when run with --format=long.