Org-remark: highlights and annotations for files, pages, books and Info docs
Highlight & annotate text, EWW, Info, and EPUB
At a glance
- What is it?
- Org-remark keeps your highlights and notes in plain text Org files and annotates whatever you are reading, whether that is a text file, a web page through EWW, an EPUB through nov.el or an Info manual, and the notes stay usable with ordinary Org tooling.
- Who is it for?
- Org-remark fits a reader who highlights and annotates for a living and wants the notes to be plain text rather than trapped in a proprietary format, because everything lands in an Org file and can be searched, filtered and reorganised with the tools you already have. It does not fit someone who needs highlighting inside a reader that is not Emacs, since the web, book and manual integrations all depend on specific Emacs packages.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 145 days ago.
- What is it written in?
- Mainly Emacs Lisp, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Editorial analysis
One annotation store, four kinds of source
Org-remark lets you highlight and annotate text files, websites, EPUB books and Info documentation using Org mode, and the design decision that makes it interesting is that the annotations do not live in the source. The highlights and notes are kept in an Org file as the plain text database, which the project says lets you manage your marginal notes and use the built-in Org facilities on them, for example creating a sparse tree based on the category of the notes. The same highlighting and annotating functionality then works for websites when you use EWW to browse them, for EPUB books with nov.el, for Info documentation, and for wallabag.el, which has been reported to work as well. The repository layout reflects that split, with a separate elisp file for each integration, org-remark-eww.el, org-remark-nov.el and org-remark-info.el alongside the core org-remark.el and the global tracking and line and icon modules.
Installing it, and choosing a channel
The package is available on two archives. The GNU ELPA package carries the releases and is equivalent to MELPA-Stable, and the GNU-devel ELPA package carries the unreleased main branch and is equivalent to MELPA. GNU ELPA should already be set up in your Emacs by default, and if you want the development archive you add its URL to package-archives with the add-to-list call.
(add-to-list 'package-archives
'("gnu-devel" . "https://elpa.gnu.org/devel/") :append)The package is GPL-3.0 licensed, and the project site is at nobiot.github.io/org-remark, with the last push to the repository on 2026-05-31. The user manual is available online, as an Info node inside Emacs under the org-remark name, and also in Japanese, translated by a GitHub user named ayatakesi, with the Japanese version covering the web page annotation workflow with EWW.
The configuration, and why the loading order is deliberate
After installation the project suggests putting a setup block in your configuration, and the interesting part is what it deliberately does not contain.
(org-remark-global-tracking-mode +1)The optional per-source modes are each wrapped in a with-eval-after-load, so the web mode only activates if you are using EWW, the EPUB mode only if you use nov, and the Info mode only if you use Info-mode. And the project explains why there is no explicit require of org-remark itself in the example. Loading org-remark pulls in org, which can slow down Emacs initialisation, so the recommendation is to defer loading org-remark unless you explicitly load org during initialisation, and to control the timing with autoloading the commands instead. That is a small piece of advice that tells you how the author expects the package to be used, in a package that hooks into every buffer you open.
Key bindings, and the autoload trick
The example key bindings are worth reading because of the first one. The global map gets a binding for org-remark-mark so that the command can be called before the library is loaded, with the comment explaining that this is the point, and the rest of the bindings are defined inside a with-eval-after-load for org-remark once the library is actually in memory.
(define-key global-map (kbd "C-c n m") #'org-remark-mark)The mode-specific map then gets the remaining keys, opening the remark, viewing the next and previous one, removing the highlight and deleting the remark.
(with-eval-after-load 'org-remark
(define-key org-remark-mode-map (kbd "C-c n o") #'org-remark-open)
(define-key org-remark-mode-map (kbd "C-c n ]") #'org-remark-view-next)
(define-key org-remark-mode-map (kbd "C-c n [") #'org-remark-view-prev)
(define-key org-remark-mode-map (kbd "C-c n r") #'org-remark-remove)
(define-key org-remark-mode-map (kbd "C-c n d") #'org-remark-delete))The alternative is to use use-package, and the project says the example it provides should be equivalent to the setup above. The project is also reachable on Discord, where the maintainers say they monitor it for integration help across React, Next.js, Node and cloud functions, bug reports, feature requests and roadmap feedback.
The pens, the icons and the other customisation points
You can create your own highlighter pens with different colours and types, such as underline or squiggle, and optionally with an Org category attached so you can search and filter on your highlights and notes. Icons came later, and the project tracks them as a feature: a screenshot shows an EPUB book with an icon indicating that there are annotations, dated to the v1.2.0 release on 2023-08-20, and a later screenshot shows line highlights using icons as of v1.3.0. There is a separate online article walking through how to set an icon, and it is also part of the user manual, and the project points to the Info node on setting Org-remark to use SVG icons. For the manual itself, the Getting Started section is said to get you going in five minutes, and there are two videos, an introductory one of eight minutes and a V1.1.0 release introduction of twelve minutes. The NEWS file is the reference for a list of new features and fixes, and there is a separate org-remark-convert-legacy.el file in the repository for migrating from the older data layout.
What the tests and the build actually check
The Makefile is small and says what the project considers a passing state. The README-elpa target is the packaging one, since the ELPA spec needs the README in plain text, and it is produced by running Emacs in batch mode with org-ascii-export-to-ascii and then moving the result. The test-compile target byte-compiles every elisp file in the repository, again with Emacs in batch mode, and adds a second check for declare-function, which is the one that catches a package using a function from another package without declaring it. The clean target removes the compiled files. Two details are worth noticing. The whole test suite runs headless with emacs --batch, so it can run in CI without a display, and the byte-compile check is the only automated verification the project shows, which tells you the testing story is compilation correctness rather than behavioural tests. The project publishes no GitHub releases, and the version history lives in the CHANGELOG and NEWS files instead.
Editorial conclusion
Org-remark fits a reader who highlights and annotates for a living and wants the notes to be plain text rather than trapped in a proprietary format, because everything lands in an Org file and can be searched, filtered and reorganised with the tools you already have. It does not fit someone who needs highlighting inside a reader that is not Emacs, since the web, book and manual integrations all depend on specific Emacs packages. It also does not fit a user who wants the package to appear in a package archive without an extra step. Before you install it, read the Installation section of the user manual, and note that the project ships a GNU-devel ELPA archive for the unreleased main branch alongside the stable GNU ELPA release, so you are choosing a channel explicitly rather than getting whatever is newest.
Frequently asked questions
What can Org-remark highlight and annotate?
Any text file, plus websites when you browse them with EWW, EPUB books with nov.el, Info documentation, and wallabag.el, which has been reported to work as well. The highlights and notes are stored in an Org file as the plain text database rather than in the source itself.
How do I install Org-remark?
Through GNU ELPA for releases, which is equivalent to MELPA-Stable and is set up by default, or through the GNU-devel ELPA archive for the unreleased main branch, which is equivalent to MELPA and needs its URL added to package-archives. The package is GPL-3.0 licensed.
Why does the configuration not require org-remark directly?
Because loading org-remark pulls in org, which can slow down Emacs initialisation. The project suggests deferring the load and controlling the timing by autoloading commands, for example binding org-remark-mark in the global map so the command works before the library is loaded.
Can I define my own highlighter pens in Org-remark?
Yes. You can create pens with different colours and types such as underline or squiggle, and optionally with an Org category attached so you can search and filter on your highlights and notes.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/nobiot-org-remark)Was this useful?