Taskwarrior と Timewarrior でコマンドラインからタスク管理とタイムトラッキングをする
productivityTaskwarrior は OSS のタスク管理ツール。期限やタグなど複数の要素から urgency を計算して優先度を自動で決められる。タスクの追加や完了時の hook でスクリプトを実行することもできる。
$ brew install task
$ task add Taskwarrior の記事を書く
Created task 1.
$ task add depends:1 記事を公開する
Created task 2.
$ task add recur:weekly due:monday 週次レビュー
Created task 3.
$ task list
ID Age D R Due Description Urg
3 5s R 2026-02-23 週次レビュー 8.28
1 5s Taskwarrior の記事を書く 8
2 5s D 記事を公開する -5
$ task 1 done
Completed task 1 'Taskwarrior の記事を書く'.
Completed 1 task.
Unblocked task 2 '記事を公開する'.
$ task completed
ID UUID Created Completed Age P Project Tags R Due Description
- 87229646 2026-02-21 2026-02-21 2w Taskwarrior の記事を書く
タスクには project、tag、due、priority などの属性を設定でき、それらでフィルタリングできる。
$ task add project:home +買い物 due:tomorrow +next priority:H 牛乳を買う
Created task 1.
$ task add project:work 仕事のタスク
Created task 2.
$ task project:home
ID Age P Project Tag Due Description Urg
1 5s H home next 買い物 2026-02-22 牛乳を買う 31.6
task info で urgency の計算の内訳を確認できる。例えば期限の係数は 12 で、期限までの近さを掛けてスコアが計算される。+next は urgency が 15 加算される特別なタグ。
$ task 3 info
Name Value
ID 3
Description 今日やること
Status Pending
Entered 2026-02-21 16:36:07 (1min)
Due 2026-02-21 00:00:00
Last modified 2026-02-21 16:36:07 (1min)
Virtual tags DUE DUETODAY LATEST MONTH OVERDUE PENDING QUARTER READY TODAY UNBLOCKED WEEK YEAR
UUID 61da91f0-ec64-4ec3-b86e-85a44f7b1fd9
Urgency 9.117
due 0.76 * 12 = 9.12
------
9.117
~/.task/hooks にスクリプトを置くと、タスクの追加や変更時にスクリプトを実行できる。
$ cat ~/.task/hooks/on-add-sample
#!/bin/bash
read input
echo "$input"
echo "タスクが追加されました"
exit 0
$ chmod +x ~/.task/hooks/on-add-sample
$ task add テスト
Created task 4.
タスクが追加されました
公式やサードパーティによる関連ツールが多数ある。公式の Timewarrior はタスクにかけた時間を記録できる。Toggl のようなカレンダービューもある。on-modify.timewarrior を ~/.task/hooks/ に置くと task start で自動的にトラッキングが始まる。Taskwarrior では複数のタスクを同時に start できるが、Timewarrior のトラッキングは一つなので新しいタスクを start すると前のトラッキングが自動で止まる。
$ cp "$(brew --prefix timewarrior)/share/doc/timew/ext/on-modify.timewarrior" ~/.task/hooks/
$ chmod +x ~/.task/hooks/on-modify.timewarrior
$ task 1 start
Tracking タスク名
Started 2026-02-21T17:14:42
$ task 1 done
Recorded タスク名
Started 2026-02-21T17:14:42
Ended 17:14:45
Total 0:00:03
$ timew summary
Wk Date Day ID Tags Start End Time
-- ---------- --- -- ------ -------- -------- -------
W8 2026-02-21 Sat @1 タスク名 17:14:42 17:14:45 0:00:03
同じく公式の taskchampion-sync-server で複数デバイス間でタスクを同期できる。クライアントごとに client_id を設定し、共通の encryption_secret でエンドツーエンド暗号化される。
$ docker run -d -p 8080:8080 ghcr.io/gothenburgbitfactory/taskchampion-sync-server
$ task config sync.server.url http://localhost:8080
$ task config sync.server.client_id $(uuidgen)
$ task config sync.encryption_secret <secret>
$ task sync
Syncing with sync server at http://localhost:8080
Success!
Sent 45 local operations to the server
サードパーティの VIT は対話的に操作できる TUI クライアント。a で追加、d で完了、m で変更、b で start/stop、f でフィルタ変更、/ で文字列検索できる。
list や completed の切り替えは :list, :completed のようにして行う。
リアルタイム更新ではないので Ctrl+l で手動リフレッシュする。