New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

@farming-labs/grag

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@farming-labs/grag

TypeScript GraphRAG primitives with relational database storage.

Source
npmnpm
Version
0.1.3
Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created
Source

@farming-labs/grag

TypeScript GraphRAG primitives for apps that want graph-backed retrieval, citations, and relational storage without leaving the TypeScript ecosystem.

Install

npm install @farming-labs/grag kysely

Install the database driver you use separately:

npm install pg
npm install better-sqlite3
npm install mysql2

What You Get

  • GraphRAG artifact models for documents, chunks, entities, relationships, communities, reports, and embeddings.
  • Memory storage for tests and prototypes.
  • SQL/Kysely storage with migrations for relational databases.
  • Optional @farming-labs/orm adapter from @farming-labs/grag/orm.
  • Retrieval helpers for lexical search, graph context, local search, global search, citations, and source cards.
  • A CLI Studio for previewing and querying GraphRAG snapshots.

Quick Start

import {
  MemoryGraphRagStore,
  chunkDocuments,
  createGraphRagService,
  relationalRowsToDocuments
} from "@farming-labs/grag";

const rows = [
  { id: 1, customer: "Acme", body: "The billing export failed after migration." },
  { id: 2, customer: "Globex", body: "Password reset worked." }
];

const documents = relationalRowsToDocuments({
  tableName: "support_tickets",
  rows,
  idColumn: "id",
  titleColumn: "customer",
  textColumn: "body"
});

const graph = chunkDocuments(documents);
const store = new MemoryGraphRagStore();
await store.upsertGraph(graph);

const grag = createGraphRagService({ store });
const answer = await grag.ask("What failed after the migration?");

console.log(answer.answer);
console.log(answer.citations);

SQL Storage

import { Kysely, PostgresDialect } from "kysely";
import { Pool } from "pg";
import {
  SqlGraphRagStore,
  applyGraphRagMigrations,
  type GraphRagSqlDatabase
} from "@farming-labs/grag";

const db = new Kysely<GraphRagSqlDatabase>({
  dialect: new PostgresDialect({
    pool: new Pool({ connectionString: process.env.DATABASE_URL })
  })
});

await applyGraphRagMigrations(db, "postgres");

const store = new SqlGraphRagStore({ db });

OpenAI Helpers

import { createGraphRagService } from "@farming-labs/grag";
import { OpenAiChatModel, OpenAiEmbeddingModel } from "@farming-labs/grag/openai";

const grag = createGraphRagService({
  store,
  model: new OpenAiChatModel(),
  embeddingModel: new OpenAiEmbeddingModel()
});

const result = await grag.ask("How does retrieval work?", {
  responseStyle: "short answer with citations"
});

CLI Studio

grag studio ./snapshot.json --port 3333 --open
grag retrieve ./snapshot.json "How does graph expansion help retrieval?"
grag repo . --ask "What does this repository do?" --snapshot repo.snapshot.json

Docs

  • Getting started
  • Retrieval SDK
  • Storage configuration
  • Service integration
  • Architecture

Development

pnpm install
pnpm --filter @farming-labs/grag check
pnpm --filter @farming-labs/grag test
pnpm --filter @farming-labs/grag build

From the monorepo root, pnpm build compiles the package, CLI Studio assets, and docs app.

Keywords

graphrag

FAQs

Package last updated on 03 Jun 2026

Related posts