sakd (Sakkuri Done) 🚀
最速・便利・美しい、Rust製の次世代タスク管理ツール。
sakd は、ターミナル作業の合間に「さっくり」とタスクを管理し、生産性を最大化するために設計されました。シンプルな ToDo 管理から、依存関係を伴う複雑なプロジェクト管理まで、モダンな CLI/TUI スペックでサポートします。
📑 目次
� はじめに
💻 使い方
⚙️ その他
📖 ツール概要
sakd は、ターミナルユーザーに最適な「使い勝手」を追求しています。
- スピード: Rust によるネイティブバイナリと内蔵 SQLite により、数千件のタスクも瞬時に処理。
- 柔軟性: 短いコマンドで操作する「CLI モード」と、全画面でじっくり整理する「TUI モード」を自由に行き来可能。
- スマートパース: 「明日 (tm)」「来週の月曜 (mon)」といった自然な略称を理解します。
🎨 視覚ガイド(記号と色)
リスト表示で現れる記号や色は、あなたの直感を助けるための「情報」です。
1. ステータスと警告(Status & Symbols)
タスクの左側に表示される記号です。
| 記号 | 意味 | 解説 |
|---|---|---|
[ ] |
Todo/ 未完了 | 未着手のタスクです。 |
v / [v] |
Done / 完了 | 完了したタスクです。 |
>> |
選択中 (TUI) | TUIにおいて現在カーソルが合っているタスクを示します。 |
* |
依存警告 | この項目の前に終わらせるべき「別のタスク」が未完了であることを示します。 |
2. 優先度(Priority)
ステータスの右側に表示されます。
!!!: High (高) - 最優先事項。!!: Medium (中) - 重要な事項。!: Low (低) - 余裕がある時に。
3. 緊急度(タイトルのカラー)
タイトルの色は「締め切りの近さ」を表しています。
- マゼンタ (太字): 期限超過(Overdue)
- 赤色: 今日が締め切り
- 黄色: 3日以内
- 緑色: 1週間以内
- 灰色: それ以降、または期限なし
💻 CLI モード (sakd)
CLI モードは、コマンド一つで素早く情報を引き出したり、操作したりするのに適しています。
1. タスクの追加 (add / a)
新しいタスクをデータベースに登録します。
- 引数なしで実行した場合:
対話型プロンプトが起動します。
タイトル→優先度→タグ→依存関係→期限→説明の順に詳しく聞かれるため、初心者でも迷わず追加できます。 - 引数ありで実行した場合:
コマンドラインから直接値を設定します。
2. 一覧表示・検索 (list / l)
現在のタスクを一覧で表示します。
- 引数なしで実行した場合: 「未完了」のタスクをすべて表示します。
- 引数ありで実行した場合:
--allで完了済みを含めたり、--tagや--priorityで特定のタスクを抽出できます。
3. タスクを完了にする (done / d)
ステータスを Done に切り替えます(既に Done の場合は未完了に戻ります)。
- 引数なしで実行した場合: 対話形式でどのタスクを完了にするか選ぶメニューが表示されます。
- 引数ありで実行した場合:
指定した ID のタスクを即座にトグルします。
4. 詳細を確認する (show / s)
タスクの全メタデータ(作成日時、長い説明文、依存しているタスクなど)を確認します。
- 引数なしで実行した場合: どのタスクの詳細を見るか選択するメニューが表示されます。
- 引数ありで実行した場合: 指定した ID のタスクの詳細を整形して表示します。
実行例 (sakd show 12):
ID: 12
Priority: High
Tags: work, critical
Depends on: [10, 11]
Title: 設計書作成
Done: No
Limit: 2026-02-05 23:59
Description: プロジェクトの基本設計とDB設計を含む資料。
5. タスクを編集する (edit / e)
既存のタスクの内容を上書きします。
- 引数なしで実行した場合: まず編集したいタスクを ID 指定または選択し、その後、現時点の値を初期値とした対話型プロンプトで修正を行えます。
- 引数ありで実行した場合:
ID と修正したい項目をフラグで指定します。
6. タスクを削除する (remove / r)
タスクを完全に消去します。
- 引数なしで実行した場合: 削除するタスクを安全に選ぶためのメニューが表示されます。
- 引数ありで実行した場合: 指定した ID のタスクを削除します(ミス防止のため確認プロンプトが出ます)。
実行例 (sakd remove 10):
? Are you sure you want to remove this task? (y/N) > y
Task removed.
🖼️ TUI モード (sakd-tui)
TUI モードは、独立したコマンド sakd-tui として提供されています。全画面でタスクを管理するための強力なツールです。
起動方法
画面の構成
- 左側(リスト): タスクの ID、ステータス、優先度、依存警告、タイトルが一覧表示。
- 右側(詳細): 選択中のタスクの全情報。未完了の依存タスク名などもここで確認できます。
- 最下部: 入力モードやヘルプメッセージが表示されます。
主要な操作キー(Normalモード時)
| キー | アクション | 特徴 |
|---|---|---|
j/k (↑/↓) |
移動 | リスト内の選択タスクを移動。選択中は背景が青くなります。 |
Space |
完了トグル | ポップアップを介さず一瞬で Done/Todo を切り替え。 |
a |
新規追加 | ポップアップ入力で全項目を入力。 |
e |
編集 | 選択中のタスクの全項目を安全に編集。 |
r |
削除 | 確認の後、タスクを消去。 |
s |
提案ジャンプ | 期限と優先度から算出した「今やるべきタスク」へ瞬間移動。 |
o |
ソート変更 | 期限順 → 優先度順 → ID順 へ、リストの並びを切り替え。 |
f |
タグ等フィルタ | 入力した文字列を含むタグを持つタスクのみを表示。 |
p |
優先度フィルタ | l/m/h キーで特定の優先度のみを抽出します。 |
h |
全表示切替 | 完了済みタスクを表示/非表示にします。 |
q / Esc |
終了 | TUI環境を閉じてターミナルに戻ります。 |
🧠 インテリジェント機能 (スマートパース)
sakd は、あなたが入力した曖昧な時間表現を論理的に解釈します。
日付の省略形:
tortoday: 今日tmortomorrow: 明日2d,3d...: N日後の日付1w: 7日後の日付mon~sun: 次の該当曜日の日付(例: 今が火曜日にsatと打てば、今週の土曜日)
時刻の省略形:
last: 23:59 (当日の最終)morning: 09:00 /noon: 12:00 /evening: 18:001h,2h...: 現在時刻から N 時間後
「指定なし(空白)」の扱い:
優先度や説明など、入力したくない項目は何も打たずに Enter を押すだけでOKです。内部的にスマートに「指定なし(None)」として記録され、UI 上も邪魔にならないように表示されます。
⚙️ インストール
1. crates.io からインストール (推奨)
以下のコマンドでインストール可能です。
sakd (CLI) と sakd-tui (TUI) の両方のバイナリが同時にインストールされます。
2. ソースからビルド
最新の開発版を使いたい場合などは、リポジトリから直接インストールできます。