Built-in Providers
Lucerna ships several embedding and reranking providers. You can select them with CLI flags (no config file needed) or instantiate them in lucerna.config.ts.
Embedders
Section titled “Embedders”Pass --embedder <name> to any command, or use new ProviderClass() in your config file:
| Name | Class | Notes |
|---|---|---|
cloudflare | CloudflareEmbeddings | Requires CLOUDFLARE_ACCOUNT_ID + CLOUDFLARE_API_TOKEN |
local / hf | HFEmbeddings | Local ONNX via @huggingface/transformers, no API key |
bge-small | BGESmallEmbeddings | Local BGE-small model |
nomic | NomicCodeEmbeddings | Local Nomic code model (default when no env vars set) |
Via CLI flag
Section titled “Via CLI flag”lucerna mcp-server /path/to/project --embedder cloudflarelucerna index /path/to/project --embedder localVia config file
Section titled “Via config file”import { CloudflareEmbeddings } from '@upstart.gg/lucerna';
export default { embeddingFunction: new CloudflareEmbeddings(),};Disable semantic search
Section titled “Disable semantic search”lucerna mcp-server /path/to/project --no-semantic # BM25 onlyRerankers
Section titled “Rerankers”Pass --reranker <name> or use new RerankerClass() in your config:
| Name | Class | Notes |
|---|---|---|
cloudflare | CloudflareReranker | Requires CLOUDFLARE_ACCOUNT_ID + CLOUDFLARE_API_TOKEN |
jina | JinaReranker | Requires JINA_API_KEY |
voyage | VoyageReranker | Requires VOYAGE_API_KEY |
Via CLI flag
Section titled “Via CLI flag”lucerna mcp-server /path/to/project --reranker voyagelucerna search /path/to/project "auth middleware" --reranker jinaVia config file
Section titled “Via config file”import { VoyageReranker } from '@upstart.gg/lucerna';
export default { rerankingFunction: new VoyageReranker(),};Combining embedder + reranker
Section titled “Combining embedder + reranker”lucerna mcp-server /path/to/project \ --embedder cloudflare \ --reranker voyageOr in lucerna.config.ts:
import { CloudflareEmbeddings, VoyageReranker } from '@upstart.gg/lucerna';
export default { embeddingFunction: new CloudflareEmbeddings(), rerankingFunction: new VoyageReranker(),};