Org-roam's org-roam-node-find and org-roam-node-insert functions both match node titles case-sensitively. To find a node called "JavaScript" I can't just type lowercase j TAB, I have to type uppercase J TAB.

I'm using Emacs without any custom completion framework and I'd rather not globally set completions to be case-insensitive.

1 Answer 1


Use the following config to override the behaviour of org-roam-node-read to be case-insensitive:

(defun case-insensitive-org-roam-node-read (orig-fn &rest args)
  (let ((completion-ignore-case t))
    (apply orig-fn args)))
(advice-add 'org-roam-node-read :around #'case-insensitive-org-roam-node-read)

The org-roam-node-read function is called by both org-roam-node-find and org-roam-node-insert. The above change temporarily sets the completion-ignore-case variable before running the original org-roam-node-read function.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.