compare / notion
tnotes vs Notion
Hosted workspace of pages and databases with real-time collaboration, a REST API and an official MCP server; content lives on Notion's servers, not in files.
tnotes
terminal app · macOS, Linux · MIT · free · v1.3.0
web app · Web; desktop apps for macOS and Windows; iOS and Android · Proprietary · Free plan for individuals; Plus, Business and Enterprise per member per month
Notion is a hosted document and database product. A page is a tree of blocks stored on Notion’s servers; a database is a table of pages with typed properties (Select, Multi-select, Date, Relation, Formula, up to 500 per database) that you can view as a table, board, calendar or timeline. Everything is collaborative by default: sharing, comments, permissions per page or teamspace, and audit logs on paid plans.
For programmatic access there is a REST API at api.notion.com with cursor pagination and JSON bodies, and since 2025 a hosted MCP server so Claude Code, Cursor or Codex can search, read and write a workspace after an OAuth grant. Enterprise workspaces can trigger a full export from an admin API. What Notion does not have is a local file: the desktop app is a wrapper over the same cloud data, and export is a zip of Markdown, CSV, HTML or PDF that you request and download.
tnotes sits on the other end. There is no server, no account and no collaboration; notes are .md files in a directory you own, and the CLI’s JSON is a view of those files. Choosing between them is mostly choosing between a shared workspace with a data model and a folder of text.
Feature comparison
| Feature | tnotes | Notion |
|---|---|---|
| Storage format | ✓ plain .md files, folders are directories | ✗ cloud database; export to Markdown & CSV, HTML or PDF |
| Runs in the terminal | ✓ TUI (ratatui) plus a headless CLI | ✗ |
| [[Wikilinks]] | ✓ [[Title]] with completion; rewritten on rename | ~ typing [[ opens a page picker; the link is a page mention, not text |
| Backlinks | ✓ overlay + backlinks in JSON | ✓ backlinks list above the page title, from @-mentions |
| #tags | ✓ #tag and nested #work/project, parsed from text | ~ Select / Multi-select database properties; no inline #tags |
| Headless CLI | ✓ ls, search, cat, new, append, write, trash, restore | ✗ REST API and hosted MCP server; no official CLI |
| JSON output for scripts / agents | ✓ --json on every command | ~ REST API (api.notion.com) speaks JSON; nothing local |
| Live reload on external edits | ✓ file watcher; dirty tabs keep their text | ✗ no files on disk; edits sync through the cloud |
| Vim keys | ✓ vim or emacs keys (edtui) | ✗ |
| Mouse support | ✓ click, double-click, right-click menus, drag | ✓ block handles, drag and drop, slash menus |
| Sync | ~ any file sync: git, Syncthing, iCloud, Dropbox | ✓ built in; per-minute server backups |
| Encryption | ~ encrypt the folder: FileVault, gocryptfs | ~ AES-256 at rest, TLS in transit; not end-to-end, staff can access for support |
| Mobile app | ✗ files sync to any mobile Markdown editor | ✓ iOS and Android |
| Plugins | ✗ | ~ integrations via the API and MCP; no in-app plugin system |
| Open source | ✓ MIT, Rust | ✗ SDKs are open source, the product is not |
✓ yes · ~ partial or via the file system · ✗ no
Choose Notion if
- Several people edit the same pages at once and you need permissions, comments and mentions on top of the text.
- Databases with typed properties, relations, rollups and formulas are the actual work; a folder of Markdown cannot express them.
- You want an official, hosted integration surface (REST API, MCP, Slack/GitHub/Jira connections) maintained by the vendor.
- Mobile and web access from any device without setting up file sync.
Choose tnotes if
- Your notes must be readable and writable without a network, an account, or Notion’s continued existence: plain
.mdfiles,githistory, any editor. - Agents and scripts work on a local folder:
tnotes ls --json,search,appendandwritereturn in milliseconds with no token, rate limit or OAuth grant. - You live in a terminal and want
[[links]],#tags, backlinks and search there, with vim or emacs keys. - Encryption is under your control: FileVault, gocryptfs or an encrypted volume, not a vendor promise of encryption at rest.
Using Notion and tnotes together
There is no live sync between Notion and tnotes. The workable path is a one-way export: Notion writes a zip of Markdown files, you unzip it into a tnotes root.
In Notion: Settings → General → Export all workspace content, format Markdown & CSV, subpages included. Large workspaces arrive by email link, up to 30 hours later. Per page, the ••• → Export menu does the same for one subtree.
mkdir -p ~/notes/notion && cd ~/notes/notion
unzip ~/Downloads/Export-*.zip
tnotes ~/notes/notion # add it as a root
tnotes ls --json | jq 'length' # every exported page is a note
tnotes search "onboarding" --dir ~/notes/notion
What to expect in the export:
- Each file is named
<Page title> <32-hex page id>.md, and each subpage folder carries the same suffix. tnotes takes a note’s title from its first line, so the list reads correctly as long as the exported file starts with the page title; the file names keep the suffix until renamed. Editing a title in tnotes renames the file to a slug of the new title and rewrites[[links]], but the export’s links are not wikilinks (next point), so rename in bulk with a script if you want clean stems. - Links between pages are exported as Markdown links to the id-suffixed file names (
[Roadmap](Roadmap%20a1b2….md)). tnotes indexes only[[Title]]links, so Notion’s page graph does not appear inlinks/backlinksuntil you convert them. - Databases become
.csvfiles (one row per page) plus a Markdown file per row. tnotes ignores the CSV. - Callout blocks are exported as HTML, not Markdown. Select and Multi-select values are database properties, not
#tagsin the text, so tnotes does not see them as tags. - Attachments land in the same folders; tnotes only lists
.md.
Treat the folder as a snapshot. If Notion stays the source of truth, re-export and replace; if tnotes does, stop editing in Notion.
FAQ
- ? Can I export Notion to Markdown?
Yes. Any page:
•••→Export→Markdown & CSV, optionally with subpages. Whole workspace:Settings→General→Export all workspace content(desktop or web only; the download link expires after 7 days). Full-page databases export as CSV with one Markdown file per row; callouts export as HTML. Form views cannot be exported.- ? Is there a Notion CLI?
Not an official one. Notion exposes a REST API (bearer token, JSON, cursor pagination, 100 items per page) and a hosted MCP server that clients such as Claude Code connect to over OAuth. Community CLIs wrap the API. For a local folder of Markdown,
tnotesgivesls,search,cat,new,appendandwritewith--json, no token required.- ? Is Notion end-to-end encrypted?
No. Notion’s security page states customer data is encrypted at rest with AES-256 and in transit with TLS 1.2+, hosted on AWS, and that employees may access data for troubleshooting or content recovery. There is no client-side key. If that matters, keep notes in files on an encrypted disk.
Sources
Notion facts checked on 2026-09-22 against:
- Notion Help: Export your content
- Notion Help: Links & backlinks
- Notion Help: Security practices
- Notion API reference: Introduction, and MCP overview