Command line and AI assistants

The tagdown command works on the same vault as the app. It can search, read, and write notes from a terminal or a script, and it runs an MCP server so AI assistants such as Claude can work with your notes.

Changes it makes show up in the running app right away, and anything it replaces is kept in the note’s version history.

Install

From the repository root (Rust 1.86 or newer):

cargo install --path src-tauri/core

This puts tagdown in ~/.cargo/bin.

Choosing the vault

The vault is ~/Documents/Tagdown unless you say otherwise:

tagdown --vault ~/Notes/Work list
TAGDOWN_VAULT=~/Notes/Work tagdown list

Commands

Notes are addressed by title (case-insensitive) or id.

Command What it does
tagdown search <query> Full-text search (tag:name, title:word, "phrase", -word)
tagdown list [--folder NAME] [--tag TAG] [--limit N] Notes, most recently edited first
tagdown show <note> Print a note
tagdown new <title> [text \| -] Create a note; - reads the body from stdin
tagdown append <note> <text \| -> Add text to the end of a note
tagdown journal [day] [text \| -] Print a day’s journal page, or add text to it; day is YYYY-MM-DD, today (the default), yesterday or tomorrow
tagdown tasks [--done \| --all] [--tag TAG] Checklist items across notes (open ones by default)
tagdown backlinks <note> Notes that link to a note
tagdown query <query> What a <query /> block would list, e.g. tag:project show:tasks
tagdown syntax Print the Tagdown syntax reference
tagdown mcp Run the MCP server on stdin/stdout

Examples:

tagdown search "tag:project budget"
tagdown new "Meeting notes" "Agenda for [[Project Atlas]]"
tagdown append "Meeting notes" "- [ ] Send recap"
git log --oneline -5 | tagdown append "Release log" -
tagdown journal "- Shipped the beta 🎉"
tagdown journal yesterday
tagdown tasks --tag project

MCP server

tagdown mcp speaks the Model Context Protocol over stdin/stdout.

Connect Claude Code

claude mcp add tagdown -- tagdown mcp

Connect Claude Desktop

Add this to ~/Library/Application Support/Claude/claude_desktop_config.json (use the full path to the binary), then restart Claude Desktop:

{
  "mcpServers": {
    "tagdown": { "command": "/Users/you/.cargo/bin/tagdown", "args": ["mcp"] }
  }
}

To point an assistant at a different vault, add "--vault", "/path/to/vault" before "mcp" in args.

Tools

Tool What it does
search_notes Full-text search with the usual query syntax; returns titles, ids, and excerpts
read_note A note’s full text, with its tags, folder, edit time, and backlinks
list_notes Notes, most recent first, optionally in one folder or under one tag
create_note Create a note with a title, body, optional folder and tags
append_to_note Add text to the end of a note
replace_note_content Replace a note’s whole text (the old text stays in version history)
list_tasks Checklist items across notes, grouped by note
get_backlinks Notes that link to a note, with the linking lines
run_query What a <query /> block would list
read_journal A day’s journal page (today by default)
append_to_journal Add text to a day’s journal page, creating the page if needed
get_tagdown_syntax The Tagdown syntax reference

The syntax reference is also offered as an MCP resource, so assistants write callouts, tabs, and wikilinks rather than plain Markdown.

Things to ask

  • “What’s still open for Project Atlas?”
  • “Summarize this week’s meeting notes into a new note called Weekly recap, and link each meeting.”
  • “Log in my journal that I finished the quarterly report.”
  • “Add a task to my Reading list to finish The Pragmatic Programmer.”