Agent Recall
Goldentrii/AgentRecall-X
Persistent compounding memory for AI agents. An agent skill from Goldentrii/AgentRecall-X.
Search the vault using QMD semantic search. An agent skill from breferrari/obsidian-mind.
$ npx skills add breferrari/obsidian-mind --skill qmd -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install breferrari/obsidian-mind qmd --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/breferrari/obsidian-mind.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/qmd .claude/skills/qmd && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "qmd" agent skill from https://github.com/breferrari/obsidian-mind/tree/main/.claude/skills/qmd into .claude/skills/qmd/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qmd", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/breferrari/obsidian-mind/tree/main/.claude/skills/qmdType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add breferrari/obsidian-mind --skill qmd -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install breferrari/obsidian-mind qmd --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/breferrari/obsidian-mind.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/qmd .agents/skills/qmd && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "qmd" agent skill from https://github.com/breferrari/obsidian-mind/tree/main/.claude/skills/qmd into .agents/skills/qmd/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qmd", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add breferrari/obsidian-mind --skill qmd -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install breferrari/obsidian-mind qmd --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/breferrari/obsidian-mind.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/qmd .cursor/skills/qmd && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "qmd" agent skill from https://github.com/breferrari/obsidian-mind/tree/main/.claude/skills/qmd into .cursor/skills/qmd/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qmd", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/breferrari/obsidian-mind.git --path .claude/skills/qmd--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add breferrari/obsidian-mind --skill qmd -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install breferrari/obsidian-mind qmd --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/breferrari/obsidian-mind.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/qmd .gemini/skills/qmd && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "qmd" agent skill from https://github.com/breferrari/obsidian-mind/tree/main/.claude/skills/qmd into .gemini/skills/qmd/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qmd", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install breferrari/obsidian-mind qmdInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add breferrari/obsidian-mind --skill qmd -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/breferrari/obsidian-mind.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/qmd .github/skills/qmd && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "qmd" agent skill from https://github.com/breferrari/obsidian-mind/tree/main/.claude/skills/qmd into .github/skills/qmd/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qmd", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add breferrari/obsidian-mind --skill qmd -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install breferrari/obsidian-mind qmd --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/breferrari/obsidian-mind.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/qmd .opencode/skills/qmd && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "qmd" agent skill from https://github.com/breferrari/obsidian-mind/tree/main/.claude/skills/qmd into .opencode/skills/qmd/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qmd", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
qmdSearch the vault using QMD semantic search. An agent skill from breferrari/obsidian-mind.
Qmd is an agent skill from breferrari/obsidian-mind. Search the vault using QMD semantic search. Use PROACTIVELY before reading files. Preference order: (1) MCP tools — mcpqmdquery, mcpqmdget, mcpqmdmultiget, mcpqmdstatus — if they appear in your tool menu, use them first; (2) CLI qmd --index <name ... as fallback; (3) Grep/Glob only when QMD is not installed. Trigger proactively for past decisions, incidents, people, meetings, architecture, patterns, or any vault content — and after creating/editing notes to check for duplicates and related content.
Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Agent Workflows, covering MCP servers, Software architecture and Agent memory. It works with Model Context Protocol and Obsidian. The repository describes itself as: A self-organizing Obsidian vault that gives AI coding agents persistent memory. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit d02e3cc. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
nodeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Qmd loads about 1.7k tokens when it runs. Until then it costs about 132 tokens; SKILL.md has 764 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from breferrari/obsidian-mind at commit d02e3cc, republished under its MIT licence (© breferrari). 764 words, ~1,746 tokens.
.claude/skills/qmd/SKILL.md (or your agent's skills folder).Before reading vault files directly, search with QMD first. It returns relevant snippets without burning context on full file reads.
Pick the highest surface available and stop. All three read the same SQLite store (see Named Index), so they return the same results; the choice is about interface ergonomics and context cost.
mcp__qmd__query, mcp__qmd__get, mcp__qmd__multi_get, mcp__qmd__status. If these appear in your tool menu, the MCP server is live and pre-scoped to this vault. Call them directly — no --index argument needed, no shell involved, typed arguments. This is the intended path during a session.qmd --index <name> query|search|vsearch|get|multi-get. Use when the MCP server isn't registered (older vault clones, Windows install drift, disabled in .mcp.json), or for one-off shell checks outside a session. Always pass --index <name>.Never fall through surfaces without cause — if MCP is registered, calling the CLI in a Bash tool is just a slower path to the same result.
This vault uses a named QMD index so queries, updates, and context strings stay scoped to this vault — not blended with any other vault that shares the machine. Every QMD command in this document passes --index <name>.
The name resolves the same way on all three surfaces (CLI, MCP, SessionStart hook), so they always point at the same SQLite store:
qmd_index in vault-manifest.json, when set — an explicit pin.qmd_index empty so every install gets its own store without being asked a question.Pin the field if you want a name that survives renaming the vault folder, or want to keep a store you already built.
Read the resolved name before running commands rather than assuming either branch:
INDEX=$(node -e '
const ok = (s) => typeof s === "string" && /^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(s);
const m = JSON.parse(require("fs").readFileSync("vault-manifest.json", "utf8"));
if (m.qmd_index && !ok(m.qmd_index)) {
process.stderr.write("qmd_index is set to an invalid name: " + JSON.stringify(m.qmd_index) + "\n");
process.exit(1);
}
const slug = require("path").basename(process.cwd()).normalize("NFKD").toLowerCase()
.replace(/[^a-z0-9._-]+/g, "-").replace(/-{2,}/g, "-").replace(/^[^a-z0-9]+|[-._]+$/g, "");
const name = [m.qmd_index, slug, m.template].find(ok);
if (!name) { process.stderr.write("no usable qmd index name — set qmd_index in vault-manifest.json\n"); process.exit(1); }
process.stdout.write(name);
') || exit 1
qmd --index "$INDEX" query "..."The value is used as both a CLI argument and a filesystem path (~/.cache/qmd/<name>.sqlite), so an invalid pin must fail here rather than propagate — hence the explicit check instead of m.qmd_index || slug.
In-session, substitute the resolved value directly in your commands — it is stable across the vault's lifetime unless the folder is renamed.
Each operation lists the MCP call first, then the CLI equivalent. Prefer MCP when available.
mcp__qmd__query with searches=[{type:"lex", query:"..."}, {type:"vec", query:"..."}] and an intent arg. CLI: qmd --index <name> query "..." --json -n 10. Use for complex or conceptual queries.mcp__qmd__query with searches=[{type:"lex", query:"..."}]. CLI: qmd --index <name> search "..." --json -n 10. Use for exact terms, names, ticket numbers, dates.mcp__qmd__query with searches=[{type:"vec", query:"..."}]. CLI: qmd --index <name> vsearch "..." --json -n 5. Use for exploratory queries where you don't know the exact words.mcp__qmd__get with path arg. CLI: qmd --index <name> get "path/to/file.md".mcp__qmd__get with #abc123 syntax. CLI: qmd --index <name> get "#docid".mcp__qmd__multi_get with pattern arg. CLI: qmd --index <name> multi-get "org/people/*.md" --json -l 40.qmd --index <name> update — Re-index after file changes (fast, ~1-2s incremental). The SessionStart hook and the PostToolUse debounced refresh both run this automatically; manual invocation is rarely needed.qmd --index <name> embed — Regenerate vector embeddings (slower, run after bulk changes).The QMD SQLite store lives outside the repo (~/.cache/qmd/<index>.sqlite), so a fresh clone starts with no index. Run the bootstrap once:
node --experimental-strip-types .scripts/qmd-bootstrap.tsIt resolves the index name (pinned qmd_index, else the vault folder slug) and reads qmd_context from vault-manifest.json, registers the collection, attaches the vault context, walks the vault, and generates embeddings. Idempotent — safe to re-run.
Each case lists the preferred MCP call; fall back to the CLI equivalent if MCP isn't registered.
mcp__qmd__query (hybrid).mcp__qmd__query (hybrid with intent describing the decision context).mcp__qmd__query with searches=[{type:"lex", query:"<name>"}].mcp__qmd__query with searches=[{type:"vec", query:"<topic>"}] to check for existing content.mcp__qmd__query with searches=[{type:"vec", query:"<note title>"}] to find notes that should link to it.mcp__qmd__multi_get with pattern="perf/evidence/*.md".mcp__qmd__query with searches=[{type:"lex", query:"<person name> 1-1"}].Run qmd --index <name> update && qmd --index <name> embed in the shell. The SessionStart hook and the PostToolUse debounced refresh run update automatically, but embed should be run explicitly after sessions that create many notes.
© breferrari, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/qmd of breferrari/obsidian-mind.
Open the folder on GitHubat commit d02e3cc
Qmd next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Qmd this skillbreferrari/obsidian-mind | 5k | — | ~1.7k | Automated safety check: Pass | MIT | |
| Agent RecallGoldentrii/AgentRecall-X | 371 | — | ~5.2k | Automated safety check: Notes | MIT | |
| Agent Memory MCPdavila7/claude-code-templates | 32k | 7 repos | ~526 | Automated safety check: Pass | MIT | |
| Swarmvaultswarmclawai/swarmvault | 708 | — | ~6.1k | Automated safety check: Pass | MIT | |
| MemPalace Setup and OperationMemPalace/mempalace | 59k | — | ~2.2k | Automated safety check: Pass | MIT | |
| Context Mode Searchmksglu/context-mode | 26k | — | ~250 | Automated safety check: Pass | Custom licence |
Goldentrii/AgentRecall-X
Persistent compounding memory for AI agents. An agent skill from Goldentrii/AgentRecall-X.
davila7/claude-code-templates
A hybrid memory system that provides persistent, searchable knowledge management for AI agents (Architecture, Patterns, Decisions).
swarmclawai/swarmvault
Use SwarmVault when the user needs a local-first knowledge vault that writes durable markdown, graph, search, dashboard, review, chat-session, context-pack, task-ledger, static AI export, retrieval…
MemPalace/mempalace
Installs and configures MemPalace as a private local palace, a shared-brain hub or a client of an existing hub, including MCP registration and version-correct initialization.
mksglu/context-mode
Search context-mode's persistent FTS5 knowledge base for previously indexed local project content, documentation, or session memory. Trigger…
radimsem/remindb
Guides an agent writing to a remindb memory server: structured notes go in as files parsed into a node tree, single text facts go in through MemoryWrite.
breferrari/obsidian-mind
Generate Excalidraw diagrams from text content. An agent skill from breferrari/obsidian-mind.
Works with
Categories
Search the vault using QMD semantic search. An agent skill from breferrari/obsidian-mind. Qmd is an agent skill from breferrari/obsidian-mind. Search the vault using QMD semantic search.
Qmd fits situations like: proactively for past decisions; any vault content — and after creating/editing notes to check for duplicates and related content.
Run `npx skills add breferrari/obsidian-mind --skill qmd -a claude-code`. Or copy the skill folder (.claude/skills/qmd in breferrari/obsidian-mind) into .claude/skills/qmd in your project. Claude Code loads it when a task matches its description.
Run `npx skills add breferrari/obsidian-mind --skill qmd -a codex`. Or copy the skill folder (.claude/skills/qmd in breferrari/obsidian-mind) into .agents/skills/qmd in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add breferrari/obsidian-mind --skill qmd -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/qmd, .gemini/skills/qmd, .github/skills/qmd and .opencode/skills/qmd in your project.
Going by SKILL.md and its folder, Qmd needs the command-line tools its instructions call (node).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Qmd is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Qmd: Agent Recall (Goldentrii/AgentRecall-X, 371 stars), Agent Memory MCP (davila7/claude-code-templates, 32k stars), Swarmvault (swarmclawai/swarmvault, 708 stars) and MemPalace Setup and Operation (MemPalace/mempalace, 59k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
breferrari (a GitHub user) maintains it in breferrari/obsidian-mind, which has 4,974 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 6, 2026.
Source: breferrari/obsidian-mind on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.