You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Ryan Rix ff3c829d76 another set of rebase fixes, if i was smart i'd merge 2 years ago
.github (ci): fix ci test flow (#1301) 3 years ago
doc (doc): Add file-truename to set org-roam-directory (README and documentation) (#1487) 2 years ago
tests rename the cached-global-props functionality to be called cached-keywords 2 years ago
.dir-locals.el (feat): Switch to a minor-mode for the dev-suite (#805) 3 years ago
.gitignore (doc): make manual single-page (#1257) 3 years ago (doc): Add Andreas to backers (#969) 3 years ago (feat): allow setting #+roam_alias and #+roam_tag on multiple lines (#1540) 2 years ago
LICENSE Add GPL License 4 years ago
Makefile (ci): make multi-page manual (#618) 3 years ago (doc): Add file-truename to set org-roam-directory (README and documentation) (#1487) 2 years ago (internal): use Make and Org to build manual (#546) 3 years ago (ci): make CI pass on non-blocking errors (#1117) 3 years ago
org-roam-buffer.el (fix): fix org-roam buffer insert out-of-order (#1448) 3 years ago
org-roam-capture.el (fix): Fix chronology issue between renaming notes and updating links (#1517) 2 years ago
org-roam-compat.el (internal): org-roam-db--update-maybe -> org-roam-db--upgrade-maybe (#1307) 3 years ago
org-roam-completion.el (release): v1.2.3 (#1269) 3 years ago
org-roam-dailies.el (fix): dailies: avoid assuming value of org-roam-dailies-directory (#1426) 3 years ago
org-roam-db.el another set of rebase fixes, if i was smart i'd merge 2 years ago
org-roam-dev.el (release): v1.2.3 (#1269) 3 years ago
org-roam-doctor.el Fix auto save buffer in org-roam-doctor (#1493) 2 years ago
org-roam-faces.el (fix): Fix chronology issue between renaming notes and updating links (#1517) 2 years ago
org-roam-graph.el (feat): add org-roam-graph-filetype (#1513) 2 years ago
org-roam-keywords.el no need to open every buffer hopefully 2 years ago
org-roam-link.el case insensitive fuzzy link finding 2 years ago
org-roam-macs.el (fix): fix headline completions erroring (#1374) 3 years ago
org-roam-protocol.el (fix): support %i in org-roam-protocol (#1445) 3 years ago
org-roam.el move as much of the org-roam keywords as possible in to its own module 2 years ago

Org-roam GitHub Release MELPA License GPL 3

Org-roam Logo

Org-roam is a plain-text knowledge management system. It brings some of Roam's more powerful features into the Org-mode ecosystem.

Org-roam borrows principles from the Zettelkasten method, providing a solution for non-hierarchical note-taking. It should also work as a plug-and-play solution for anyone already using Org-mode for their personal wiki.

  • Private and Secure: Edit your personal wiki completely offline, entirely in your control. Encrypt your notes with GPG. Take lasting notes in plain-text.
  • Networked Thought: Connect notes and thoughts together with ease using backlinks. Discover surprising and previously unseen connections in your notes with the built-in graph visualization.
  • Extensible and Powerful: Leverage Emacs' fantastic text-editing interface, and the mature Emacs and Org-mode ecosystem of packages.
  • Free and Open Source: Org-roam is licensed under the GNU General Public License version 3 or later.

Org-roam Screenshot


You can install org-roam using package.el:

M-x package-install RET org-roam RET

Here's a sample configuration with use-package:

(use-package org-roam
      :ensure t
      (after-init . org-roam-mode)
      (org-roam-directory (file-truename "/path/to/org-files/"))
      :bind (:map org-roam-mode-map
              (("C-c n l" . org-roam)
               ("C-c n f" . org-roam-find-file)
               ("C-c n g" . org-roam-graph))
              :map org-mode-map
              (("C-c n i" . org-roam-insert))
              (("C-c n I" . org-roam-insert-immediate))))

The file-truename function is only necessary when you use symbolic links inside org-roam-directory: Org-roam does not resolve symbolic links.

Org-roam requires sqlite to function. Org-roam optionally uses Graphviz for graph-related functionality. It is recommended to install PCRE-enabled ripgrep for better performance and extended functionality.

Getting Help

Before creating a new topic/issue, please be mindful of our time and ensure that it has not already been addressed on GitHub or on Discourse.

  • If you are new to Emacs and have problem setting up Org-roam, please ask your question on Slack, channel #how-do-i.
  • For quick questions, please ask them on Slack, channel #troubleshooting.
  • If something is not working as it should, or if you would like to suggest a new feature, please create a new issue.
  • If you have questions about your workflow with the slip-box method, please find a relevant topic on Discourse, or create a new one.

Knowledge Bases using Org-roam


To report bugs and suggest new feature use the issue tracker. If you have some code which you would like to be merged, then open a pull request. Please also see


Copyright © Jethro Kuan and contributors. Distributed under the GNU General Public License, Version 3.