# Qmd

> Search the Canvas Notebook workspace with qmd. Use when the user asks to find files, search workspace content, or locate related notes/documents. Default to mode=search (BM25), use vsearch (vector) only as fallback, avoid query (hybrid) by default as it is expensive. Triggers: find files, search workspace, locate notes, Finde, suche, workspace search, content search, qmd.

- Skill: `canvascoding/qmd` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add canvascoding/qmd`
- Raw SKILL.md: https://api.skillmd.com/api/skills/canvascoding/qmd/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: canvascoding (https://skillmd.com/u/canvascoding)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/canvascoding/qmd

---


# Workspace Search (qmd)

Local workspace search for Canvas Notebook. Searches direct text files via `workspace-text` and derived document text such as DOCX extracts via `workspace-derived`.

## When to Use

Use this skill when the user requests:
- "Search my notes"
- "Find related documents"
- "Search my workspace"
- "Search for ... in my workspace"
- "Where is ..."
- "Finde ..."

## Default Behavior

- Use the PI tool contract: `qmd({ query, mode, limit, collection })`
- Prefer `mode=search` (BM25) - fast and safe as the default
- Use `mode=vsearch` only if keyword search fails and semantic similarity is needed
- Avoid `mode=query` unless it was explicitly enabled for this runtime or the user explicitly asks for the expensive path

## Parameters

- **query** (required): Search query
- **mode**: Search mode (search, vsearch, query). Default: search
- **collection**: Collection to search. Default: workspace-text + workspace-derived
- **limit**: Maximum number of results. Default: 10

## Search Modes

- `qmd search` (default): Fast keyword search (BM25)
- `qmd vsearch` (last resort): Semantic similarity (vector). Often slow due to local LLM before lookup.
- `qmd query` (mostly skip): Hybrid search + LLM reranking. Often slower than vsearch.

## Examples

Standard search:
`qmd({ query: "my search term", mode: "search" })`

Specific collection:
`qmd({ query: "search term", collection: "workspace-text" })`

More results:
`qmd({ query: "search term", limit: 10 })`

Semantic search (slower):
`qmd({ query: "conceptually similar content", mode: "vsearch" })`

## Requirements

- Bun >= 1.0.0 (automatically installed)
- SQLite3 (available in container)

