v0.1.0-alpha.0Preview

Local Semantic Search.
Zero API keys. 100% Private.

Enable context-aware search results powered by local embeddings in the browser. Zero network dependencies, zero costs, instant client-side retrieval.

Get Started
Local Models 100% Private Vector Embeddings Zero Cost
docmd-search sandbox
User Authentication & Sessions
/getting-started/security
98% match
Configure how your application handles user login, secure cookies, token generation, and stateless session verification.
Configuring Custom Secure Routes
/configuration/routing
89% match
Define private directories and redirect configurations for unauthenticated guest sessions trying to access signin paths.

Private Semantic Search

Bring modern vector search directly to your static docs without third-party services.

Local Vector Models

Uses lightweight ONNX models executing directly on the client side. No data ever leaves the user's browser.

Semantic Intent

Understands queries conceptually. Searching 'authentication' yields results for 'sign-in' and 'login' automatically.

Hybrid Re-ranking

Combines fast BM25 keyword matching with vector similarity for the absolute best search relevance and speed.

Supported Embedding Models

Select the perfect embedding model tailored for your documentation size and languages.

Model Dimensions Size Languages Best For
MiniLM L6 v2 ★ 384 ~23 MB English only Fast, general English docs
Multilingual MiniLM L12 384 ~118 MB 50+ languages i18n documentation
Multilingual E5 Small 384 ~118 MB 100+ languages Wide language coverage
Multilingual MPNet Base 768 ~270 MB 50+ languages Best multilingual quality

💡 Multilingual documentation: If your documentation website contains multiple languages (such as English, Chinese, German, Spanish, etc.), select a multilingual model using docmd-search --settings. The default model is English-only and will produce poor search relevance for other languages.

Pure-Client API: Build Custom UIs

An ultra-lightweight client runtime (<5KB minified) that executes entirely in the browser using hybrid BM25 and vector cosine similarity scoring.

import * as Search from 'docmd-search/client';
// 1. Initialise and load index folder.
// Batch 0 is loaded instantly for sub-millisecond search startup,
// while remaining chunk batches load progressively in background.
await Search.load('/.docmd-search', (loaded, total) => {
  console.log(`Loaded batch ${loaded}/${total}`);
});
// 2. Query search using hybrid vector + keyword matching.
const results = Search.search('authentication secure routes', 10);
results.forEach(({ score, chunk }) => {
  console.log(`[${(score * 100).toFixed(0)}%] ${chunk.file}#${chunk.heading || ''}`);
  console.log(chunk.text);
});

Build Index in One Command

Run the indexing engine to generate static search chunks for your site.

Terminal
$ npx docmd-search --build
 Loaded local vector model
 Generated static index: .docmd-search/index.json

Search Frequently Asked Questions

Everything you need to know about docmd offline semantic search.

Does docmd search run entirely client-side?
Yes. The search runtime performs all vector similarity calculations and keyword indexing directly in the user's browser. It requires zero cloud infrastructure or search APIs.

Read docmd-search documentation →
Are ONNX model weights downloaded on every visit?
No. Model weights are only loaded during compilation/build time using Node.js to generate static search vector indices. The client-side runtime only downloads the pre-built indices, which are compressed JSON chunks.

Learn how offline search works →
Can I use the search plugin with multiple languages?
Yes. If your documentation is multilingual, you should choose a multilingual embedding model like paraphrase-multilingual-MiniLM-L12-v2 which supports over 50 languages.

Learn about multi-language search models →
What is showConfidence and how does it work?
The showConfidence flag, when enabled, displays the exact similarity matching percentage badge next to each semantic result, helping users visually understand search relevance.

Read about browser-client settings →

Ready to write better docs?

Join the developers building fast, beautiful documentation with docmd.