Org-roam is an Emacs-based note-taking system that builds a bidirectional network of plain-text notes, functioning as a personal knowledge base manager. It maintains both forward and backlink references in a SQLite database, automatically updated on file save, and uses persistent unique identifiers for notes instead of file paths to enable stable links across renames and moves.
The system integrates directly with Emacs through custom interactive commands and hooks that access the database and buffer state, and it generates static graphs of note interconnections using Graphviz to reveal relationships between ideas. Org-roam also registers custom URI schemes to capture external content into new notes, and it creates notes from user-defined templates with placeholders for title, date, and content.
Beyond its core linking and graph capabilities, Org-roam supports daily journal entries that integrate with the same backlinking system as regular notes, exports notes to HTML or PDF while preserving ID-based links, and provides migration tooling to convert notes from Roam Research or upgrade from version 1 to version 2. Users can search and jump to any note by title using a fuzzy completion interface, view backlinks and reference relationships in a dedicated buffer that updates as the cursor moves, and publish notes to a remote site with a navigable graph.