---
title: "tnotes vs Neorg · tnotes"
description: "Neorg or tnotes for Markdown notes? Neovim plugin for structured notes, tasks and journals in its own .norg format, parsed by tree-sitter. Feature-by-feature co"
canonical: https://tnotes.app/compare/tnotes-vs-neorg
---

[compare](/compare) / neorg

# tnotes vs Neorg

Neovim plugin for structured notes, tasks and journals in its own .norg format, parsed by tree-sitter.

tnotes

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

[Neorg](https://github.com/nvim-neorg/neorg)

editor plugin · Neovim 0.10+ on Linux, macOS, Windows; needs luarocks and a tree-sitter build · GPL-3.0 · Free

Neorg is not a Markdown tool and does not try to be one. It defines its own file format, `.norg`, with a tree-sitter grammar, and builds every feature on that: headings that nest by star count, TODO items with a state cycle, a journal module, a table of contents module, a presenter, a code-block tangler. The README calls the project young and warns of occasional breaking changes; version 9.0.0 changed the installation path to luarocks, and 9.6.4 (April 2026) is the latest tag.

Links are Norg objects, not titles. `{* Heading}` points at a heading in the current file, `{:notes/index:* Heading}` at a heading in another file of the workspace, `{# anything}` at any object with that name; `core.esupports.hop` follows them. There is no title-based link and no backlinks index. The roadmap lists a Zettelkasten backend, to be written in Rust, whose main job would be tracking backlinks; it is unchecked.

Getting out is a Neovim command. `:Neorg export to-file out.md` converts the current buffer through `core.export.markdown`, and `:Neorg export directory ~/notes markdown` converts a workspace. Pandoc does not read `.norg`; the roadmap marks the Pandoc integration as stalled.

## Feature comparison

| Feature | tnotes | Neorg |
| --- | --- | --- |
| Storage format | ✓ plain .md files, folders are directories | ✓ plain .norg files in workspaces managed by core.dirman; not Markdown |
| Runs in the terminal | ✓ TUI (ratatui) plus a headless CLI | ✓ it is Neovim |
| \[\[Wikilinks\]\] | ✓ \[\[Title\]\] with completion; rewritten on rename | ~ {:file:} and {:file:\* Heading} links, {\* Heading} in-file; no \[\[Title\]\] syntax |
| Backlinks | ✓ overlay + `backlinks` in JSON | ✗ planned as part of a Zettelkasten library on the roadmap |
| #tags | ✓ #tag and nested #work/project, parsed from text | ~ categories in @document.meta; no inline #tag index |
| Headless CLI | ✓ ls, search, cat, new, append, write, trash, restore | ✗ commands are :Neorg … inside Neovim |
| JSON output for scripts / agents | ✓ --json on every command | ✗ |
| Live reload on external edits | ✓ file watcher; dirty tabs keep their text | ~ Neovim's own autoread / checktime |
| Vim keys | ✓ vim or emacs keys (edtui) | ✓ native |
| Mouse support | ✓ click, double-click, right-click menus, drag | ✓ Neovim's mouse support |
| Sync | ~ any file sync: git, Syncthing, iCloud, Dropbox | ~ files; git or any file sync |
| Encryption | ~ encrypt the folder: FileVault, gocryptfs | ✗ |
| Mobile app | ✗ files sync to any mobile Markdown editor | ✗ a mobile app is on the roadmap, not built |
| Plugins | ✗ | ✓ everything is a module; core.\*, external.\* community modules |
| Open source | ✓ MIT, Rust | ✓ GPL-3.0, Lua |

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

## Choose Neorg if

-   You want Neovim to be the entire environment: Norg files, journal, TODO states, calendar and presenter without leaving the editor.
-   You prefer a format designed for a parser: Norg’s grammar is stricter and more regular than Markdown, and tree-sitter powers folding, concealing and text objects.
-   You extend by writing Lua modules: Neorg’s module system is the product, and community `external.*` modules plug into it.
-   You are fine with a young project and pinning versions.

## Choose tnotes if

-   You want Markdown, readable by every other tool, phone app and language model.
-   You want `[[Title]]` links, completion after `[[`, backlinks and rename rewriting today, not on a roadmap.
-   You want a CLI with `--json` so scripts and agents can read and write the vault.
-   You want vim keys without owning a Neovim configuration: tnotes ships with an edtui vim mode and installs as one binary.

## Using Neorg and tnotes together

There is no overlap on disk: Neorg writes `.norg`, tnotes lists only `.md`, and Pandoc has no Norg reader. The one bridge is Neorg’s exporter, which is one-way. Inside Neovim, export a workspace into a folder under a tnotes root:

```
:Neorg export directory ~/norg markdown ~/notes/from-norg
```

Then open the root:

```
tnotes ~/notes
```

The result is a snapshot. tnotes indexes only `[[…]]` links, so whatever the exporter emits for `{:file:}` links is text or a Markdown link to tnotes, not an edge in `links` / `backlinks`; `@document.meta` categories are not `#tags`. Edits in tnotes do not go back to `.norg`.

If you want both, split by kind rather than convert: Norg for the journal and task workflow inside Neovim, a tnotes root for reference notes that scripts and agents read with `tnotes ls --json`. Both are plain text in one git repository, and tnotes ignores the `.norg` files next to its Markdown.

## FAQ

? Does Neorg support backlinks?

No. Links are one-directional Norg objects (`{* Heading}`, `{:file:* Heading}`). A Zettelkasten library that would track backlinks is listed on the roadmap as unstarted work.

? Can I convert Neorg files to Markdown?

Yes, from inside Neovim: `:Neorg export to-file note.md` converts the current buffer through `core.export.markdown`, and `:Neorg export directory <dir> markdown [out-dir]` converts a whole workspace. Pandoc cannot read `.norg`; the roadmap marks a Pandoc parser as stalled.

? Does Neorg work with Markdown or Org files?

No. Neorg only understands `.norg`. The roadmap mentions upgraders from `.org` to `.norg` as a goal, and Markdown export exists, but there is no import path and no Markdown mode.

## Sources

Neorg facts checked on 2026-09-22 against:

-   [Neorg README (Neovim 0.10+, luarocks install, GPL-3.0, 9.0.0 breaking changes)](https://github.com/nvim-neorg/neorg)
-   [Neorg roadmap (Zettelkasten/backlinks, Pandoc, mobile app: unchecked)](https://github.com/nvim-neorg/neorg/blob/main/ROADMAP.md)
-   [Neorg cheatsheet (link syntax)](https://github.com/nvim-neorg/neorg/blob/main/doc/cheatsheet.norg)
-   [Neorg wiki: core.export (:Neorg export to-file / directory)](https://github.com/nvim-neorg/neorg/wiki/Exporting-Files)

## Other comparisons

-   [tnotes vs Apple Notes](/compare/tnotes-vs-apple-notes)
-   [tnotes vs Dendron](/compare/tnotes-vs-dendron)
-   [tnotes vs Joplin](/compare/tnotes-vs-joplin)
-   [tnotes vs jrnl](/compare/tnotes-vs-jrnl)
-   [tnotes vs Logseq](/compare/tnotes-vs-logseq)
-   [tnotes vs nb](/compare/tnotes-vs-nb)
