Skip to content

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.

Terminal window
pkm init --scope project
pkm capture "look into event schema changes"
pkm save --title "Architecture Decision: Switch to Kafka" --tags architecture,kafka
pkm index
pkm search kafka
pkm backlinks "Architecture Decision: Switch to Kafka"
  • 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.

pkm writes plain Markdown with YAML properties and wikilinks. Libraries work well with editors and PKM tools that understand those conventions.