2013年07月25日

Taskwarrior - CLI(コマンドライン)ベースのスマートなタスク管理・GTD ユーティリティ

日本で GTD (Getting Things Done)、ライフハックという言葉が盛んに使われるようになったのは2007年ぐらいだったでしょうか。 僕も幾つかのアプリケーションを試しましたが少し大袈裟過ぎて長続きしない。 ちょっとした思いつき、個人の優先順位管理が出来れば良いのにいちいちブラウザを使ってクラウドへ!ってのは時間もトラフィックも使い過ぎ(かと言ってデスクトップに付箋を張るのも目障りで嫌だなあ)。
 
気軽・高速に使えつつ GTD としての機能も実装したクールなユーティリティは無いものか・・・そんな僕のココロに突き刺さったのが今日ご紹介する Taskwarrior 。

Taskwarrior logo
 

Taskwarrior のインストールと設定


Taskwarrior は個人のタスク管理、GTD を実践する CLI (Command Line Interface) ベースのアプリケーションで、Mac OS、Windows、Linux 上で動作します。

Taskwarrior - 概要 - Taskwarrior

2013年7月時点(バージョン 2.2.0)ではマルチユーザー環境(複数ユーザ間でのタスクの共有・管理)はサポートしていませんが、次期バージョンアップ(2.3.0)で Task Server として実装される”予定”です。

GTD ってなーに?という方は、まずこちらをどうぞ。

GTD:Getting Things Done - ウィキペディア - Wikipedia
”個人用のワークフローの管理手法である。デビッド・アレン(David Allen)が同名の書籍『仕事を成し遂げる技術 ―ストレスなく生産性を発揮する方法』(原題: Getting Things Done、2002年)の中で提唱する。ハッカー文化の一つで、LifeHack(ライフハック)の中でも代表的なものである。心理的な負担を減らしながら個人の生産性を上げることを主眼とし、簡単な5つのステップを実行することによって成し遂げたいことを現実にするメソッドである。基本はなすべき仕事のリストを何かに記録しておくことで、頭の中からなすべき仕事のことを追い出すことである。これで頭の中はすべき仕事全部を覚えなくてもよくなりすっきりとし、リストに基づき実際の仕事をこなすことに集中できる。”
続きを読む 

僕は Sputnik (Ubuntu ベースのディストーション) を使っているので apt-get でインストール。

# 最新版を利用するため Taskwarrior/PPA リポジトリを登録してインストール。
# 単純に$ sudo apt-get install taskでもインストールは可能。

$ sudo add-apt-repository ppa:ultrafredde/ppa
$ sudo apt-get update
$ sudo apt-get install task

Mac OS ユーザ は Homebrew 、Windows ユーザは Cygwin を使ってインストールしましょう(詳しい手順はこちら)。

Taskwarrior の設定ファイルはホームディレクトリ(~/)の下に作成される .taskrc 。 このファイルは初めて task コマンドを実行した際に作成されテーマ、データの保存先パス(デフォルトで ~/.task)などが指定可能です(標準のまま直ぐに利用することも可能)。


Taskwarrior を使ったタスク管理・GTD


ターミナルを起動して最もシンプルな方法でタスクを登録してみましょう。

$ task add Taskwarriorで初めてのタスク登録を行う
Created task 1.

これで登録完了。 登録したタスクは $ task list (又は task ls)で確認出来ます

Taskwarrior task list


表示される項目とその内容は次の通り。

アイテム名 説明 実行例 
ID タスクID。変更・削除する際に指定するタスクの一意キー。
Project タスクが属するプロジェクト名(日本語可)。 project キーワードで指定。 $ task add project:name description
Pri タスクのプライオリティ。 priority キーワードで H (High), M (Medium), L (Low)の何れかを指定。 $ task add priority:H description
Due タスクの完了期限。 due キーワードで指定可能。日付以外に eow (End Of Week)などの特殊表記もサポート。 $ task add due:7/30/2013 description
Active task タスクID start で明示的に開始を宣言したタスクはActiveマーク(*)が付きハイライト表示される。 $ task タスクID start | stop
Age タスクを作成した時点からの経過時間
Description タスクの内容(日本語可)。 task タスクID modify | append で編集可能


初めてのタスクを無事完了させることが出来ましたね。 次のコマンドでこのタスクを終了扱いにしましょう。

$ task 1 done
Completed task 1 'Taskwarriorで初めてのタスク登録を行う'.
Completed 1 task.

さあ、今度はプロジェクト名、期日、プライオリティを指定しつつ幾つかタスクを登録してみます。

$ task add project:Blog pri:M due:today 'Taskwarriorの 使い方を調査する'
$ task add project:Blog pri:M due:today 'Taskwarriorの 記事を考える'
$ task add project:Blog pri:M due:today 'Taskwarriorの 記事を公開する'
$ task add project:Home due:8/10/2013 花火大会に行く

完了したタスクは done で終了ステータスに変更して、

$ task 1 done
Completed task 1 'Taskwarriorの使い方を調査する'.
Completed 1 task.
The project 'Blog' has changed.  Project 'Blog' is 33% complete (2 of 3 tasks remaining).

次のタスクを start で開始ステータスに変更(個人のタスク管理、GTD 中心指向で考えるならば、この全てのタスクで開始時期を明確化するという作業が意味する事は小さく、省略して良い気がしますね)。

$ task 2 start
Starting task 2 'Taskwarriorの記事を考える'.
Started 1 task.
Project 'Blog' is 33% complete (2 of 3 tasks remaining).

ステータスは $ task list で確認と。

Taskwarrior task lists


勿論、条件を指定してタスクを絞り込み表示することも可能ですよ。

例えば家庭(Home)プロジェクトに関するタスクで期限が明日以降の一覧は次の書式で絞り込む事が出来ます。

$ task 'due > today and project = Home' list

Taskwarrior task list with search conditions


カレンダーでタスクのスケジューリング状況を知りたいなと思ったら $ task calendar 。

 $ task calendar

Taskwarrior task calendar

タスクの期日となる日付を背景色で確認可能。

プロジェクトの進捗を知りたいなら $ task summary 。プロジェクト単位でタスクの消化率をグラフ表示してくれます。

$ task summary

Taskwarrior summary graph


え、もっと詳しく分析したい? そんな時には task burndown.daily (burndown.monthly  burndown.weekly もあり) でバーンダウン・チャートを見てみましょう。

この例では Blog プロジェクトの進捗を burndown.daily で視覚化しています。

$ task project:Blog burndown.daily

daily graph


もし複数のPC間でタスク・データを共有したい場合、pull, push, merge コマンドを使います。

ここでは SSH を使いRemoteHostへデータを push 。
 
$ task push ssh://user@RemoteHost/.task/
user@RemoteHost's password: 
pending.data   100%  522     0.5KB/s   00:00    
undo.data      100%   21KB  20.8KB/s   00:00    
completed.data 100% 4653     4.5KB/s   00:00    
Local tasks transferred to ssh://user@RemoteHost/.task/

task コマンドのより詳しい使い方はダウンロード・ページで公開されている Command reference release (cheat sheet)をどうぞ。

ふう、デスクトップへ付箋を貼るのは避けられそうです。

それでは、より良いタスク管理を!


はじめてのGTD ストレスフリーの整理術
デビッド・アレン
二見書房
売り上げランキング: 2,023

マニャーナの法則 明日できることを今日やるな
マーク・フォースター
ディスカヴァー・トゥエンティワン
売り上げランキング: 62,073

Posted by netbuffalo at 22:00│Comments(0)TrackBack(0)ユーティリティ | ライフハック


この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/netbuffalo/4533962

コメントする

名前
URL
 
  絵文字