Description
Shows your tags as a tree in a side panel, the levels read from the tag name: "project/alpha" sits under "project". Separator is a setting. Read only: it never changes your tags or notes.
Additional Information
| Links: | |
|---|---|
| Maintainers: | rezarys |
| Version: | 1.0.0 |
| Minimum app version: | 2.13 |
| Downloads: This version: | 3 |
| Last updated: | 2026-11-01T09:54:06Z |
Tag Tree for Joplin
Install: in Joplin desktop, open Tools > Options > Plugins (macOS: Joplin > Settings > Plugins), search for Tag Tree, click Install, restart.
Shows your tags as a tree in a side panel. The levels come from the tag name: project/alpha and project/beta sit under project. Nothing to migrate, nothing to convert: name your tags with a separator and they fold.
- area (group)
home
work
inbox
- project (group)
alpha
- beta
review
- reading (group)
done
to read
Use
- View > Toggle Tag Tree shows or hides the panel.
- Click a tag to list its notes, as in the sidebar. Click the arrow to open or close a branch.
- Type in the filter box to show only the tags whose path contains the text, with their parents opened.
- Refresh reloads the list. The panel also reloads after a sync, when you select another note while it is open, and when you change the separator.
A level that is not a tag itself (project above, when only project/alpha exists) is shown as a group: it opens and closes but has no notes of its own.
Separator
Tools > Options > Tag Tree > Separator between levels. Default /. Use . for names like art.music, or :. Spaces around the separator are ignored, so Books / Python and Books/Python land in the same place; if both exist, both stay clickable.
Read only
The plugin only reads the tag list (id and title). It never creates, renames, merges or deletes a tag, and never touches a note. No network request, no telemetry, no account.
Limits
- It is a view. Searching a parent tag does not return the notes of its children, and a note tagged
project/alphais not taggedproject. - No note counts per tag, on purpose: counting needs one request per tag, which gets slow on large tag lists.
- Desktop only.
- Tested with automated tests against a simulated Joplin plugin API only. It has not been run by hand in the Joplin app yet, and the panel script (open branches, filter) has no automated test in a browser. If something is off, open an issue.
Manual install
Download publish/io.github.rezarys.joplintagtree.jpl from this repository, then in Tools > Options > Plugins, use the gear icon, Install from file.
Build and test
node --test tests/
node --test scripts/
The second command rebuilds publish/ (the .jpl archive and its info file), without any dependency.
Background
Hierarchical tags are a long standing request: https://github.com/laurent22/joplin/issues/375. This plugin does the display part only, reading the hierarchy from the names, as suggested in https://github.com/laurent22/joplin/issues/375#issuecomment-930487499.
Built with AI assistance, tested with automated tests, not reviewed line by line.
MIT License, Younes Z.