// the find
llm-tools/embedJs
A NodeJS RAG framework to easily work with LLMs and embeddings
embedJs is a TypeScript RAG framework for Node.js that loads documents, web pages and video transcripts, chunks and embeds them, and stores the vectors in one of several backends. It is for backend developers who want retrieval-augmented chat or search inside a Node service without a Python sidecar.
Each vector database, loader and model provider ships as its own npm package with its own changelog, so a project only pulls in the Pinecone or LanceDB code it uses. The embedded options (hnswlib, LanceDB, libsql, LMDB) let you run retrieval in-process during development, and the shared interfaces in embedjs-interfaces are the seam that makes switching to a hosted store practical. The loader list is broad for a JavaScript library, covering PDF, DOCX, Excel, CSV, XML, YouTube, sitemaps and Confluence. The repo also runs knip, per-package eslint and commitlint, which keeps a multi-package monorepo from accumulating dead exports.
The README is a short pitch, and most of the substance sits on an external Mintlify site. Its wording (an ultimate toolkit, powerful) doesn't say what it does differently from other Node RAG libraries. With this many adapters, maintenance will vary: no test directories appear in the visible part of the tree, so check test coverage and recent commits for any store you plan to depend on rather than assuming every adapter gets the same care. Each package versions separately, so upgrading means pinning and checking several packages at once.