LocalMode
Core

Overview

Zero-dependency core package with all LocalMode functionality.

@localmode/core

The core package contains all functions, interfaces, types, and utilities for building local-first AI applications. It has zero external dependencies — everything is implemented using native browser APIs.

Zero Dependencies

@localmode/core has no dependencies in its package.json. All functionality uses native Web APIs: IndexedDB, Web Crypto, Web Workers, BroadcastChannel, and more.

Installation

bash pnpm install @localmode/core
bash npm install @localmode/core
bash yarn add @localmode/core
bash bun add @localmode/core

Quick Start

Install Dependencies

pnpm install @localmode/core @localmode/transformers

Create an Embedding Model

import { transformers } from '@localmode/transformers';

const model = transformers.embedding('Xenova/bge-small-en-v1.5');

Generate Embeddings

import { embed } from '@localmode/core';

const { embedding, usage } = await embed({
  model,
  value: 'Hello, world!',
});
import { createVectorDB } from '@localmode/core';

const db = await createVectorDB({ name: 'docs', dimensions: 384 });

await db.add({ id: 'doc-1', vector: embedding, metadata: { text: 'Hello' } });

const results = await db.search(queryVector, { k: 5 });

Features

✅ Production Ready

These features are stable and ready for production use:

FeatureDescription
Vector DatabaseHNSW index for fast approximate nearest neighbor search
Embeddingsembed(), embedMany(), semanticSearch() functions
Rerankingrerank() for improved RAG accuracy
RAG UtilitiesText chunking (recursive, markdown, code-aware)
Text GenerationstreamText() with async iteration
Classificationclassify(), classifyZeroShot(), extractEntities()
Audiotranscribe(), synthesizeSpeech()
VisioncaptionImage(), detectObjects(), segmentImage(), image classification
Translationtranslate() with multi-language support
Summarizationsummarize() with configurable length
OCRextractText() from images
Document QAaskDocument() for document image Q&A
Fill-MaskfillMask() for masked token prediction
Q&AanswerQuestion() for extractive question answering
Image FeaturesextractImageFeatures(), classifyImageZeroShot(), imageToImage()
StorageIndexedDB persistence with memory fallback
CapabilitiesWebGPU, IndexedDB, Workers detection
SecurityEncryption, PII redaction
MiddlewareCaching, logging, retry, validation

Architecture

LocalMode follows a function-first API design:

// ✅ Top-level functions (correct)
const { embedding } = await embed({ model, value: 'Hello' });

// ❌ Class methods (wrong)
const embedder = new Embedder(model);
await embedder.embed('Hello');

All functions accept a single options object and return structured results:

interface EmbedResult {
  embedding: Float32Array;
  usage: { tokens: number };
  response: { modelId: string; timestamp: Date };
}

Quick Reference

Core Exports

Embeddings

import {
  embed,
  embedMany,
  streamEmbedMany,
  semanticSearch,
  wrapEmbeddingModel,
} from '@localmode/core';

Vector Database

import {
  createVectorDB,
  createVectorDBWithWorker,
  HNSWIndex,
  cosineSimilarity,
  euclideanDistance,
  dotProduct,
} from '@localmode/core';

RAG Utilities

import {
  chunk,
  recursiveChunk,
  markdownChunk,
  codeChunk,
  ingest,
  createBM25,
  hybridFuse,
  reciprocalRankFusion,
} from '@localmode/core';

Text Generation

import { streamText, generateText } from '@localmode/core';

Classification & NER

import {
  classify,
  classifyMany,
  classifyZeroShot,
  extractEntities,
  extractEntitiesMany,
  rerank,
} from '@localmode/core';

Vision

import {
  captionImage,
  classifyImage,
  classifyImageZeroShot,
  detectObjects,
  segmentImage,
  extractImageFeatures,
  imageToImage,
} from '@localmode/core';

Audio

import { transcribe, synthesizeSpeech } from '@localmode/core';

Translation

import { translate } from '@localmode/core';

Summarization

import { summarize } from '@localmode/core';

Fill-Mask

import { fillMask } from '@localmode/core';

Question Answering

import { answerQuestion } from '@localmode/core';

OCR

import { extractText } from '@localmode/core';

Document QA

import { askDocument, askTable } from '@localmode/core';

Storage

import {
  IndexedDBStorage,
  MemoryStorage,
  createStorage,
  getStorageQuota,
  requestPersistence,
  cleanup,
} from '@localmode/core';

Capabilities

import {
  detectCapabilities,
  isWebGPUSupported,
  isIndexedDBSupported,
  checkModelSupport,
  getRecommendedFallbacks,
} from '@localmode/core';

Middleware

import {
  wrapEmbeddingModel,
  wrapVectorDB,
  cachingMiddleware,
  loggingMiddleware,
  retryMiddleware,
  rateLimitMiddleware,
  validationMiddleware,
  piiRedactionMiddleware,
  encryptionMiddleware,
} from '@localmode/core';

Security

import {
  encrypt,
  decrypt,
  decryptString,
  deriveEncryptionKey, // primary — deriveKey is also available as an alias
  encryptVector,
  decryptVector,
  encryptJSON,
  decryptJSON,
  isCryptoSupported,
  redactPII,
} from '@localmode/core';

Cross-Tab Sync

import { createBroadcaster, createLockManager, isWebLocksSupported } from '@localmode/core';

Network

import {
  getNetworkStatus,
  onNetworkChange,
  isOnline,
  isOffline,
  waitForOnline,
} from '@localmode/core';

Events

import { createEventEmitter, globalEventBus } from '@localmode/core';

Errors

import {
  LocalModeError,
  EmbeddingError,
  ModelNotFoundError,
  StorageError,
  QuotaExceededError,
  ValidationError,
  formatErrorForUser,
} from '@localmode/core';

Testing Utilities

import {
  createMockEmbeddingModel,
  createMockStorage,
  createMockVectorDB,
  createTestVector,
  createSeededRandom,
} from '@localmode/core';

Type Definitions

All interfaces are exported for implementing custom providers:

import type {
  // Models
  EmbeddingModel,
  ClassificationModel,
  ZeroShotClassificationModel,
  NERModel,
  RerankerModel,
  LanguageModel,
  SpeechToTextModel,
  TextToSpeechModel,
  ImageClassificationModel,
  ZeroShotImageClassificationModel,
  ImageCaptionModel,
  SegmentationModel,
  ObjectDetectionModel,
  ImageFeatureModel,
  ImageToImageModel,
  TranslationModel,
  SummarizationModel,
  FillMaskModel,
  QuestionAnsweringModel,
  OCRModel,
  DocumentQAModel,

  // Storage
  StorageAdapter,
  StoredDocument,
  StoredVector,
  Collection,

  // Vector DB
  VectorDB,
  VectorDBConfig,
  SearchResult,

  // Middleware
  EmbeddingModelMiddleware,
  VectorDBMiddleware,
} from '@localmode/core';

Next Steps

On this page