Official agent skill

Qmd

by SAP in SAP/e-mobility-charging-stations-simulator

Search local markdown knowledge bases, notes, docs, and wikis with QMD.

OfficialMITAuto-check passedKnowledge Management

Install Qmd

skills CLI
$ npx skills add SAP/e-mobility-charging-stations-simulator --skill qmd -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install SAP/e-mobility-charging-stations-simulator qmd --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/SAP/e-mobility-charging-stations-simulator.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/qmd .claude/skills/qmd && rm -rf skills-src

Use ~/.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/

Facts

Skill name
qmd
GitHub stars
227
Used in
1 other repo
Token cost
~2.8k tokens
SKILL.md length
1,143 words
Files
2 (incl. references)
Skills in repo
5
Repo updated
First seen
Licence
MIT

At a glance

Search local markdown knowledge bases, notes, docs, and wikis with QMD.

  • Works in 3 steps: Search for candidate documents. → Retrieve the full source with qmd get or… → Answer from retrieved text, citing paths…
  • Users ask to find notes
  • SKILL.md covers How search works, Pick the right search mode, Retrieve sources and Discover what is indexed, plus 5 more sections
  • Calls npm

What it does

Qmd is an agent skill from SAP/e-mobility-charging-stations-simulator, published by the product's own GitHub organization. Search local markdown knowledge bases, notes, docs, and wikis with QMD. Use when users ask to find notes, retrieve documents, inspect a wiki, answer from indexed markdown, or set up QMD access.

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/mcp-setup.md`). Compatibility notes: Requires qmd CLI or MCP server. Install via npm install -g @tobilu/qmd.

It sits in Knowledge Management, covering Knowledge bases and Markdown. The repository describes itself as: OCPP-J charging stations simulator. The licence is MIT.

When your agent uses it

  • Users ask to find notes
  • Retrieve documents
  • Answer from indexed markdown
  • Set up QMD access

Example prompts

  • “/qmd”

Requirements

  • Node.js
  • Compatibility (from SKILL.md): Requires qmd CLI or MCP server. Install via `npm install -g @tobilu/qmd`.
  • Pre-approved tools (allowed-tools): Bash(qmd:*), mcp__qmd__*

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Search for candidate documents.
  2. Retrieve the full source with qmd get or qmd multi-get.
  3. Answer from retrieved text, citing paths or docids.

What it can do on your machine

Read from SKILL.md and the folder at commit 1968d3a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(qmd:*)
    • mcp__qmd__*

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Requires qmd CLI or MCP server. Install via `npm install -g @tobilu/qmd`.

    From compatibility in the SKILL.md frontmatter.

Context cost

Qmd loads about 2.8k tokens when it runs, and up to ~3.3k if it reads all its reference files. Until then it costs about 49 tokens; SKILL.md has 1,143 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~49
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.3k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from SAP/e-mobility-charging-stations-simulator at commit 1968d3a, republished under its MIT licence (© SAP). 1,143 words, ~2,791 tokens.

Download SKILL.mdSave it as .claude/skills/qmd/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
qmd
description
Search local markdown knowledge bases, notes, docs, and wikis with QMD. Use when users ask to find notes, retrieve documents, inspect a wiki, answer from indexed markdown, or set up QMD access.
allowed-tools
Bash(qmd:*), mcp__qmd__*
compatibility
Requires qmd CLI or MCP server. Install via `npm install -g @tobilu/qmd`.
license
MIT
metadata.author
tobi
metadata.version
2.2.0

QMD - Query Markdown Documents

How search works

QMD searches local markdown collections: notes, docs, wikis, transcripts, and project knowledge bases. Use it before web search when the answer may already be in indexed local files.

The workflow is always:

  1. Search for candidate documents.
  2. Retrieve the full source with qmd get or qmd multi-get.
  3. Answer from retrieved text, citing paths or docids.

Do not answer from snippets alone when the user needs facts, decisions, quotes, or nuance. Snippets are only leads.

Typical loop:

bash
qmd search "merchant reality support interviews" -n 5
# leads: #abc123 concepts/customer-proximity.md; #def432 sources/merchant-call.md
qmd multi-get "#abc123,#def432" --format md

Default to structured qmd query with intent:, lex:, vec:, and hyde: fields that you write yourself. You are a better query expander than the built-in model: you know the user's actual goal, the domain vocabulary, and the nearby-but-wrong concepts to avoid. Do not just paste the user's words into qmd query "..." and hope the expansion model guesses right — supply the intent: and craft the lexical and semantic terms deliberately (see Pick the right search mode).

When reporting what you retrieved, a compact note is enough; do not paste whole files unless needed:

text
Retrieved:
- #abc123 concepts/customer-proximity.md
- #def432 sources/merchant-call.md

Pick the right search mode

Use BM25 lexical search when you know exact words, titles, names, code symbols, or rare phrases:

bash
qmd search "cockpit OKR Goodhart" -n 10
qmd search '"AI Before Headcount"' -c concepts -n 5

Use qmd query with structured fields when the user describes an idea indirectly, uses different wording than the source, or needs conceptual recall. This is the default mode — write the fields yourself rather than leaning on query expansion. Combine exact anchors with semantic recall:

bash
qmd query $'intent: Find the concept note about metrics as instruments without letting OKRs replace judgment.\nlex: cockpit instruments OKR Goodhart metrics judgment\nvec: data informed not metric driven product judgment\nhyde: A concept note says metrics are useful like cockpit instruments, but leaders should remain data-informed rather than metric-driven because OKRs and dashboards can Goodhart product judgment.'

Structured query fields (you author each one — do not delegate this to the expansion model):

  • intent: states what you are trying to find and what to avoid. Always supply this. It steers ranking away from nearby-but-wrong concepts.
  • lex: exact terms, aliases, titles, code symbols, and rare words you expect in the source. This is your own keyword expansion.
  • vec: paraphrases the idea in natural language, in source-like wording.
  • hyde: describes the document or answer that would satisfy the request.

You do not need all four every time, but you should almost always write at least intent: plus one of lex:/vec:. A bare qmd query "the user's sentence" throws away the context only you have and relies on the built-in expander to reconstruct it — prefer the structured form.

If you genuinely have nothing to expand (a single rare token, a verbatim phrase), that is a job for qmd search, not bare qmd query:

bash
qmd query --format json --explain $'intent: ...\nlex: ...\nvec: ...'  # inspect ranking

If qmd query is slow or model/GPU setup fails, fall back to qmd search with better lexical terms.

Retrieve sources

Search results include docids like #abc123 and qmd://... paths. Fetch them:

bash
qmd get "#abc123"
qmd get qmd://concepts/ai-before-headcount.md
qmd multi-get "#abc123,#def432" --format md
qmd multi-get 'concepts/{ai-before-headcount.md,data-informed-not-metric-driven.md}' --format md
qmd multi-get 'sources/podcast-2025-*.md' -l 80

Use multi-get when comparing several hits or gathering context across pages.

Output is line-numbered and carries the docid — cite both

get and multi-get are line-numbered by default and always print the document's #docid and qmd:// path. So get output looks like:

text
qmd://concepts/note.md  #abc123
---

1: # Metrics as instruments
2:
3: Treat dashboards like cockpit instruments...

Cite the docid and exact line numbers in your answer, and use the numbers to ask for the next slice. Pass --no-line-numbers only when you need raw content to copy verbatim (e.g. reproducing a code block).

When you need to open or edit the underlying file (e.g. hand a path to Read, Edit, or an editor), add --full-path. It replaces the qmd:// URL + docid header with the document's on-disk path, falling back to the canonical header if the file no longer exists on disk:

text
$ qmd get "#abc123" --full-path
/Users/you/notes/concepts/note.md
---

1: # Metrics as instruments

--full-path works the same way on qmd search and qmd query: result paths become the file's on-disk path — ./-prefixed relative path when the file is inside $PWD, absolute realpath otherwise — and the per-result #docid is dropped because the path is the identifier. The leading ./ is intentional so the output is unambiguously a filesystem path and cannot be mistaken for a bare collection-relative string. Default search/query output still uses qmd:// URIs; only opt into --full-path when you specifically need a path you can hand to a non-QMD tool.

Show full SKILL.md (506 more words)Show less
Read line ranges with the :from:count suffix — never pipe through sed/head/tail

qmd get slices files itself. Use the suffix or flags; do not shell out to sed -n, head, tail, or awk to pull a line range. Piping defeats docid resolution, virtual-path lookups, line numbering, and the header, and it is slower and more error-prone.

The most compact form is a :from:count suffix right on the path or docid — prefer it:

bash
qmd get "#abc123:120:40"                  # 40 lines starting at line 120
qmd get qmd://concepts/note.md:200:60     # lines 200–259
qmd get "#abc123:120"                      # from line 120 to end of file
qmd get "#abc123" --from 120 -l 40         # equivalent, using flags

Suffix and flags:

  • <path>:<from>:<count> — start at line <from>, read <count> lines. Best for reading around a search hit.
  • <path>:<from> — start at <from>, read to end of file.
  • --from <line> / -l <lines> — flag equivalents. Explicit flags override the suffix, so ... :5:2 -l 1 reads 1 line.
  • --no-line-numbers — drop the N: prefixes (line numbers are on by default).

Wrong: qmd get "#abc123" | sed -n '120,160p' Right: qmd get "#abc123:120:40"

Search results include a :line anchor on each hit — feed it straight into qmd get path:line:<n> to read a window around the match (line numbers in the output will start at line).

Discover what is indexed

bash
qmd collection list
qmd ls
qmd status

Add collection filters when broad searches drift into the wrong corpus:

bash
qmd search "headcount autonomous agents" -c concepts -n 10
qmd query "merchant support product reality" -c concepts -c sources -n 10

Omit -c to search everything.

MCP Tool: query

When using the MCP server, prefer structured searches:

json
{
  "searches": [
    { "type": "lex", "query": "cockpit OKR Goodhart" },
    { "type": "vec", "query": "data informed not metric driven product judgment" },
    {
      "type": "hyde",
      "query": "A concept note explains that metrics are useful as instruments, but leaders should not let OKRs or dashboards replace judgment."
    }
  ],
  "intent": "Find the concept note about using metrics as instruments without becoming metric-driven.",
  "collections": ["concepts"],
  "limit": 10
}

Query types:

  • lex — BM25 keyword search. Best for exact terms, names, titles, and code.
  • vec — vector semantic search. Best for natural-language concepts.
  • hyde — vector search using a hypothetical answer/document passage.

Query craft

Good QMD searches mix three things:

  1. Title/alias anchors: exact page titles, named entities, phrases.
  2. Semantic paraphrase: how a human would describe the idea.
  3. Negative space: enough intent to avoid nearby-but-wrong concepts.

Examples:

bash
# Exact-ish title lookup
qmd search '"arm the rebels" merchants tools big companies' -c concepts

# Semantic concept lookup
qmd query $'intent: Find the customer proximity concept, not generic customer delight.\nlex: support pseudonymous merchant customer interviews\nvec: founder stays close to merchant reality through support and product use'

# Source lookup
qmd search "six-week cadence WhatsApp merchant relationships Shawn Ryan" -c sources -n 10

Setup and maintenance

Only mutate indexes when the user asked for setup or maintenance. Searching and retrieving are safe; collection/index mutation is not a casual first step.

bash
npm install -g @tobilu/qmd
qmd collection add ~/notes --name notes
qmd update
qmd embed

Health and diagnostics:

bash
qmd doctor
qmd status
qmd pull

qmd doctor checks config, model cache, device/GPU setup, vector fingerprints, and common environment overrides. If a model-backed command fails, run it before changing configuration.

MCP setup

See references/mcp-setup.md for Claude Code, Claude Desktop, OpenClaw, and HTTP server configuration.

Pitfalls

  • Do not stop at snippets. Fetch documents before making claims.
  • Do not slice files with sed/head/tail. Use the path:from:count suffix (e.g. qmd get "#abc123:120:40") or --from/-l. Output is already line-numbered; piping breaks docid resolution, the header, and virtual paths.
  • Do not lean on query expansion. Write intent:/lex:/vec:/hyde: yourself. A bare qmd query "user sentence" discards the context only you have. You expand the query; the model just ranks.
  • Do not overuse semantic search. If you know exact titles or terms, BM25 is faster and often better.
  • Do not mutate indexes casually. qmd collection add, qmd update, and qmd embed change local state and can be expensive.
  • Model-backed commands can be environment-sensitive. If qmd query, qmd vsearch, or reranking fails because local models/GPU are unavailable, use qmd search and stronger lexical/structured terms.
  • Ambiguous user wording needs intent. Add intent: rather than hoping query expansion guesses the right domain.
  • Collection names matter. Search concepts for synthesized wiki pages, sources for transcripts/raw source pages, and docs collections for code or project documentation.

© SAP, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (references) in .agents/skills/qmd of SAP/e-mobility-charging-stations-simulator.

  • SKILL.md
  • references/mcp-setup.md

Open the folder on GitHubat commit 1968d3a

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in SAP/e-mobility-charging-stations-simulator, which our catalogue first saw on October 7, 2026.

Compare with similar skills

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.

Qmd compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Qmd this skillSAP/e-mobility-charging-stations-simulator2271 repos~2.8kAutomated safety check: PassMIT
Wiki Viewerrohitg00/pro-workflow2.9k—~1.1kAutomated safety check: PassNone
Okf Open Knowledge Formatfabricioctelles/skills106—~5.7kAutomated safety check: PassApache-2.0
Qmdcompozy/compozy2.8k—~1kAutomated safety check: PassMIT
Kb SetupBlackBeltTechnology/pi-agent-dashboard315—~776Automated safety check: PassMIT
Ingest SourceAbilityai/cornelius109—~4.3kAutomated safety check: NotesMIT

Similar skills

  • Wiki Viewer

    rohitg00/pro-workflow

    Render a self-contained HTML viewer for a pro-workflow wiki.

    2.9k GitHub stars~1.1k tokensUpdated 8 days ago
    Knowledge ManagementAuto-check passed
  • Okf Open Knowledge Format

    fabricioctelles/skills

    Create, validate, and enrich Open Knowledge Format (OKF) bundles — the open spec for representing organizational knowledge as markdown files with YAML frontmatter.

    106 GitHub stars~5.7k tokensUpdated 3 days ago
    Knowledge ManagementAuto-check passed
  • Qmd

    compozy/compozy

    Search markdown knowledge bases, notes, and documentation using QMD.

    2.8k GitHub stars~1k tokensUpdated today
    Knowledge ManagementAuto-check passed
  • Kb Setup

    BlackBeltTechnology/pi-agent-dashboard

    Set up, initialize, or configure the local markdown knowledge base for a project.

    315 GitHub stars~776 tokensUpdated today
    Knowledge ManagementAuto-check passed
  • Ingest Source

    Abilityai/cornelius

    Fully autonomous end-to-end ingestion of a SINGLE source (book, paper, article, transcript) into the knowledge base - prepare to markdown, extract insights against the live index, refresh the index…

    109 GitHub stars~4.3k tokensUpdated 15 days ago
    Knowledge ManagementAuto-check: notes
  • Outline

    Vortiago/mcp-outline

    Conventions and efficient workflows for Outline knowledge bases via mcp-outline tools.

    156 GitHub stars~818 tokensUpdated 2 mo ago
    Knowledge ManagementAuto-check passed

More from SAP/e-mobility-charging-stations-simulator

  • Openspec Ff Change

    SAP/e-mobility-charging-stations-simulator

    Official

    Fast-forward through OpenSpec artifact creation. An agent skill from SAP/e-mobility-charging-stations-simulator.

    227 GitHub starsUsed in 27 repos~1.1k tokens
    Auto-check passed
  • Openspec Bulk Archive Change

    SAP/e-mobility-charging-stations-simulator

    Official

    Archive multiple completed changes at once. An agent skill from SAP/e-mobility-charging-stations-simulator.

    227 GitHub starsUsed in 25 repos~1.9k tokens
    Auto-check passed
  • Openspec Onboard

    SAP/e-mobility-charging-stations-simulator

    Official

    Guided onboarding for OpenSpec - walk through a complete workflow cycle with narration and real codebase work.

    227 GitHub starsUsed in 25 repos~3.5k tokens
    Auto-check passed
  • Evse Simulator

    SAP/e-mobility-charging-stations-simulator

    Official

    Control and monitor an OCPP charging station simulator via CLI.

    227 GitHub stars~2k tokensUpdated today
    Auto-check passed

Questions about Qmd

What does Qmd do?

Search local markdown knowledge bases, notes, docs, and wikis with QMD. Qmd is an agent skill from SAP/e-mobility-charging-stations-simulator, published by the product's own GitHub organization. Search local markdown knowledge bases, notes, docs, and wikis with QMD.

When should I use Qmd?

Qmd fits situations like: users ask to find notes; retrieve documents; answer from indexed markdown; set up QMD access.

How do I install Qmd in Claude Code?

Run `npx skills add SAP/e-mobility-charging-stations-simulator --skill qmd -a claude-code`. Or copy the skill folder (.agents/skills/qmd in SAP/e-mobility-charging-stations-simulator) into .claude/skills/qmd in your project. Claude Code loads it when a task matches its description.

How do I install Qmd in Codex?

Run `npx skills add SAP/e-mobility-charging-stations-simulator --skill qmd -a codex`. Or copy the skill folder (.agents/skills/qmd in SAP/e-mobility-charging-stations-simulator) into .agents/skills/qmd in your project. Codex loads it when a task matches its description.

Can I use Qmd in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add SAP/e-mobility-charging-stations-simulator --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.

What does Qmd need to run?

Going by SKILL.md and its folder, Qmd needs the command-line tools its instructions call (npm). Our summary lists: Node.js. Its frontmatter pre-approves these tools: Bash(qmd:*), mcp__qmd__*. Compatibility (from SKILL.md): Requires qmd CLI or MCP server. Install via `npm install -g @tobilu/qmd`..

Does Qmd access the network?

SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Qmd safe to install?

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.

What licence does Qmd use?

Qmd is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Qmd use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 552 tokens, read only when the agent opens those files.

What are the alternatives to Qmd?

Skills that share tags, products or a category with Qmd: Wiki Viewer (rohitg00/pro-workflow, 2.9k stars), Okf Open Knowledge Format (fabricioctelles/skills, 106 stars), Qmd (compozy/compozy, 2.8k stars) and Kb Setup (BlackBeltTechnology/pi-agent-dashboard, 315 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Qmd?

SAP (a GitHub organization, an official publisher) maintains it in SAP/e-mobility-charging-stations-simulator, which has 227 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 7, 2026.

Source: SAP/e-mobility-charging-stations-simulator on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.