Taskbookを使ってターミナル上でタスクを管理する

Taskbookを使ってターミナル上でタスクを管理する

なんとなくターミナルで動くTODOリストについて検討していたのですが、Taskbookがなかなか良さそうだったので一通りの機能を試してみました。

Taskbook

Taskbookはターミナルで動作するタスク管理ツールです。

用語

本記事ではTaskbookにおける「タスク」「ノート」「ボード」を以下の意味で利用します。

タスク

いわゆる1つのタスクです。完了しているかどうかのステータスを管理できます。

ノート

メモです。タスクからステータス管理の概念を抜いたものです。

アイテム

タスクとノートをまとめてアイテムと呼びます。

ボード

タスク、ノートを紐付けられます。カテゴリ、もしくは種別として利用できます。

利用イメージ

やってみる

検証環境

  • npm:5.8.0
  • Node.js:v8.9.1

インストール

$ npm install --global taskbook
$ tb
  Type `taskbook --help` to get started! ★
  0% of all tasks complete.
  0 done · 0 pending · 0 notes

インストールできました。

シナリオに合わせて全ての機能を使ってみる

readme.mdにて紹介されている機能を実際の利用イメージに合わせて全て試してみます。

タスクの作成

tb -t ${タスク名}でタスクを作成できます。

ボードの表示

tbでボードを表示できます。

ボードの作成

タスク作成時に@付きのボード名をつけると、ボードに紐づいたタスクが登録できます。 ボード名を複数指定すると、複数のボードに紐づいたタスクが登録できます。

アイテムの移動

「シャンプーを買う」はボードを指定しなかったため、デフォルトのMy Boardに登録されています。 tb -m @${id} ${ボード名}で、タスク、ノートにひもづくボードを移動できます。 ${id}はタスク/ノートの左側に書いてある番号です。

「シャンプーを買う」が「My Board」から「買い物」に移動しました。

タスクの完了

座椅子を買ったとみなし、「座椅子が欲しい」タスクを完了します。 tb -c ${id}でタスクを完了できます。

「座椅子が欲しい」にチェックが付きました。

ノートの作成

ノートを作成します。ノートは、「完了の概念がないタスク」という考え方で良いかと思います。 tb -n ${ノート名}でノートを作成できます。タスクと同様の記法でボードを指定することもできます。

ボード「買い物」にノート「無駄遣いしすぎない」が追加できました。

優先度の指定

アイテムには優先度を指定できます。ここまで登録したアイテムには優先度を指定していないので、デフォルトで優先度が1になっています。優先度は1から3まで指定できます。

タスクの追加時にp:xを追加することで優先度を指定できます。xは優先度です。1〜3の値を指定します。

新しくボード「筋トレ」にタスク「ベンチプレス」を追加します。

tb -p @${id} xで既存のアイテムの優先度も変更できます。

ノート「無駄遣いしすぎない」の優先度が2になりました。

スターをつける

tb -s ${id}でアイテムにスターが付きます。複数アイテムを同時に指定可能です。

タスク「シャンプーを買う」、「ベンチプレス」にスターが付きました。

編集

tb -e @${id} ${変更後のアイテム名}で既存のアイテムを変更できます。

タスク「ベンチプレス」が「デットリフト」に変更できました。

タイムライン表示

tb -iで登録日ごとのアイテム一覧を参照できます。

ボードの絞り込み

ボード「願望」のみ表示

tb -l ${キーワード}でボードの絞り込みができます。

ボード「買い物」のタスク(ノートを除く)で、未完了でスターがついているタスクのみ表示

絞り込みの詳細はこちらをご覧ください。

検索

$ tb -f ${キーワード}で検索できます。

アイテムの削除

tb -d ${id}でアイテムを削除できます。

タスク「 無駄遣いしすぎない」を削除しました。

アーカイブ

tb --archiveで削除済みのタスクを確認できます。

レストア

tb --restore ${id}で削除済みのアイテムを戻すことができます。

タスク「 無駄遣いしすぎない」が復帰しました。

設定について

~/.taskbook.jsonを修正することで設定を変更できます。

{
    "taskbookDirectory": "",
    "displayCompleteTasks": true,
    "displayProgressOverview": true
}

taskbookDirectory

Taskbookに指定したアイテムはデフォルトでは

  • ~/.taskbook/storage/storage.json
  • ~/.taskbook/archive/archive.json

にそれぞれ保存されますが、このディレクトリを変更することができます。クラウドと同期しているディレクトリを指定することで、各環境でTaskbookを利用できます。

ちなみにタスクは以下のようなJSONで管理されています。

$ cat ~/.taskbook/storage/storage.json
{
    "1": {
        "_id": 1,
        "_date": "Thu Aug 01 2018",
        "_timestamp": 1533180362091,
        "description": "シャンプーを買う",
        "isStarred": true,
        "boards": [
            "@買い物"
        ],
        "_isTask": true,
        "isComplete": false,
        "priority": 1
    },
    "2": {
        "_id": 2,
        "_date": "Thu Aug 01 2018",
        "_timestamp": 1533180722581,
        "description": "座椅子が欲しい",
        "isStarred": false,
        "boards": [
            "@買い物",
            "@願望"
        ],
        "_isTask": true,
        "isComplete": true,
        "priority": 1
    }
}
displayCompleteTasks

完了タスクの表示有無を変更できます。

  • trueの場合

  • falseの場合

完了済みのタスク「座椅子が欲しい」が表示されなくなりました。

displayProgressOverview

タスクの進捗状況の表示を変更できます。 falseにすると、tb実行時の以下が表示されなくなります。

まとめ

Taskbookはターミナルで動作するタスク管理ツールです。 タスクの作成やボードの管理など、基本的なタスク管理をシンプルなインターフェースで行えます。

ターミナル上での操作の割合が多い方であれば有用なのではないでしょうか。

私からは以上です。