{
  "schemaVersion": "1.0",
  "item": {
    "slug": "qmd-markdown-search",
    "name": "QMD - Quick Markdown Search",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/emcmillan80/qmd-markdown-search",
    "canonicalUrl": "https://clawhub.ai/emcmillan80/qmd-markdown-search",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/qmd-markdown-search",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=qmd-markdown-search",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/qmd-markdown-search"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/qmd-markdown-search",
    "agentPageUrl": "https://openagent3.xyz/skills/qmd-markdown-search/agent",
    "manifestUrl": "https://openagent3.xyz/skills/qmd-markdown-search/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/qmd-markdown-search/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "qmd - Quick Markdown Search",
        "body": "Local search engine for Markdown notes, docs, and knowledge bases. Index once, search fast."
      },
      {
        "title": "When to use (trigger phrases)",
        "body": "\"search my notes / docs / knowledge base\"\n\"find related notes\"\n\"retrieve a markdown document from my collection\"\n\"search local markdown files\""
      },
      {
        "title": "Default behavior (important)",
        "body": "Prefer qmd search (BM25). It's typically instant and should be the default.\nUse qmd vsearch only when keyword search fails and you need semantic similarity (can be very slow on a cold start).\nAvoid qmd query unless the user explicitly wants the highest quality hybrid results and can tolerate long runtimes/timeouts."
      },
      {
        "title": "Prerequisites",
        "body": "Bun >= 1.0.0\nmacOS: brew install sqlite (SQLite extensions)\nEnsure PATH includes: $HOME/.bun/bin\n\nInstall Bun (macOS): brew install oven-sh/bun/bun"
      },
      {
        "title": "Install",
        "body": "bun install -g https://github.com/tobi/qmd"
      },
      {
        "title": "Setup",
        "body": "qmd collection add /path/to/notes --name notes --mask \"**/*.md\"\nqmd context add qmd://notes \"Description of this collection\"  # optional\nqmd embed  # one-time to enable vector + hybrid search"
      },
      {
        "title": "What it indexes",
        "body": "Intended for Markdown collections (commonly **/*.md).\nIn our testing, \"messy\" Markdown is fine: chunking is content-based (roughly a few hundred tokens per chunk), not strict heading/structure based.\nNot a replacement for code search; use code search tools for repositories/source trees."
      },
      {
        "title": "Search modes",
        "body": "qmd search (default): fast keyword match (BM25)\nqmd vsearch (last resort): semantic similarity (vector). Often slow due to local LLM work before the vector lookup.\nqmd query (generally skip): hybrid search + LLM reranking. Often slower than vsearch and may timeout."
      },
      {
        "title": "Performance notes",
        "body": "qmd search is typically instant.\nqmd vsearch can be ~1 minute on some machines because query expansion may load a local model (e.g., Qwen3-1.7B) into memory per run; the vector lookup itself is usually fast.\nqmd query adds LLM reranking on top of vsearch, so it can be even slower and less reliable for interactive use.\nIf you need repeated semantic searches, consider keeping the process/model warm (e.g., a long-lived qmd/MCP server mode if available in your setup) rather than invoking a cold-start LLM each time."
      },
      {
        "title": "Common commands",
        "body": "qmd search \"query\"             # default\nqmd vsearch \"query\"\nqmd query \"query\"\nqmd search \"query\" -c notes     # Search specific collection\nqmd search \"query\" -n 10        # More results\nqmd search \"query\" --json       # JSON output\nqmd search \"query\" --all --files --min-score 0.3"
      },
      {
        "title": "Useful options",
        "body": "-n <num>: number of results\n-c, --collection <name>: restrict to a collection\n--all --min-score <num>: return all matches above a threshold\n--json / --files: agent-friendly output formats\n--full: return full document content"
      },
      {
        "title": "Retrieve",
        "body": "qmd get \"path/to/file.md\"       # Full document\nqmd get \"#docid\"                # By ID from search results\nqmd multi-get \"journals/2025-05*.md\"\nqmd multi-get \"doc1.md, doc2.md, #abc123\" --json"
      },
      {
        "title": "Maintenance",
        "body": "qmd status                      # Index health\nqmd update                      # Re-index changed files\nqmd embed                       # Update embeddings"
      },
      {
        "title": "Keeping the index fresh",
        "body": "Automate indexing so results stay current as you add/edit notes.\n\nFor keyword search (qmd search), qmd update is usually enough (fast).\nIf you rely on semantic/hybrid search (vsearch/query), you may also want qmd embed, but it can be slow.\n\nExample schedules (cron):\n\n# Hourly incremental updates (keeps BM25 fresh):\n0 * * * * export PATH=\"$HOME/.bun/bin:$PATH\" && qmd update\n\n# Optional: nightly embedding refresh (can be slow):\n0 5 * * * export PATH=\"$HOME/.bun/bin:$PATH\" && qmd embed\n\nIf your Clawdbot/agent environment supports a built-in scheduler, you can run the same commands there instead of system cron."
      },
      {
        "title": "Models and cache",
        "body": "Uses local GGUF models; first run auto-downloads them.\nDefault cache: ~/.cache/qmd/models/ (override with XDG_CACHE_HOME)."
      },
      {
        "title": "Relationship to Clawdbot memory search",
        "body": "qmd searches your local files (notes/docs) that you explicitly index into collections.\nClawdbot's memory_search searches agent memory (saved facts/context from prior interactions).\nUse both: memory_search for \"what did we decide/learn before?\", qmd for \"what's in my notes/docs on disk?\"."
      }
    ],
    "body": "qmd - Quick Markdown Search\n\nLocal search engine for Markdown notes, docs, and knowledge bases. Index once, search fast.\n\nWhen to use (trigger phrases)\n\"search my notes / docs / knowledge base\"\n\"find related notes\"\n\"retrieve a markdown document from my collection\"\n\"search local markdown files\"\nDefault behavior (important)\nPrefer qmd search (BM25). It's typically instant and should be the default.\nUse qmd vsearch only when keyword search fails and you need semantic similarity (can be very slow on a cold start).\nAvoid qmd query unless the user explicitly wants the highest quality hybrid results and can tolerate long runtimes/timeouts.\nPrerequisites\nBun >= 1.0.0\nmacOS: brew install sqlite (SQLite extensions)\nEnsure PATH includes: $HOME/.bun/bin\n\nInstall Bun (macOS): brew install oven-sh/bun/bun\n\nInstall\n\nbun install -g https://github.com/tobi/qmd\n\nSetup\nqmd collection add /path/to/notes --name notes --mask \"**/*.md\"\nqmd context add qmd://notes \"Description of this collection\"  # optional\nqmd embed  # one-time to enable vector + hybrid search\n\nWhat it indexes\nIntended for Markdown collections (commonly **/*.md).\nIn our testing, \"messy\" Markdown is fine: chunking is content-based (roughly a few hundred tokens per chunk), not strict heading/structure based.\nNot a replacement for code search; use code search tools for repositories/source trees.\nSearch modes\nqmd search (default): fast keyword match (BM25)\nqmd vsearch (last resort): semantic similarity (vector). Often slow due to local LLM work before the vector lookup.\nqmd query (generally skip): hybrid search + LLM reranking. Often slower than vsearch and may timeout.\nPerformance notes\nqmd search is typically instant.\nqmd vsearch can be ~1 minute on some machines because query expansion may load a local model (e.g., Qwen3-1.7B) into memory per run; the vector lookup itself is usually fast.\nqmd query adds LLM reranking on top of vsearch, so it can be even slower and less reliable for interactive use.\nIf you need repeated semantic searches, consider keeping the process/model warm (e.g., a long-lived qmd/MCP server mode if available in your setup) rather than invoking a cold-start LLM each time.\nCommon commands\nqmd search \"query\"             # default\nqmd vsearch \"query\"\nqmd query \"query\"\nqmd search \"query\" -c notes     # Search specific collection\nqmd search \"query\" -n 10        # More results\nqmd search \"query\" --json       # JSON output\nqmd search \"query\" --all --files --min-score 0.3\n\nUseful options\n-n <num>: number of results\n-c, --collection <name>: restrict to a collection\n--all --min-score <num>: return all matches above a threshold\n--json / --files: agent-friendly output formats\n--full: return full document content\nRetrieve\nqmd get \"path/to/file.md\"       # Full document\nqmd get \"#docid\"                # By ID from search results\nqmd multi-get \"journals/2025-05*.md\"\nqmd multi-get \"doc1.md, doc2.md, #abc123\" --json\n\nMaintenance\nqmd status                      # Index health\nqmd update                      # Re-index changed files\nqmd embed                       # Update embeddings\n\nKeeping the index fresh\n\nAutomate indexing so results stay current as you add/edit notes.\n\nFor keyword search (qmd search), qmd update is usually enough (fast).\nIf you rely on semantic/hybrid search (vsearch/query), you may also want qmd embed, but it can be slow.\n\nExample schedules (cron):\n\n# Hourly incremental updates (keeps BM25 fresh):\n0 * * * * export PATH=\"$HOME/.bun/bin:$PATH\" && qmd update\n\n# Optional: nightly embedding refresh (can be slow):\n0 5 * * * export PATH=\"$HOME/.bun/bin:$PATH\" && qmd embed\n\n\nIf your Clawdbot/agent environment supports a built-in scheduler, you can run the same commands there instead of system cron.\n\nModels and cache\nUses local GGUF models; first run auto-downloads them.\nDefault cache: ~/.cache/qmd/models/ (override with XDG_CACHE_HOME).\nRelationship to Clawdbot memory search\nqmd searches your local files (notes/docs) that you explicitly index into collections.\nClawdbot's memory_search searches agent memory (saved facts/context from prior interactions).\nUse both: memory_search for \"what did we decide/learn before?\", qmd for \"what's in my notes/docs on disk?\"."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/emcmillan80/qmd-markdown-search",
    "publisherUrl": "https://clawhub.ai/emcmillan80/qmd-markdown-search",
    "owner": "emcmillan80",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/qmd-markdown-search",
    "downloadUrl": "https://openagent3.xyz/downloads/qmd-markdown-search",
    "agentUrl": "https://openagent3.xyz/skills/qmd-markdown-search/agent",
    "manifestUrl": "https://openagent3.xyz/skills/qmd-markdown-search/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/qmd-markdown-search/agent.md"
  }
}