skip to content

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

Notion

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

FeaturetnotesNotion
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 .md files, git history, any editor.
  • Agents and scripts work on a local folder: tnotes ls --json, search, append and write return 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:

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, tnotes gives ls, search, cat, new, append and write with --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: