Skip to main content
This isn’t a workaround. Memvid was built from the ground up to work without embeddings. Vectors are an optional add-on, not a requirement.

Memvid’s Core Innovation

Traditional RAG systems require embeddings before you can search anything. Memvid takes a fundamentally different approach: With Memvid:
  • No embedding API calls
  • No vector computation
  • No waiting before first search
  • Works offline, always

How It Works

Every .mv2 file contains multiple search indices that work without vectors:
IndexWhat It DoesAPI Required
BM25 LexicalFull-text keyword searchNo
SimHashNear-duplicate detectionNo
Logic MeshEntity-relationship queriesNo
Time IndexTemporal queriesNo
VectorSemantic similarityOptional
The first four indices are built locally, instantly, with zero external dependencies.

Why This Matters

10x Faster Ingestion

No embedding computation means instant indexing:
ContentWith EmbeddingsMemvid Default
1,000 docs5-10 minutes30 seconds
10,000 docs1-2 hours5 minutes
First searchAfter embedding doneInstant

60% Smaller Files

No vector storage means dramatically smaller memory files:
ConfigurationSize
Full (vectors + lexical)230 MB
Memvid default (no vectors)95 MB

Zero Cost

No embedding API calls means:
  • No OpenAI bills
  • No rate limits
  • No API keys required
  • Works offline forever

Privacy by Default

Your data never leaves your machine:
  • No external API calls
  • No telemetry on content
  • Air-gapped environments supported

Search Quality

BM25 lexical search is excellent for most use cases:
Query TypeLexical (BM25)Needs Vectors?
Exact termsExcellentNo
Code/function namesExcellentNo
Error messagesExcellentNo
Technical termsExcellentNo
Log analysisExcellentNo
Conceptual (“similar to X”)ModerateSometimes
Natural language questionsGoodSometimes

When Lexical Wins

# Finding exact code
memvid find code.mv2 --query "handleAuthentication"

# Finding error codes
memvid find logs.mv2 --query "ERROR_404_NOT_FOUND"

# Finding specific terms
memvid find docs.mv2 --query "API rate limit"
BM25 finds these perfectly - often better than semantic search.

Getting Started

Memvid works without embeddings by default:
# Install
npm install -g memvid-cli

# Create memory (no embeddings by default)
memvid create my-memory.mv2

# Add documents
memvid put my-memory.mv2 --input ./documents/

# Search immediately
memvid find my-memory.mv2 --query "your search"

# Ask questions (uses local TinyLlama)
memvid ask my-memory.mv2 --question "What is this about?"
No API keys. No embedding wait. Just works.

Adding Embeddings Later

If you need semantic search for conceptual queries, add embeddings:
# Add vector index to existing memory
memvid doctor my-memory.mv2 --rebuild-vec-index

# Now semantic search works too
memvid find my-memory.mv2 --query "concepts related to authentication" --mode sem
Your existing indices still work. Embeddings are additive.

SDK Usage

Python

from memvid_sdk import create

# Create memory (no embeddings by default)
mem = create('memory.mv2')

# Enable lexical search
mem.enable_lex()

# Add content - indexed instantly
mem.put(
    title='My Document',
    label='note',
    metadata={},
    text='Your document content...'
)

# Search works immediately
results = mem.find('search query', k=5)

# Seal when done
mem.seal()

Node.js

import { create } from '@memvid/sdk';

// Create memory (no embeddings by default)
const mem = await create('memory.mv2');

// Add content - indexed instantly
await mem.put({
  title: 'My Document',
  label: 'note',
  text: 'Your document content...'
});

// Search works immediately
const results = await mem.find('search query', { k: 5 });

// Seal when done
await mem.seal();

Hybrid Approach

For large collections, embed only what needs semantic search:
# Main content - lexical is enough
memvid put memory.mv2 --input ./code/
memvid put memory.mv2 --input ./logs/

# Documentation - add semantic search
memvid put memory.mv2 --input ./docs/ --enable-vec
Or skip embeddings for bulk data:
# Bulk import without embeddings
memvid put memory.mv2 --input ./large-archive/ --embedding-skip

Comparing Configurations

FeatureNo VectorsWith Vectors
Ingestion speed10-100x fasterSlower
File size60% smallerLarger
API costs$0$$
OfflineYesDepends
Exact searchExcellentExcellent
Conceptual searchModerateExcellent
Setup complexityZeroAPI keys needed

When to Add Vectors

Consider adding embeddings when:
  • You need “find similar” functionality
  • Users ask natural language questions
  • Cross-language search is required
  • You want typo tolerance
But try lexical first - you might not need vectors at all.

Next Steps