#markdown #knowledge-management #pkm

bin+lib mald

Markdown Archive & Localized Daemon — terminal-first PKM with local AI

1 unstable release

new 0.3.0 Feb 2, 2026

#2922 in Command line utilities

MIT license

420KB
11K SLoC

MALD

Plain markdown notes + local AI search + zero cloud dependencies. One binary, no Electron, no sync service. Everything stays on your machine.

Markdown Archive & Localized Daemon — a terminal-first PKM tool with local AI (Ollama), semantic search, cited RAG chat, and a background daemon that keeps everything indexed.

Install

Windows (PowerShell — no admin needed):

powershell -c "irm https://raw.githubusercontent.com/NAME0x0/MALD/main/install.ps1 | iex"

macOS / Linux:

curl -fsSL https://raw.githubusercontent.com/NAME0x0/MALD/main/install.sh | sh

Windows (Scoop):

scoop bucket add mald https://github.com/NAME0x0/scoop-mald
scoop install mald

Cargo (requires Rust toolchain):

cargo install mald

From source:

cargo install --git https://github.com/NAME0x0/MALD

Uninstall:

# Windows (script install)
powershell -c "irm https://raw.githubusercontent.com/NAME0x0/MALD/main/uninstall.ps1 | iex"
# Windows (scoop)
scoop uninstall mald
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/NAME0x0/MALD/main/install.sh | sh -s -- --uninstall
# Cargo
cargo uninstall mald

Quickstart

mald init                          # Create ~/.mald/ structure
mald new "Meeting Notes"           # Create a note (opens $EDITOR)
mald q "quick thought"             # Capture without opening editor
mald search "meeting"              # Full-text search across all KBs
mald                               # Dashboard: recent notes, tasks, stats

That's it. No accounts, no config, no internet required.

Core Commands

mald                        Dashboard (recent notes, tasks, quick actions)
mald new "Title"            Create a note (opens editor)
mald today                  Open/create today's daily note
mald q "text"               Quick capture to daily note
mald search "query"         Full-text search (all KBs)
mald search                 Interactive TUI search
mald edit "partial name"    Fuzzy-find and open a note
mald tasks                  Aggregate open tasks from checkboxes
mald tags                   List all tags with counts
mald review                 Weekly review: stale notes, orphans, broken links
mald import ~/ObsidianVault Import markdown from any folder
mald rename old "New Name"  Rename + update all [[backlinks]]
mald serve                  Local web server at http://127.0.0.1:3131

JSON Output (for scripts and integrations)

mald search "query" --json    # Pipe to jq, fzf, editor plugins
mald tasks --json             # Structured task data
mald tags --json              # Tag counts with note lists
mald kb list --json           # KB metadata

AI Features (optional, requires Ollama)

AI is entirely optional. MALD works fully without it — search, notes, tasks, sync all work with zero AI setup. When you're ready:

ollama pull llama3.2              # Install a model
ollama pull nomic-embed-text      # For semantic search
mald ai chat "what did I write about X?"  # Cited RAG chat
mald ai summarize note1 note2     # Summarize notes
mald ai quiz note1 --count 10     # Generate quiz questions
mald ai briefing --days 7         # Activity briefing

Every AI response includes [1], [2] citations with file paths and line numbers. Chat sessions persist across invocations.

Capture API (mobile/automation)

mald serve exposes a capture endpoint for Shortcuts, Tasker, or curl:

curl -X POST http://127.0.0.1:3131/api/capture \
  -H "Content-Type: application/json" \
  -d '{"text": "Idea from my phone", "tag": "inbox"}'

Knowledge Graph

mald links note-name       # Outgoing links
mald backlinks note-name   # Who links to this note?
mald orphans               # Notes with no incoming links
mald graph broken-links    # Dead wikilinks
mald graph view            # Mermaid diagram (paste into GitHub/Obsidian)

Sync (git-based)

mald sync init     # Initialize git in ~/.mald/
mald sync          # Commit + pull + push
mald sync log      # Version history
mald sync undo     # Revert last change

Import

mald import ~/ObsidianVault              # Preserves folder structure
mald import ~/notes --kb research        # Into specific KB
mald import ~/notes --flatten            # Flatten into root

Copies files (never moves). Imports assets from attachments/, images/, assets/ directories. Indexes everything automatically.

Architecture

~/.mald/
├── kb/           Plain markdown files (your data)
├── config/       JSON config (dot-notation access)
├── index/        HNSW vector index + SQLite FTS5
├── templates/    Note templates
├── plugins/      Custom executable plugins
├── trash/        Deleted files (recoverable)
└── logs/         Daemon logs

Configuration

mald config set editor code            # VS Code
mald config set ai.default_model llama3.2
mald config set hooks.on_save "..."    # Run on every file save
mald doctor                            # Self-diagnostics

Extended Help

mald help-topic ai         # AI setup, troubleshooting
mald help-topic search     # Search backends, date filtering
mald help-topic sync       # Git sync workflow
mald help-topic templates  # Template variables
mald help-topic daemon     # Background indexer
mald help-topic plugins    # Plugin system
mald help-topic graph      # Knowledge graph
mald help-topic tasks      # Task aggregation

License

MIT

Dependencies

~49–71MB
~1M SLoC