User guide

Using Moldavite

From your first Forge to local semantic search, external-edit safety, plugins, and a read-first bridge for AI tools.

Getting started

Install Moldavite with Homebrew:

brew install --cask mauropereiira/moldavite/moldavite

If you prefer a disk image, open the latest release, download the macOS DMG, and move Moldavite to Applications.

A Forge is a vault directory. Forges normally live side by side under the Forges root at ~/Documents/Moldavite/, although onboarding lets you choose a different root. Inside each Forge, notes are ordinary Markdown files organized into daily/, weekly/, and notes/.

Your files remain usable without Moldavite

Notes use Markdown with optional YAML frontmatter. Moldavite preserves frontmatter keys it does not understand, so metadata from another tool survives an app save.

Import from Obsidian

Open Settings → Import and choose an Obsidian vault folder. Moldavite first shows a read-only preview, then copies the vault into a new Forge; it never edits, moves, or deletes anything in the source vault. You choose the new Forge name and can switch to it from the completion summary.

The editor, wiki-links, and graph

Moldavite uses a TipTap rich-text editor while saving Markdown on disk. Markdown shortcuts work as you type: for example, # plus Space starts a heading and - starts a list.

Formatting and commands

Wiki-links and backlinks

Type [[Note Name]] to link a note, or [[Display text|target-note]] to separate the visible label from its target. Linked mentions below the editor and the backlinks sidebar show which notes point back to the current one. Unresolved links remain visibly distinct and can create a standalone note.

Rename a note without breaking its context

Rename a standalone note from its sidebar context menu or the editor's More menu. Moldavite updates the open note, tabs, recents, pinned state, colors, selection, and backlinks to the new path, then rewrites inbound wiki-links across the Forge. Daily and weekly notes stay date-named and cannot be renamed through this action.

Graph view

Open the graph from the quick switcher to explore connections. Nodes use complete Forge-relative paths, so folder notes, daily notes, and weekly notes with similar names remain distinct and open the correct file. Broken-link nodes stay visible without colliding with real notes.

Tags and templates

Inline #tags are aggregated in the sidebar; a tag can be renamed across the Forge from its context menu. Templates live under Settings → Templates and support these substitutions:

Variable Value when applied
{{date}} Current date, YYYY-MM-DD
{{time}} Current time, HH:mm
{{day_of_week}} Current day name, such as Tuesday

Pin up to six templates for quick access from an empty note.

Organization and search

Sidebar sections are collapsible, with their contents indented beneath each section header and a subtle guide line that makes the hierarchy clear at a glance.

Keyword search matches words; semantic search matches meaning. A query such as “quarterly planning” can surface a note that only says “Q3 roadmap discussion.” The feature is off by default and must be enabled under Settings → AI & Agents.

Semantic search requires Apple Silicon on macOS. Intel Macs keep the full keyword search, and MCP search_notes transparently uses keyword mode.

Choose a transparent local model

Before the first download, Moldavite's consent dialog names the selected model and its approximate size. The model is cached in the app data directory, never in a Forge. Notes are embedded on your Mac; locked notes are never read or indexed.

Model Approx. download Best fit
all-MiniLM-L6-v2 97 MB Fastest, English-focused; default
BGE small English 130 MB Higher-quality English retrieval
Multilingual E5 small 450 MB Non-English or mixed-language Forges

Hugging Face is contacted only to retrieve the model after consent. Once the download is complete, indexing, queries, and related-note comparisons run offline.

Search and discover related notes

The per-Forge index updates incrementally on save, delete, rename, trash, and restore. Changing models performs a complete re-index with live progress. If results seem stale, use Rebuild index in Settings to embed the Forge again from scratch. Internal index data lives at <Forge>/.index/.

Safety, privacy, and external edits

Moldavite has no hosted note service, accounts, analytics, or telemetry. Notes stay in the directory you choose. The app still has explicit network paths: signed update checks, consented semantic-model downloads, and HTTPS calls made for a plugin to a host you approved.

External-edit conflict copies

A Forge can live in iCloud Drive, Dropbox, Syncthing, or git and can be edited in another app. The file watcher refreshes Moldavite when disk changes. If a note changed on disk after Moldavite last read it and you then save different edits, the app does not silently destroy the disk version:

  1. The complete external file is preserved beside the original as <name> (conflict YYYY-MM-DD HHMM).md.
  2. Your Moldavite edits are saved to the original path.
  3. A warning toast names the conflict note and the sidebar refreshes so you can merge it.

Simultaneous conflict copies in the same minute receive a numeric suffix, which prevents one copy from overwriting another.

Calendars

The right panel can show a month and your events from two sources. Both are read-only: Moldavite never creates, edits, or deletes an event, and never writes one into a note by itself. Connect either or both in Settings → Calendar, then tick the individual calendars you want on the timeline.

If one source fails, the timeline keeps the available source visible and reports the error above the grid. What each connection sends is listed in the Privacy Policy.

Staying up to date

Moldavite checks for updates silently about once a day, including when you return focus to the app after a day. When an update is pending, a small accent dot appears on the sidebar Settings gear and on the About tab. No popup interrupts your work.

Open Settings → About to install the pending update. You can also check manually from that tab at any time.

Plugins and Publish to WordPress

Plugins add commands to the command palette and slash menu. Each plugin runs in a Web Worker without direct DOM, network, Tauri IPC, or global app-state access. Moldavite shows its requested permissions before enabling it and re-prompts whenever the manifest or code hash changes.

The current plugin API can expose active-editor HTML, trusted prompt forms, unlocked note reads, host-performed HTTPS to exact approved hosts, and plugin-namespaced macOS Keychain secrets. It does not provide note-write methods or custom panels. See the complete author guide for the exact API and security model.

Browse the community directory

The website directory is searchable by plugin name, description, author, and permission. Its Install in Moldavite links use the app's moldavite://plugin/<id> URL scheme to open Settings directly on the chosen plugin. Moldavite still shows a confirmation with permissions and never installs or enables a plugin silently.

  1. Use an install link on the website, or open Settings → Plugins and select Browse community plugins.
  2. That click is the explicit action that contacts GitHub; Moldavite never fetches the registry during startup or in the background.
  3. Review the author, requested permissions, and exact network hosts, then select Install.
  4. Moldavite downloads only from its pinned community repository and verifies both files in Rust against the registry SHA-256 hashes before installing them atomically.
  5. Read the About this plugin setup dialog, then enable the plugin and grant its permissions separately. The ⓘ action reopens those instructions at any time.

Installed registry versions are labeled clearly. Updating requires confirmation, and any manifest or code change invalidates the old consent hash so the plugin remains disabled until you review it again.

Install the first-party WordPress reference

  1. Open Settings → Plugins.
  2. Select Install Publish to WordPress, then enable the plugin.
  3. Run Configure WordPress publishing and enter an HTTPS site URL, username, and WordPress Application Password in the Moldavite-rendered prompt.
  4. Approve the exact site host. The plugin verifies the credentials before saving them.
  5. Open a note and run Publish note to WordPress….

The first publish creates a draft. Publishing the same Forge-relative note path again updates the mapped post and avoids a duplicate. Configuration and the path-to-post map live in the plugin's Keychain namespace and stay outside the Forge.

WordPress.com support boundary

Self-hosted WordPress and WordPress.com Jetpack/Atomic sites work when they expose the standard REST API and Application Passwords. WordPress.com Simple sites require OAuth with a separately registered client ID and are not supported by this plugin.

Use a Forge as agent memory

File-capable agents can work with a Forge directly because it is plain Markdown. Open Settings → AI & Agents and select Make this Forge agent-ready to write two files at the Forge root:

If either file exists, Moldavite asks before replacing it. Settings also shows whether the current Forge already has an AGENTS.md.

The MCP write switch does not govern direct file access

An agent that already has operating-system permission to edit your Forge can write those files directly. Allow agents to write notes controls only Moldavite's MCP write tools. Scope file-system access in the AI client as carefully as MCP access.

Connect an MCP client

The normal Moldavite app binary becomes a local stdio MCP server when launched with --mcp. It does not initialize the GUI and does not open a network listener. Settings resolves the exact binary path on your Mac and provides copy-ready snippets for each supported client; use those generated snippets whenever possible.

Claude Code

Run the generated command in a terminal. A standard app installation looks like this:

claude mcp add moldavite -- "/Applications/Moldavite.app/Contents/MacOS/moldavite" --mcp

Claude Desktop

Add a server to claude_desktop_config.json:

{
  "mcpServers": {
    "moldavite": {
      "command": "/Applications/Moldavite.app/Contents/MacOS/moldavite",
      "args": ["--mcp"]
    }
  }
}

Cursor

Save the same server shape as .cursor/mcp.json:

{
  "mcpServers": {
    "moldavite": {
      "command": "/Applications/Moldavite.app/Contents/MacOS/moldavite",
      "args": ["--mcp"]
    }
  }
}

Generic stdio MCP client

Use the resolved binary as command and pass --mcp as its first argument. Moldavite's generic snippet is:

{
  "moldavite": {
    "command": "/Applications/Moldavite.app/Contents/MacOS/moldavite",
    "args": ["--mcp"]
  }
}

Choose a Forge

MCP mode uses the active Forge by default. To pin a different existing Forge, append --forge and its exact name. For JSON clients that means "args": ["--mcp", "--forge", "Work"].

Read tools are the default

Tool Behavior Default
search_notes Uses the ready local semantic index when enabled; otherwise keyword full-text search. The response identifies the mode used. Available
read_note Reads one unlocked Markdown note by validated Forge-relative path. Available
list_notes Lists note paths and locked placeholders, optionally below a folder. Available
get_backlinks Finds unlocked notes linking to a selected note. Available
create_note Creates a new Markdown note without overwriting an existing or locked note. Hidden
append_to_daily_note Appends Markdown to a date's daily note, creating it when absent. Hidden
write_note Fully replaces an existing unlocked Markdown note. Hidden

Enable the three write tools only through Settings → AI & Agents → Allow agents to write notes. The setting is re-read for every request, so turning it off removes and blocks write tools in already-running sessions. Locked notes remain inaccessible, and every client-supplied path is validated.