How to use CherryTree for note taking

CherryTree is an open source alternative to OneNote for keeping track of the things you need to know.
183 readers like this.
Hands on a keyboard with a Python book

WOCinTech Chat. Modified by CC BY-SA 4.0

When I started working at Microsoft a few years ago, one of the first things I did was create a OneNote file to keep track of everything. I had to learn about internal procedures and tooling, partners, projects, and so many other things. The hierarchical nature of OneNote files made it easy to arrange this loosely related information into a well-organized set of documentation that I could quickly refer to. When I left Microsoft to take a job at Red Hat, I wanted to keep using the concept, but with an open source tool. I quickly found CherryTree, a GPLv3-licensed note-taking application.

In Linux, everything is a file; in CherryTree, everything is a "node." Nodes can be plain text, rich text, or have automatic syntax highlighting for a variety of common programming and markup languages. Each node can have child nodes, allowing you to easily organize your information. Child nodes can have their own children with independent properties.

In my role as Fedora program manager, I run several IRC meetings. My Fedora CherryTree file has a node for release meetings. Each release is a child under that, with a subsequent child node for the beta and final meetings. Under those child nodes, I have nodes for each iteration of the meeting. I have a template for the IRC commands in one of the higher-level nodes, which I copy into the child nodes with the appropriate details filled in. This way, I have notes for each meeting available without having to use version control.

The node-per-instance model works well for me when I have long notes or need to make per-meeting tweaks to the script. On the other hand, I'll use a single running node for short-content meetings. When I have my weekly one-on-one with my manager, I take notes in a single node, using headers with the date to separate the meetings.

CherryTree's hierarchical note layout

CherryTree can also be a handy lab notebook. Because code blocks can be executed, it can be a helpful way to share documentation with collaborators. You can include documentation—including text, images, and tables—alongside code in a single file. Files can either be SQLite (which is faster for startup and slower to search) or XML (which is slower for startup and faster to search).

Although CherryTree can be used to share information, it shouldn't be used for live collaboration. CherryTree can detect when the file has been changed on disk and reload the content, but it's not designed for concurrent use. Similarly, it doesn't have a built-in cloud storage mechanism—you'll have to either save the file to a directory that's automatically synced or manually use Git commands to check the file in and out of a repo.

CherryTree is actively developed on GitHub. One of the key areas of development right now is moving from Python 2.7 to C++. If you're looking for an easy-to-use, cross-platform notebook, CherryTree is a good choice. Now I need to start using it for my articles.

User profile image.
Ben Cotton is a meteorologist by training, but weather makes a great hobby. Ben works as the Fedora Program Manager at Red Hat. He is the author of Program Management for Open Source Projects. Find him on Twitter (@FunnelFiasco) or at


I have used CherryTree in the past and I have had a great experience with this tool.

I've used CherryTree and I really like it, but the absence of an android app is a deal-breaker for me. I've settled on Joplin:

Cherrytree is one of those programmes that replaces a whole mess of other apps/programmes due to its versatility. I use it for all my writing/word processing needs - logbook, inventory, poetry, story/article/letter writing, address book/contacts list, recipe book, to do/task lists, project management, notebook, and much, much more. It's cross platform so I can use it on Windows or Linux without skipping a beat. I have yet to find a more useful, versatile programme.

cherrytree can provide programming language syntax highlighting and basic table editing, which is not provided in Zim Desktop. But I like more the way in Zim to organize pages and files, which provides one-to-one map between page and file, while its editing capability is limited, in the attachment folder it can hold any different type of files, so you can edit different format in attachment files.

I've used CherryTree and I really like it.. thanks for suggestion.

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.