A CLI and language server for a markdown workspace. It tracks projects and tasks in a SQLite file in the same folder and checks the links between your notes.
cargo install --path .
kdb init
kdb projects add <slug> --alias <AL> --path <dir> # register a project; its tasks get ids like HRM-0012
kdb tasks add "<title>" [-p 1-5] [-c <cycle>] # add a task
kdb tasks add "<title>" --after <id> # add a task that waits on another
kdb tasks list [-P <project>] [--blocked | --ready]
kdb tasks ready # what can start now
kdb tasks done <id> # close it and print what it unblocked
kdb tasks deps add | rm | show <id> ...
kdb render -P <project> # write the project's .tasks/ board
kdb check # broken links and embeds, orphan files
kdb outline <file> # heading outline
kdb refs <file#heading> # who links here
kdb render <file> # resolve ![[embeds]] to stdout
kdb lsp # the same checks in your editor
Tasks can depend on other tasks. A task with an open blocker is blocked, its subtasks are blocked with it, and closing the blocker releases it. Boards show each task's status icon and what it is waiting on.
$ kdb projects add hermaeus --alias HRM --path projects/hermaeus
$ kdb tasks add -P hermaeus "Deploy Archil mount" -p 1
added task HRM-0001
$ kdb tasks add -P hermaeus "Entity resolver backfill" --after HRM-0001
added task HRM-0002
$ kdb tasks edit HRM-0001 --status in_progress
$ kdb tasks list -P hermaeus
id st p title
HRM-0001 [~] 1 Deploy Archil mount
HRM-0002 [ ] 3 Entity resolver backfill (blocked by HRM-0001)
$ kdb tasks done HRM-0001
released: HRM-0002
HRM-0001 -> done
$ kdb render -P hermaeus # writes projects/hermaeus/.tasks/index.md
$ kdb check
notes/index.md:5:3 broken link roadmap.md (target file not found: notes/roadmap.md)
1 orphan file (run `kdb check --orphans` to list)
1 error
1 warning
$ kdb outline notes/architecture.md
# Architecture L1
## Overview L3
## Components L7
$ kdb refs notes/architecture.md#components
notes/index.md:3:3 architecture.md#components
$ kdb render SOP/release.md # resolves ![[file#heading]] embeds
kdb lsp shows the same broken links in your editor.
Full command list: docs/commands.md.
MIT, Humanitas Labs.