Org Roam

Table of Contents

Org Roam is an implementation of Zettelkasten built using Org Mode in Emacs. Org-roam-ui provides a nice graphical web interface to org-roam.

Org-roam was built to enable note taking. Renaming notes, having multiple org-roam directories or a nested folder structure were considered as anti-features in original org-roam. In v2, With org-id, renaming notes is fully supported along with nested folder structures.

My Org Roam setup is documented in myzettel.

Force rebuild roam-db

A regular org-roam-db-sync only processes changed files. It won't remove already-tracked nodes. To Force a full rebuild, the database needs to be deleted first, before syncing again:

M-x org-roam-db-clear-all
M-x org-roam-db-sync

Alternately, deleting the database file will automatically trigger a rebuild on restarting emacs, or issue the sync command.

rm ~/.config/emacs/org-roam.db

Journaling in org-roam

To prevent existing journaling entries from appearing in the list of nodes, the following function needs to be defined.

(setq org-roam-db-node-include-function
      (lambda () (= (org-outline-level) 0)))

To prevent future ID creation, the option "no-id t" has been added to the dailies capturing template.

This reddit post explains how to open org-roam-dailies in other-window.

(defun ugt-org-roam-dailies-goto-today nil
  "Open todays journal in other window."
  (interactive)
  (split-window-right)
  (other-window 1)
  (org-roam-dailies-goto-today))

Sources:

Date: 2023-04-16 Sun 08:22

Author: Prabu Anand Kalivaradhan

Created: 2026-10-11 Sun 15:24