pkm
Capture, connect, search, and score your notes without giving up plain Markdown.
pkm is a CLI for building a durable personal knowledge library. Notes are files, metadata is YAML, links are wikilinks, and the SQLite database is only a rebuildable index.
Markdown first
Your notes stay readable, portable, and commit-friendly.
Library scoped
Keep a global library and repo-specific project libraries side by side.
Graph aware
Index wikilinks, backlinks, aliases, tags, and related notes.
Derived index
Search and heat use SQLite, but Markdown remains the source of truth.
A Small Example
Section titled “A Small Example”pkm init --scope projectpkm capture "look into event schema changes"pkm save --title "Architecture Decision: Switch to Kafka" --tags architecture,kafkapkm indexpkm search kafkapkm backlinks "Architecture Decision: Switch to Kafka"Design Principles
Section titled “Design Principles”- Plain files win. Markdown is the durable artifact; the database is disposable.
- Useful structure, not ceremony. Types and templates help when you need them.
- Project context matters. A repo can carry its own knowledge without mixing it into your global library.
- Links should resolve naturally. pkm resolves by link path, filename stem, title, and alias.
Compatibility
Section titled “Compatibility”pkm writes plain Markdown with YAML properties and wikilinks. Libraries work well with editors and PKM tools that understand those conventions.