skip to content

compare / dendron

tnotes vs Dendron

VS Code extension for hierarchical Markdown notes named a.b.c.md, in maintenance mode since February 2023.

tnotes

terminal app · macOS, Linux · MIT · free · v1.3.0

Dendron

editor plugin · VS Code or VSCodium on Windows, macOS, Linux; CLI via Node.js · Apache-2.0 (relicensed from GPL-3.0 at the maintenance announcement) · Free

Dendron’s idea is that a knowledge base should be refactored like code. Notes are named by their place in a hierarchy, so project1.tasks.task1.md is the child of project1.tasks.md, and all of them sit in one flat vault folder. Lookup (Ctrl+L) finds or creates notes by that dotted path, schemas type the hierarchy and apply templates, and Rename Note or Refactor Hierarchy move whole subtrees while rewriting every wikilink that pointed into them. Every note carries YAML front matter with an id, title, created and updated; Dendron warns when it is missing.

The extension is the product, but it is not the only entry point. @dendronhq/dendron-cli runs dendron note lookup --query hello --output json and dendron note write --fname mytest --body "..." against a workspace without VS Code, and the same engine publishes a vault as a Next.js site.

The state of the project matters more than any feature. In February 2023 the founder announced on Discord that the company had pivoted, that “Dendron, the extension, will no longer be actively developed” and that the project would be in maintenance mode; the README links to the GitHub discussion that reproduces the announcement. Pull requests are reviewed on a best-effort basis, the last commit is from June 2025, and the extension still installs and works, but nothing new is coming. Anyone choosing Dendron in 2026 is choosing a finished tool.

Feature comparison

FeaturetnotesDendron
Storage format✓ plain .md files, folders are directories✓ plain .md files, one flat vault folder; hierarchy is in the file name, YAML front matter required
Runs in the terminal✓ TUI (ratatui) plus a headless CLI✗ editor is VS Code; the CLI is headless but not a TUI
[[Wikilinks]]✓ [[Title]] with completion; rewritten on rename✓ [[dotted.note.name]], plus block anchors and cross-vault links
Backlinks✓ overlay + backlinks in JSON✓ Backlinks panel in the sidebar
#tags✓ #tag and nested #work/project, parsed from text✓ #tag in text or tags: in front matter; each tag is a note under tags.*
Headless CLI✓ ls, search, cat, new, append, write, trash, restore✓ dendron note get | find | lookup | write | delete | move
JSON output for scripts / agents✓ --json on every command✓ --output json on the note commands
Live reload on external edits✓ file watcher; dirty tabs keep their text~ VS Code reloads clean editors; Reload Index re-reads schemas
Vim keys✓ vim or emacs keys (edtui)~ through the VSCodeVim extension
Mouse support✓ click, double-click, right-click menus, drag✓
Sync~ any file sync: git, Syncthing, iCloud, Dropbox~ vaults are folders meant for git; no sync service
Encryption~ encrypt the folder: FileVault, gocryptfs✗
Mobile app✗ files sync to any mobile Markdown editor✗
Plugins✗~ pods for import/export and hooks; the rest is the VS Code ecosystem
Open source✓ MIT, Rust✓ Apache-2.0, TypeScript; maintenance mode, last commit June 2025

✓ yes · ~ partial or via the file system · ✗ no

Choose Dendron if

  • You want hierarchy as the primary structure: dotted names, stubs for missing parents, schemas that enforce shape and templates.
  • You refactor: renaming a note or a whole hierarchy rewrites every wikilink across the vault.
  • You already work in VS Code and want notes in the same window as code.
  • You publish: the built-in Next.js site generator handles per-vault, per-hierarchy and per-note publishing permissions.
  • You are comfortable with a project in maintenance mode because it is local-first and the files are plain Markdown.

Choose tnotes if

  • You want an actively developed tool: tnotes 1.3.0 shipped on 21 September 2026 with write, append and restore in the CLI.
  • You want a terminal UI, not an editor extension: tnotes runs over SSH and in a tmux pane.
  • You want folders on disk, [[Title]] links and #tags with no required front matter.
  • Scripts and agents need ls, search, cat, new, append, write with --json and no Node.js runtime.

Using Dendron and tnotes together

A Dendron vault is a folder of .md files, so tnotes can open it, but two Dendron conventions collide with tnotes’ rules:

So use tnotes read-only on a live Dendron vault (ls, search, cat never write), or convert once. This turns the dotted hierarchy into folders and the front-matter title into the first line:

src=~/Dendron/vault; dst=~/notes
for f in "$src"/*.md; do
  stem=$(basename "$f" .md)
  out="$dst/$(printf '%s' "$stem" | tr . /).md"
  mkdir -p "$(dirname "$out")"
  awk 'NR==1 && $0=="---" {fm=1; next}
       fm && $0=="---"      {fm=0; print "# " title; next}
       fm && sub(/^title: */, "") {gsub(/^"|"$/, ""); title=$0; next}
       fm {next}
       {print}' "$f" > "$out"
done
tnotes "$dst"

project1.tasks.task1.md becomes project1/tasks/task1.md titled from its front matter. Wikilinks still contain dotted names after this; rewrite them to [[Title]] with a second pass or leave them and let alt+enter create the missing targets as you go. Front-matter tags: are dropped; add #tags in the body where you want them.

FAQ

? Is Dendron still maintained?

It is in maintenance mode. The founder announced in February 2023 that active development had stopped after the company pivoted; the README states it plainly, and the last commit to the repository is from June 2025. The extension still works because everything is local files, and pull requests are reviewed on a best-effort basis.

? How do I get my notes out of Dendron?

They are already Markdown files in the vault folder, named a.b.c.md with YAML front matter. Any Markdown tool opens them. To move to a folder-based tool, split the dotted names into directories and move the front-matter title into a heading; the recipe above does that for tnotes.

? Does Dendron have a CLI?

Yes. npm install -g @dendronhq/dendron-cli gives dendron note get | find | lookup | write | delete | move, with --output json, md_gfm or md_dendron, plus publishing and pod commands. It needs a workspace with dendron.yml and starts its own engine unless you attach to a running one.

Sources

Dendron facts checked on 2026-09-22 against: