Skip to main content
Open Source · MIT

RAG and semantic search,
self-hosted in minutes

Add semantic search and RAG to your existing app in minutes. Self-hosted on your own infra — bring your own AI with Ollama or OpenAI.

$ npx ragpack init && npx ragpack start
✔ API on :9000 · Admin UI on :3000

# Drop into any existing app
import { RagPack } from "ragpack-js";

const client = new RagPack({
  baseUrl: "http://localhost:9000",
});

const col = client.collection("my-docs");

await col.ingest({
  uri: "https://your-docs-site.com/guide",
});

const { answer } = await col.rag({
  query: "how does auth work?",
});
Low footprint

Lightweight by design

The Go backend idles at ~20MB RAM. A single static binary with no runtime dependencies means you can run a full RAG pipeline on the smallest machine your cloud provider offers — not a dedicated $200/mo AI instance.

Bring your own AI

You choose the model

Ollama for fully local embeddings, OpenAI, or HuggingFace TEI. Switch providers by changing one env var — no code changes, no re-ingestion. Keep costs down with a local model or scale up when you need it.

No lock-in

Your data, your infra

Everything runs in Docker. Vectors and metadata live on your own disk. No usage-based billing, no rate limits imposed by a third party, no vendor to negotiate with as you scale.

What's included

REST API

Collections, ingest, query, and document management — all via a clean REST API.

📦

JS / TS SDK

Typed client for Node and the browser. Drop RAG into your app in a few lines.

🖥️

Admin UI

Built-in Next.js interface to manage collections, monitor jobs, and run queries.

🔌

Multiple embedding providers

Ollama, OpenAI, and HuggingFace TEI supported out of the box.

📄

Supported formats

Markdown, HTML, PDF, and plain text — via URL, S3, or file upload.

✂️

Chunking strategies

Format-aware chunking out of the box. Configurable chunk size and overlap.

What can you build?

Docs chatbot

Let users ask questions about your documentation and get answers grounded in your content.

"How do I reset my password?"

Knowledge base search

Make internal wikis, SOPs, and runbooks searchable with natural language — not just keywords.

"What's our refund policy for enterprise customers?"

AI customer support

Ground your support chatbot in your own product docs so it only answers from what you've written.

"Why is my invoice showing the wrong amount?"

Code search

Ingest your codebase and let developers find relevant files, functions, or patterns semantically.

"Where do we handle Stripe webhook retries?"

Ready to ship your RAG pipeline?

One command. No cloud account. No token limits.

Read the docs →