sthix/tagdown

A markdown editor with a flavor called tagdown. Written in Rust.

TypeScript

15

77 commits

updated Oct 19, 2026

See the code

See what people are saying

SourceMessageScoreDate

I built a local-first Markdown editor for macOS where every note stays a plain .md file (open source, MIT) (r/coolgithubprojects)

I’m a product designer, and for a while now I’ve been building Tagdown, a notes editor for macOS. The core idea: every note is an ordinary Markdown file in a folder on your disk. No account, no proprietary database. Git, iCloud or Syncthing just work, because it’s just files. On top of Markdown it…

0

Oct 16, 2026

built a local-first Markdown editor for macOS where every note stays a plain .md file (open source, MIT) (r/SideProject)

I’m a product designer, and for a while now I’ve been building Tagdown, a notes editor for macOS. The core idea: every note is an ordinary Markdown file in a folder on your disk. No account, no proprietary database. Git, iCloud or Syncthing just work, because it’s just files. On top of Markdown it…

5

Oct 16, 2026

README

Tagdown Editor

A fast, local-first desktop editor for Tagdown notes — Markdown plus rich semantic blocks, tags, links, live queries, math, and diagrams.

Tagdown Editor is a macOS-focused Tauri app for writing structured notes without giving up plain-text ownership. Notes are ordinary Markdown files on disk. They render instantly in a polished preview, link to each other, and can be exported, presented as slides, published as a website, or handed to an AI assistant.

Plain text in. Beautiful documents out.
Local vaults · Wikilinks · Live queries · Full-text search · Slides · Publishing · MCP

Read the documentation →


Tagdown Editor in split view: the sidebar with All Notes, the Journal, library folders and a tag tree, a note list grouped by date, and a launch-plan note shown as Tagdown source beside its rendered preview with a callout, task list, table, and math
Light and dark side by side
LightDark
Tagdown Editor, light themeTagdown Editor, dark theme

What is Tagdown?

Tagdown is a note format built on Markdown with extra structure for knowledge work:

  • familiar Markdown for headings, lists, links, quotes, tables, and code
  • #tags (nested with /) and [[wikilinks]] between notes
  • document components such as callouts, tabs, grids, collapsible details, asides, figures, quotes, and keyboard hints
  • technical writing with KaTeX math and Mermaid diagrams
  • live <query /> blocks that list notes or tasks from across the vault
# Atlas launch plan

The plan for shipping **Atlas** this quarter. #project/atlas

::: tip Goal
Public beta by **November 14**.
:::

<query tag:project show:tasks />

See the syntax guide for everything Tagdown adds.

Features

Writing

  • Source, split, and preview modes (⌘1 / ⌘2 / ⌘3), and edit in place by clicking any block in the preview.
  • Slash commands: type / to turn a line into a heading, list, or task, or to insert any component, a note link, or a date.
  • Outliner lists: ↩ continues bullets, numbers, and tasks; Tab and ⇧Tab nest and un-nest items with their children.
  • Drag to reorder blocks in the preview by their grip, or move the block you're editing with ⌘⇧↑ / ⌘⇧↓. Headings bring their whole section along (a setting you can turn off).
  • Formatting toolbar with one-click templates for every Tagdown component.
  • Command palette (⌘K) to jump to any note, search, or run any action.
  • Focus mode (⌘\) hides everything but the note.
  • Light and dark themes (⌘⇧D), or follow the system, with sixteen accent colours to tint the app and an optional paper grain.

Organizing

  • Local-first vault of plain .md files in ~/Documents/Tagdown, with nested folders and an archive.
  • Tags from the note body or frontmatter, shown as a colour-coded tree.
  • Wikilinks with autocomplete. Links follow renames automatically and show up as Linked mentions under the target note.
  • Journal (⌘⇧J): a page for every day with a calendar, [[2026-10-13]] date links, and a template for new days.
  • Full-text search backed by Tantivy, with tag:, title:, "phrases", and -exclusions.
  • Live queries such as <query tag:project show:tasks />; tick tasks right in the list. ⌘⇧T shows every open task.
  • Outside edits from other editors, git, or sync services are picked up while the app runs.

Safety

  • Autosave with version history (⌘⇧H). Earlier versions are kept locally, thinned out over time, and can be restored with one click.

Sharing

  • Export a note as a self-contained HTML file (⌘⇧E) or print / save as PDF (⌘P).
  • Present as slides (⌥⌘P): each --- starts a new slide, scaled to fit any screen.
  • Publish as a website: all notes, a folder, or a tag become static pages with working links, backlinks, tag filters, and search. Links to unpublished notes become plain text.

AI-ready

  • The tagdown CLI searches, reads, creates, and appends to notes from the terminal.
  • tagdown mcp is an MCP server, so assistants like Claude can search, read, and write rich Tagdown notes in your vault.

Download

Grab the latest .dmg from Releases. It's a universal build for Apple silicon and Intel Macs. Open it and drag Tagdown Editor into Applications.

Opening the app the first time

The app isn't signed with an Apple Developer ID yet, so macOS blocks the first launch with a message like "Apple could not verify 'Tagdown Editor' is free of malware". To open it anyway:

  1. Try to open Tagdown Editor once and dismiss the warning.
  2. Open System Settings → Privacy & Security, scroll down, and click Open Anyway next to the Tagdown Editor message.
  3. Confirm with Open. macOS remembers the choice, so later launches just work.

If macOS instead says the app "is damaged and can't be opened", remove the download quarantine flag in Terminal:

xattr -dr com.apple.quarantine "/Applications/Tagdown Editor.app"

Prefer to check the code first? Build it yourself as described below.

Building from source

You need Node.js 20+, Rust stable, and the Tauri prerequisites for macOS.

npm install
npm run tauri:dev

Build a release with:

npm run build
npm run tauri:build

On first launch the app creates a vault at ~/Documents/Tagdown with a few starter notes. More in Getting started.

Command line and AI assistants

cargo install --path src-tauri/core

tagdown search "tag:project budget"
tagdown new "Meeting notes" "Agenda for [[Project Atlas]]"
tagdown append "Meeting notes" "- [ ] Send recap"
tagdown tasks

Connect Claude Code to your vault:

claude mcp add tagdown -- tagdown mcp

Claude Desktop setup, every command, and the full list of MCP tools are in Command line and AI assistants.

Documentation

The guides below are also published at sthix.github.io/tagdown.

Getting startedDownload, build from source, first launch
Writing notesWorkspace, view modes, toolbar, themes and accents
Tagdown syntaxEverything Tagdown adds to Markdown
Organizing your vaultFolders, tags, pinning, archive, search, wikilinks
JournalDaily pages, date links, journal template
Queries and tasksLive queries and the open-tasks view
Version historySnapshots and restoring
Sharing your notesHTML, PDF, slides, and website publishing
Command line and AI assistantsThe tagdown CLI and MCP server
Keyboard shortcutsEvery shortcut on one page
DevelopmentArchitecture, layout, tests, releasing

Tech stack

LayerTechnology
Desktop shellTauri v2
UIVanilla TypeScript + Vite
Vault, search, CLI, MCPRust (tagdown-core)
SearchTantivy
Math renderingKaTeX
DiagramsMermaid
Storage modelLocal filesystem vault of Markdown files

Validation

npm run build
cargo test --manifest-path src-tauri/Cargo.toml --workspace
cargo check --manifest-path src-tauri/Cargo.toml --workspace
node --test tests/*.mjs

Current status

Tagdown Editor is an active early-stage desktop app (v0.1.0). The writing workspace (with slash commands, outliner lists, and drag-to-reorder blocks), vault, full-text search, wikilinks and backlinks, the daily journal, live queries, version history, file watching, HTML/PDF export, slides, website publishing, and the CLI/MCP server are in place. Still to come: drag-and-drop Markdown import, more settings, and a full native menu bar.

See PROJECT_PLAN.md for the roadmap.

Why this exists

Most note apps force a tradeoff: beautiful rendered documents, or durable plain-text files. Tagdown aims for both. You write in a format that stays readable and portable, while the editor turns it into structured, presentation-quality notes.

sthix/tagdown

A markdown editor with a flavor called tagdown. Written in Rust.

TypeScript

15

77 commits

updated Oct 19, 2026

See the code

See what people are saying

SourceMessageScoreDate

I built a local-first Markdown editor for macOS where every note stays a plain .md file (open source, MIT) (r/coolgithubprojects)

I’m a product designer, and for a while now I’ve been building Tagdown, a notes editor for macOS. The core idea: every note is an ordinary Markdown file in a folder on your disk. No account, no proprietary database. Git, iCloud or Syncthing just work, because it’s just files. On top of Markdown it…

0

Oct 16, 2026

built a local-first Markdown editor for macOS where every note stays a plain .md file (open source, MIT) (r/SideProject)

I’m a product designer, and for a while now I’ve been building Tagdown, a notes editor for macOS. The core idea: every note is an ordinary Markdown file in a folder on your disk. No account, no proprietary database. Git, iCloud or Syncthing just work, because it’s just files. On top of Markdown it…

5

Oct 16, 2026

README

Tagdown Editor

A fast, local-first desktop editor for Tagdown notes — Markdown plus rich semantic blocks, tags, links, live queries, math, and diagrams.

Tagdown Editor is a macOS-focused Tauri app for writing structured notes without giving up plain-text ownership. Notes are ordinary Markdown files on disk. They render instantly in a polished preview, link to each other, and can be exported, presented as slides, published as a website, or handed to an AI assistant.

Plain text in. Beautiful documents out.
Local vaults · Wikilinks · Live queries · Full-text search · Slides · Publishing · MCP

Read the documentation →


Tagdown Editor in split view: the sidebar with All Notes, the Journal, library folders and a tag tree, a note list grouped by date, and a launch-plan note shown as Tagdown source beside its rendered preview with a callout, task list, table, and math
Light and dark side by side
LightDark
Tagdown Editor, light themeTagdown Editor, dark theme

What is Tagdown?

Tagdown is a note format built on Markdown with extra structure for knowledge work:

  • familiar Markdown for headings, lists, links, quotes, tables, and code
  • #tags (nested with /) and [[wikilinks]] between notes
  • document components such as callouts, tabs, grids, collapsible details, asides, figures, quotes, and keyboard hints
  • technical writing with KaTeX math and Mermaid diagrams
  • live <query /> blocks that list notes or tasks from across the vault
# Atlas launch plan

The plan for shipping **Atlas** this quarter. #project/atlas

::: tip Goal
Public beta by **November 14**.
:::

<query tag:project show:tasks />

See the syntax guide for everything Tagdown adds.

Features

Writing

  • Source, split, and preview modes (⌘1 / ⌘2 / ⌘3), and edit in place by clicking any block in the preview.
  • Slash commands: type / to turn a line into a heading, list, or task, or to insert any component, a note link, or a date.
  • Outliner lists: ↩ continues bullets, numbers, and tasks; Tab and ⇧Tab nest and un-nest items with their children.
  • Drag to reorder blocks in the preview by their grip, or move the block you're editing with ⌘⇧↑ / ⌘⇧↓. Headings bring their whole section along (a setting you can turn off).
  • Formatting toolbar with one-click templates for every Tagdown component.
  • Command palette (⌘K) to jump to any note, search, or run any action.
  • Focus mode (⌘\) hides everything but the note.
  • Light and dark themes (⌘⇧D), or follow the system, with sixteen accent colours to tint the app and an optional paper grain.

Organizing

  • Local-first vault of plain .md files in ~/Documents/Tagdown, with nested folders and an archive.
  • Tags from the note body or frontmatter, shown as a colour-coded tree.
  • Wikilinks with autocomplete. Links follow renames automatically and show up as Linked mentions under the target note.
  • Journal (⌘⇧J): a page for every day with a calendar, [[2026-10-13]] date links, and a template for new days.
  • Full-text search backed by Tantivy, with tag:, title:, "phrases", and -exclusions.
  • Live queries such as <query tag:project show:tasks />; tick tasks right in the list. ⌘⇧T shows every open task.
  • Outside edits from other editors, git, or sync services are picked up while the app runs.

Safety

  • Autosave with version history (⌘⇧H). Earlier versions are kept locally, thinned out over time, and can be restored with one click.

Sharing

  • Export a note as a self-contained HTML file (⌘⇧E) or print / save as PDF (⌘P).
  • Present as slides (⌥⌘P): each --- starts a new slide, scaled to fit any screen.
  • Publish as a website: all notes, a folder, or a tag become static pages with working links, backlinks, tag filters, and search. Links to unpublished notes become plain text.

AI-ready

  • The tagdown CLI searches, reads, creates, and appends to notes from the terminal.
  • tagdown mcp is an MCP server, so assistants like Claude can search, read, and write rich Tagdown notes in your vault.

Download

Grab the latest .dmg from Releases. It's a universal build for Apple silicon and Intel Macs. Open it and drag Tagdown Editor into Applications.

Opening the app the first time

The app isn't signed with an Apple Developer ID yet, so macOS blocks the first launch with a message like "Apple could not verify 'Tagdown Editor' is free of malware". To open it anyway:

  1. Try to open Tagdown Editor once and dismiss the warning.
  2. Open System Settings → Privacy & Security, scroll down, and click Open Anyway next to the Tagdown Editor message.
  3. Confirm with Open. macOS remembers the choice, so later launches just work.

If macOS instead says the app "is damaged and can't be opened", remove the download quarantine flag in Terminal:

xattr -dr com.apple.quarantine "/Applications/Tagdown Editor.app"

Prefer to check the code first? Build it yourself as described below.

Building from source

You need Node.js 20+, Rust stable, and the Tauri prerequisites for macOS.

npm install
npm run tauri:dev

Build a release with:

npm run build
npm run tauri:build

On first launch the app creates a vault at ~/Documents/Tagdown with a few starter notes. More in Getting started.

Command line and AI assistants

cargo install --path src-tauri/core

tagdown search "tag:project budget"
tagdown new "Meeting notes" "Agenda for [[Project Atlas]]"
tagdown append "Meeting notes" "- [ ] Send recap"
tagdown tasks

Connect Claude Code to your vault:

claude mcp add tagdown -- tagdown mcp

Claude Desktop setup, every command, and the full list of MCP tools are in Command line and AI assistants.

Documentation

The guides below are also published at sthix.github.io/tagdown.

Getting startedDownload, build from source, first launch
Writing notesWorkspace, view modes, toolbar, themes and accents
Tagdown syntaxEverything Tagdown adds to Markdown
Organizing your vaultFolders, tags, pinning, archive, search, wikilinks
JournalDaily pages, date links, journal template
Queries and tasksLive queries and the open-tasks view
Version historySnapshots and restoring
Sharing your notesHTML, PDF, slides, and website publishing
Command line and AI assistantsThe tagdown CLI and MCP server
Keyboard shortcutsEvery shortcut on one page
DevelopmentArchitecture, layout, tests, releasing

Tech stack

LayerTechnology
Desktop shellTauri v2
UIVanilla TypeScript + Vite
Vault, search, CLI, MCPRust (tagdown-core)
SearchTantivy
Math renderingKaTeX
DiagramsMermaid
Storage modelLocal filesystem vault of Markdown files

Validation

npm run build
cargo test --manifest-path src-tauri/Cargo.toml --workspace
cargo check --manifest-path src-tauri/Cargo.toml --workspace
node --test tests/*.mjs

Current status

Tagdown Editor is an active early-stage desktop app (v0.1.0). The writing workspace (with slash commands, outliner lists, and drag-to-reorder blocks), vault, full-text search, wikilinks and backlinks, the daily journal, live queries, version history, file watching, HTML/PDF export, slides, website publishing, and the CLI/MCP server are in place. Still to come: drag-and-drop Markdown import, more settings, and a full native menu bar.

See PROJECT_PLAN.md for the roadmap.

Why this exists

Most note apps force a tradeoff: beautiful rendered documents, or durable plain-text files. Tagdown aims for both. You write in a format that stays readable and portable, while the editor turns it into structured, presentation-quality notes.