Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add davekilleen/Dex --skill enable-semantic-searchgit clone --depth 1 https://github.com/davekilleen/DexWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/davekilleen/dex/enable-semantic-search)<a href="https://agentmods.dev/skills/davekilleen/dex/enable-semantic-search"><img src="https://agentmods.dev/badge/skills/davekilleen/dex/enable-semantic-search/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/davekilleen/dex/enable-semantic-search"><img src="https://agentmods.dev/badge/skills/davekilleen/dex/enable-semantic-search.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00064 | $0.04265 |
| Opus 5.5 | $0.00026 | $0.01706 |
| Sonnet 5.5 | $0.00013 | $0.00853 |
| Haiku 4.5 | $0.00006 | $0.00426 |
Grade C, and why
enable-semantic-search scanned grade C with 3 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Downloads and executes remote codehighSupply chain
curl | sh runs whatever the server returns today, which is not necessarily what it returned when this was reviewed.
curl -fsSL https://bun.sh/install | bash Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
curl -fsSL https://bun.sh/install | bash Runs shell commandslowCapability
Expected in a hook, worth knowing in a rule or an instructions file.
const { execSync } = require('child_process'); How it starts
The opening of the file, as written. The whole thing — 560 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Enable Semantic Search
Set up local AI-powered semantic search for your vault. This is a concierge experience — it analyzes your vault, discovers what collections make sense, and creates a tailored search setup.
What You're Enabling
Semantic search finds content by meaning, not just keywords:
- Search "product-led growth" → finds notes saying "PLG", "self-serve motion", "freemium adoption"
- Search "customer churn" → finds notes about "retention problems", "users leaving", "cancellation patterns"
Your skills (/daily-plan, /meeting-prep, /triage, etc.) automatically use semantic search when available, finding more relevant context than keyword matching alone.
Pre-Flight Checks
Run these checks before proceeding:
# Check if qmd is already installed
which qmd
# Check if Bun is available (required)
which bun
# macOS only: Check SQLite via Homebrew
brew list sqlite 2>/dev/null && echo "SQLite OK" || echo "Need: brew install sqlite"
# Check available disk space (need ~2.5GB)
df -h ~ | tail -1
If qmd is already installed, run qmd status to check existing setup. If collections already exist, skip to the Collection Health Check section at the bottom.
Step 1: Explain What We're Installing
Present this to the user:
═══════════════════════════════════════════════════════════════════════
SEMANTIC SEARCH FOR YOUR VAULT
═══════════════════════════════════════════════════════════════════════
What is this?
─────────────
Right now, finding notes requires knowing the exact words used.
Search "product-led growth" — won't find notes saying "PLG" or
"self-serve motion".
Semantic search understands meaning, not just keywords. It finds
conceptually related content even when terminology differs.
How does it work?
─────────────────
Your notes get converted to "embeddings" — mathematical
representations of meaning. When you search, your query becomes
an embedding too. The system finds notes whose meaning is close
to your query's meaning.
Think of it like: instead of matching letters, we're matching ideas.
What gets installed?
────────────────────
Three small AI models run locally on your machine:
MODEL PURPOSE SIZE
─────────────────────────────────────────────────────────────
EmbeddingGemma-300M Converts text to meaning ~300MB
vectors. The core
"understanding" model.
Qwen3-Reranker-0.6b Re-orders results by ~640MB
true relevance. Improves
result quality.
QMD-Query-Expansion-1.7B Expands your search to ~1.1GB
include related terms.
"PLG" → also searches
"product-led", "freemium"
Total: ~2GB one-time download
Privacy & Security
──────────────────
- Everything runs locally — your notes never leave your machine
- No API keys required
- No cloud services
- Models downloaded from HuggingFace (open source)
- Index stored in ~/.cache/qmd/ (not in your vault)
What changes in your workflow?
──────────────────────────────
Enabling semantic search silently upgrades these skills:
/daily-plan — Enriches meeting prep with thematically
related past discussions
/meeting-prep — Discovers past discussions related by
meaning, not just name matching
/triage — Matches inbox items to goals by meaning,
catches semantic duplicates
Person Lookup — Finds "the VP of Sales mentioned..." even
without a name
Search & Recall — All vault searches use hybrid retrieval
(BM25 + vectors + LLM reranking)
System Requirements
───────────────────
~2.5GB disk space (for models + index)
macOS: Homebrew SQLite required (brew install sqlite)
Bun runtime (will install if missing)
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 6d ago Changed · +1 lines 02e3fb78f51e
- 1mo ago First seen · 559 lines · 64 tokens per session scan C b594123f14fb
enable-semantic-search is a skill published in the GitHub repository davekilleen/Dex (508 stars, last pushed 2d ago), licensed MIT. It adds 64 tokens to every session and 4,265 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it C with 3 findings (downloads and executes remote code, makes network calls, runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
ha-data-stores
Map of Hope Agent's local data stores and safe read-only query workflow. Use when the user asks where Hope Agent stores data, wants to inspect sessions/messages/memory/logs/background jobs/knowledge indexes/settings, asks the model to query local app data, or debugging requires checking persisted state. Trigger…
vellum-memory-v3-migration
One-time migration of an existing memory-v2 concept corpus into the memory-v3 section-grain "wiki" — topical articles with a stand-alone lead and queryable sections — with loss-proof staging, assistant-reviewed authoring, and a retrieval-eval gate before cutover.
vellum-memory-v2-migration
Perform a one-time migration from memory v1, to memory v2, which was introduced in 0.8.0.
daily-briefing
Proactive daily briefing that fires on a recurring schedule, pulls recent memory and workspace context, composes a structured summary (action items, progress, radar, next steps), and delivers it to all active channels. Enable with a time like "set up my daily briefing at 9am". Disable, reschedule, or check status at…
ha-knowledge
Working method for the Hope Agent knowledge space — how to capture, organize, link, retrieve, and maintain Markdown notes well with the note tools. Load whenever you are reading or writing notes in an attached knowledge base. Trigger on: user asks to take / save / organize / restructure notes, build or grow a…
catchup
Restore context after /clear by summarizing recent work and project state.