Skip to main content
The Moss JavaScript SDK (@moss-dev/moss) brings semantic search to Node.js. It wraps a high-performance Rust core and exposes an async, Promise-based API. Documents are embedded and queried locally, with optional cloud sync.

Requirements

  • Node.js 20 or higher

Install

Get your projectId and projectKey from the Moss portal.
  • MossClient - the entry point. Manage cloud indexes, load one into memory, and query it.
  • SessionIndex - a local, in-process index for real-time indexing during a live interaction; push to the cloud when done.

Quick start

Indexes

Create, inspect, and delete cloud indexes. Mutations run as async jobs and return a MutationResult with a jobId and docCount.

Documents

Add, update, fetch, and remove documents on an existing index.

Load and query

Load an index into memory, then query it in-process. Call loadIndex before querying.
Blend semantic and keyword scoring with alpha (1.0 = semantic, 0.0 = keyword; default 0.8).
See Hybrid search.

Metadata filtering

Narrow results by document metadata on a loaded index.
Operators: $eq, $ne, $gt, $gte, $lt, $lte, $in, $nin, $near, composed with $and / $or. See Metadata filtering.

Custom embeddings

Supply your own vectors with modelId: 'custom' (each document carries embedding, and queries pass embedding).
See Custom embeddings.

Sessions

Index and query locally in real time with a SessionIndex, then push to the cloud. session() resumes an existing cloud index by name, or starts empty.
See Sessions.

Keeping indexes fresh

Auto-refresh a loaded index (poll the cloud and hot-swap newer versions in automatically), and track async jobs.

Authentication

Construct the client with a projectKey for server-side use, or use a custom authenticator to mint short-lived tokens for untrusted clients (getAuthToken()).
See Custom Authenticator.

Models

  • moss-minilm (default) - fast, lightweight
  • moss-mediumlm - higher accuracy
  • custom - supply your own embedding vectors via DocumentInfo.embedding

Guides

Reference

MossClient and SessionIndex, plus all interfaces and types, are in the Reference section of the sidebar.