| Crates.io | mdvault |
| lib.rs | mdvault |
| version | 0.2.1 |
| created_at | 2026-01-01 16:26:32.465464+00 |
| updated_at | 2026-01-15 16:57:57.229994+00 |
| description | CLI tool for managing markdown vaults with structured notes, validation, and search |
| homepage | https://github.com/agustinvalencia/mdvault |
| repository | https://github.com/agustinvalencia/mdvault |
| max_upload_size | |
| id | 2016400 |
| size | 448,821 |
CLI and MCP Server for Markdown Vault Management
mdvault is a Rust-based CLI tool and MCP (Model Context Protocol) server for managing markdown vaults. It's designed for knowledge workers who need structure without friction—particularly those who excel at capturing information but struggle with retrieval and maintenance.
Pull-Optimised, Not Push-Optimised: Notes get created correctly during hyperfocus but go stale without maintenance. Retrieval is the primary failure mode, so mdvault focuses on finding information when you need it rather than optimising capture.
Opinionated Structure: Rather than maximising flexibility, mdvault enforces structure through required frontmatter fields, automatic scaffolding, validation workflows, and enforced linking patterns.
ADHD-Friendly Principles:
mdvault is undergoing a significant expansion. The core templating and capture system is functional, while the indexing, search, and MCP integration are in development.
mdv new task "My Task" creates notes with schema-based frontmattermdv new task prompts to select a project from existing onesmdv task list shows tasks by project, mdv task done marks completemdv project list shows projects with open/done task counts{{today + 1d}} or {{today + monday}}{{title | slugify}}, {{name | lowercase}}, etc.mdv validate checks notes against type schemas with auto-fix supportDownload the latest release for your platform from the Releases page.
# macOS/Linux: Extract and move to PATH
tar xzf mdv-*.tar.gz
sudo mv mdv /usr/local/bin/
# Verify installation
mdv --version
brew install agustinvalencia/tap/mdvault
cargo install mdvault
git clone https://github.com/agustinvalencia/mdvault.git
cd mdvault
cargo build --release
# Binary is at target/release/mdv
mkdir -p ~/.config/mdvault
cat > ~/.config/mdvault/config.toml << 'EOF'
version = 1
profile = "default"
[profiles.default]
vault_root = "~/Notes"
templates_dir = "{{vault_root}}/.mdvault/templates"
captures_dir = "{{vault_root}}/.mdvault/captures"
macros_dir = "{{vault_root}}/.mdvault/macros"
[security]
allow_shell = false
allow_http = false
EOF
mdv doctor
mdv
| Command | Description |
|---|---|
mdv |
Launch interactive TUI |
mdv doctor |
Validate configuration |
mdv new <type> "Title" |
Create note with type-based scaffolding |
mdv new --template <name> |
Create note from template |
mdv capture <name> |
Run a capture workflow |
mdv macro <name> |
Execute a multi-step macro |
mdv list-templates |
List available templates |
mdv reindex |
Build or rebuild the vault index |
mdv list |
List notes with filters (type, date, limit) |
mdv links <note> |
Show backlinks and outgoing links |
mdv orphans |
Find notes with no incoming links |
mdv validate |
Validate notes against type schemas |
mdv validate --fix |
Auto-fix safe validation issues |
mdv rename <old> <new> |
Rename note and update all references |
mdv search <query> |
Search notes with contextual matching |
mdv stale |
Find neglected notes |
mdv task list |
List tasks with status and project |
mdv task status <id> |
Show detailed task status |
mdv task done <task> |
Mark a task as done |
mdv project list |
List projects with task counts |
mdv project status <id> |
Show project status with tasks |
See mdv --help for full options.
mdvault enforces note types via frontmatter. Types can be customized with Lua definitions in ~/.config/mdvault/types/:
| Type | Purpose | Required Fields |
|---|---|---|
daily |
Daily notes, temporal backbone | date |
weekly |
Weekly overviews | week_start_date |
task |
Individual tasks | status, project |
project |
Task collections | status, created_date |
zettel |
Knowledge notes | tags |
none |
Uncategorised (triage queue) | — |
mdvault has a sister project being developed for an MCP server for AI-assisted vault interaction
This enables Claude and other MCP clients to:
The original markadd documentation (templates, captures, macros, configuration) is preserved in docs/markadd-legacy/.
Works with any markdown-based vault system:
See LICENSE.