# rucola: a terminal note browser that hands editing back to your editor

> rucola is a Rust terminal application for zettelkasten style notes stored as interlinked markdown files, built on ratatui with comrak as the markdown parser. It shows statistics, follows links and backlinks, renames notes with their wiki links, and can compile notes to HTML for an external viewer, while the actual editing stays in vim, emacs or helix.

**Linus-Mussmaecher/rucola** — Terminal-based markdown note manager.

- Repository: https://github.com/Linus-Mussmaecher/rucola
- Stars: 544 · Forks: 22
- Language: Rust
- License: GPL-3.0
- Published: 2026-10-22 · Updated: 2026-10-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/linus-mussmaecher-rucola

## A note browser, not a note editor

rucola is a terminal application for people who keep a zettelkasten style note system as interlinked markdown files. The repository description calls it a terminal-based markdown note manager for viewing statistics, exploring connections and launching editing or viewing applications.

That last part is the design decision everything else follows from. rucola is not where you type. It is a note specific file picker and browser that hands the file to the program you already use. The readme puts it plainly: rucola is not a single all-in-one application but works as a note browser that also glues an HTML viewer to an editor, and it requires several programs running in parallel instead of just your editor.

The suggested workflow is to open rucola and your favourite editor next to one another and treat rucola as a more note specific file picker. The supported editors named in the documentation are vim, emacs and helix.

The audience is stated as users of a zettelkasten-style note system of interlinked markdown files who want to do most of their note taking from within the terminal. The comparison the readme draws is with graphical tools such as Obsidian, Evernote and Notion, and it is not a close contest on features: rucola is lighter, uses no GUI, no web interface and no Electron, and opens faster on older hardware, while offering less extensibility and probably less powerful statistics.

## What the interface does once a note is selected

The feature list is long enough to be worth walking through, because it shows what the application considers its actual job.

The first group is information. You get a high-level view of the note set with statistics about the notes, and the same information about filtered subsets of notes along with their relation to the whole set. The statistics cover tags, nested tags and links, and filtering and searching work on links, tags, full text or titles.

The second group is navigation. The user can view and follow the links and backlinks of a single note, which is how you see the connections inside the note graph. The readme also mentions that filtered subsets can be related to the entire note set, so a filtered view is a lens rather than a separate database.

The third group is editing, and it is deliberately small. You can rename or move notes from inside the application. Everything larger is delegated to the external editor.

The fourth group is rendering. There is access to several external viewers for reading notes comfortably, and an option to compile notes to HTML documents on the fly, including LaTeX compilation and code highlighting, then show them in an external viewer. Viewing notes as HTML still needs a browser or another HTML viewer, which is the dependency the terminal application cannot remove.

The last group is creation: daily, weekly or other regular notes can be created from templates, which is what the 0.10.0 release added.

## Renaming wiki links is the feature editors do not give you

One comparison in the readme is specific enough to be the deciding argument for some people.

When you use only a terminal text editor such as vim, emacs or helix to manage markdown notes, you get note specific interaction with the file system, but you have to build it yourself. rucola adds following wiki links, statistics about tags, nested tags and links, and filtering based on links, tags, full text or titles.

The concrete difference is renaming. rucola automatically renames wiki links when a file is renamed, and the readme notes that the marksman language server does not support this, which makes the feature unavailable in helix and in other editors that rely on a language server for markdown editing.

That is a small feature and a real one. A note system built on links breaks quietly when a rename leaves half the links pointing at a file that no longer exists, and the tools that would normally catch that do not do it.

The counterargument is on the same page. rucola requires multiple programs in parallel instead of a single editor, and while it gives you nicer HTML versions of documents with automatic background conversion, code highlighting and LaTeX compilation, that convenience depends on an external viewer doing the rendering.

## The Rust dependency list explains most of the behaviour

Looking at the crate manifest is more informative than the marketing language, because each dependency maps to a feature in the feature list.

The user interface is ratatui, with the serde feature enabled, and text input goes through tui-textarea. Command line parsing is clap with the derive feature. Opening files in external programs uses the open crate, and file system watching uses notify, which is how a change made in your editor can be noticed. comrak is the markdown parser, and the readme says explicitly that the project's link updating algorithms depend on its progress, particularly on its wikilink support. Link renaming safety and efficiency are therefore tied to an upstream parser, not only to rucola's own code.

Configuration is handled with confy, serde, serde_json and toml, alongside the directories crate for locating per-user configuration paths, and yaml-rust is in the list as well. fuzzy-matcher backs the search, chrono handles dates, including the regular note templates, rand handles shuffling, and git2 is present, which suggests version control integration even though the visible documentation does not describe how it is exposed.

The project also ships a build.rs and a build-time dependency on confy, and the repository includes a flake.nix and flake.lock for Nix, a dist-workspace.toml for cargo-dist, and a wix directory for a Windows installer. The release profile strips symbols and turns on link time optimisation, with a separate thinner profile for the distributable builds.

## Version names track features, and the roadmap is narrow

The release history is a good map of what the project considers finished. Version 0.10.0 is titled Daily Notes and was published on 2026-06-24, 0.9.0 is Column Configuration from 2026-04-16, and 0.8.2 is Basic Tag List from 2026-01-02. Each title names a visible piece of the interface rather than a bug fix.

The readme states that the current version supports all the features originally envisioned for the project and has been tested in daily use for some months, while being clear that development is not finished. The future plans it lists are frequent and quick bugfixes, incorporating user feedback without losing sight of the original scope, and internal work that becomes safer and more efficient as comrak gains wikilink support. A separate item points at continued work on the ratatui markdown reader.

That last pair of dependencies is worth noticing. A note browser built on a terminal markdown renderer and a markdown parser that is still gaining wikilink support inherits their release rhythm, so the behaviour of links can change when those upstream projects move rather than when rucola does.

The last push was on 2026-10-18 and the repository is not archived. The licence is GPL-3.0-only, recorded in the Cargo.toml as license = "GPL-3.0-only" with a LICENSE file at the root, which means a derived work has to stay under the same terms. The crate is published on crates.io as rucola-notes, the Arch Linux package is rucola, and Repology lists it for other distributions.

## Conclusion

Adopt rucola if your notes are markdown files with wiki links and you want statistics, link following and note renaming without opening a graphical note application. Do not adopt it if you need a plugin ecosystem, a graph view or a single all-in-one program, since the readme itself lists less extensibility and no graph view as the price of running without a GUI, a web interface or Electron. Verify first which editor you want it to launch, since that integration is the point of the design, and note that the crate name on crates.io is rucola-notes while the compiled binary is rucola.

## FAQ

### Where can I get rucola?

The crate is published on crates.io as rucola-notes, and the project is packaged for Arch Linux as rucola in the extra repository, with Repology listing it for other distributions. The compiled binary itself is named rucola.

### Does rucola have a graph view like Obsidian?

No. The readme lists the absence of a graph view, and less extensibility in general, as the main thing rucola gives up compared with tools such as Obsidian, Evernote and Notion.

### Which external editors does rucola work with?

It launches your own terminal text editor, with vim, emacs and helix named in the documentation. The point of the integration is that you edit in the environment you are used to, with your own plugins and settings.

### Can rucola rename a note and fix the links to it?

Yes. Renaming and moving notes from inside the application is a listed feature, and wiki links are renamed automatically when a file is renamed, which the readme notes the marksman language server does not do.

### Does rucola need an external viewer to read notes as HTML?

Yes. It can compile notes to HTML on the fly, with LaTeX compilation and code highlighting, but showing them still requires a browser or another HTML viewer.

## Sources

- [Issues](https://github.com/Linus-Mussmaecher/rucola/issues)
- [License: GPL-3.0](https://github.com/Linus-Mussmaecher/rucola/blob/main/LICENSE)
- [Linus-Mussmaecher/rucola on GitHub](https://github.com/Linus-Mussmaecher/rucola)
- [README](https://github.com/Linus-Mussmaecher/rucola/blob/main/README.md)
- [Releases](https://github.com/Linus-Mussmaecher/rucola/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/linus-mussmaecher-rucola
