HelixDB is a free, open source databases project written in Rust and released under Apache-2.0. It has 5,915 GitHub stars, 350 forks and 26 open issues, and was last pushed 7 hours ago. On this registry it ranks #56 of 81 tracked projects in Databases, with 5 head-to-head comparisons available. It gained 15 stars over the last 6 tracked days.

What is HelixDB?

HelixDB is an Apache-2.0 licensed, Rust-built OLTP graph database with native vector and full-text search that lets teams building AI applications keep knowledge graphs, agent memory and application data in a single self-hostable store rather than stitching together separate graph, vector, relational and application databases.

What it is

HelixDB is a graph-vector database aimed at knowledge graphs and AI memory, written from scratch in Rust. The project describes itself as an OLTP graph database with native vector and full-text search, built on object storage. Its primary data model is graph plus vector, but it also supports KV, documents and relational data, so a single instance can serve several shapes of workload. The topics attached to the repository — graph-database, vector, rag, database, rust — reflect that positioning, and the source ships as a Rust crate alongside client SDKs in other languages.

The concrete problem it solves is storage sprawl in AI stacks. A typical retrieval or agent application ends up running an application database, a relational database, a vector database and a graph database, then writing application layers to move data between those separate storage locations and keep them consistent. HelixDB collapses those roles into one platform, and gives agents federated access to company data for memory, company brains and applications. It therefore replaces the assembled multi-store backend that a RAG or knowledge-graph pipeline would otherwise have to maintain, rather than replacing any one individual store.

Key capabilities

  • Graph and vector data model as the primary interface, with KV, documents and relational data also supported in the same instance.
  • Native vector search and full-text search built in, rather than bolted on through a separate service.
  • Query authoring through Rust, TypeScript, Go and Python DSLs, all of which produce the same JSON AST.
  • Queries are sent straight to a running instance over POST /v2/query, with no build or deploy step in between.
  • A helix CLI that runs and manages local instances and talks to Helix Cloud; helix update upgrades an existing install.
  • helix chef, an interactive one-shot bootstrapper that installs the HelixDB query skills and docs MCP, scaffolds a project, starts a local instance, seeds example data and writes a HELIX_CHEF_PROMPT.md.
  • Published packages across four ecosystems: the helix-db crate at 3.0.0, @helix-db/helix-db at 3.0.4 on npm, helix-db at 0.3.4 on PyPI, and the Go module at v0.3.1.

Who uses it and how

  • AI and RAG teams that need agent memory, company brains and federated access to company data from one store, which is the use case the README leads with.
  • Rust developers who define queries as #[query] functions, add dependencies with cargo add [email protected] tokio sonic-rs, and run them through the bundled Client.
  • Teams that want to remove an application database, relational database, vector database and graph database plus the application layers that synchronise them.
  • Local development workflows pointed at a dev instance on http://localhost:6969, the default port for helix start dev.
  • Developers using agentic coding tools, since helix chef detects supported agents in the order Claude Code, OpenAI Codex, OpenCode, then Cursor Agent, and can hand off to build a working application from a one-line description.

Getting started

Install the CLI on macOS or Linux with curl -sSL "https://install.helix-db.com" | bash, or on Windows PowerShell with irm https://raw.githubusercontent.com/HelixDB/helix-db/main/crates/cli/install.ps1 | iex, then run helix chef for the interactive bootstrapper or follow the canonical local quickstart for manual setup. Helix Cloud is available as a hosted option reachable through the same CLI.

How it compares

No list of paid products that HelixDB replaces is provided in the facts, and no comparable tools are named there either. On the evidence available it stands alone in this registry, so any comparison with other graph or vector databases would have to be made from first-hand evaluation rather than from the project's own material. What can be stated is that it is Apache-2.0 licensed and self-hostable, with Helix Cloud offered alongside rather than instead of local operation.

When to use it — and when not to

A self-hoster takes on operating a database instance plus the object storage backend the GitHub description names as its foundation, and should budget for that before adopting it. Teams that need uniform SDK maturity across languages should be cautious, because the release versions are uneven — Rust at 3.0.0 while the Python and Go SDKs sit at 0.3.4 and v0.3.1 — and the repository carries 26 open issues. It is also a poor fit for anyone who wants a fully managed service only, since the documented workflows assume a locally run instance.

project readme (upstream, from github) — read inline

HelixDB: a graph-vector database for knowledge graphs and AI memory. Built from scratch in Rust.

Launch YC: HelixDB - The Database for Intelligence

website | docs | discord | X/twitter

Docs Change Log GitHub Repo stars Discord LOC


HelixDB is a database that makes it easy to build all the components needed for AI applications in a single platform.

You don't need a separate application DB, relational DB, vector DB, graph DB, or application layers to manage the multiple storage locations. HelixDB gives your agents federated access to company data, for memory, company brains, and applications.

Helix primarily operates with a graph + vector data model, but it also supports KV, documents, and relational data.

Getting Started

1. Install the CLI

The Helix CLI runs and manages local instances and talks to Helix Cloud.

macOS and Linux:

curl -sSL "https://install.helix-db.com" | bash

Windows PowerShell:

irm https://raw.githubusercontent.com/HelixDB/helix-db/main/crates/cli/install.ps1 | iex

Already installed? Update to the latest version with helix update.

2. The quickest path — helix chef

helix chef is an interactive, one-shot bootstrapper. It installs the HelixDB query skills and docs MCP, scaffolds a project, starts a local instance, seeds some example data, and writes a HELIX_CHEF_PROMPT.md. It detects supported agents in this order: Claude Code → OpenAI Codex → OpenCode → Cursor Agent. When one is available, it can hand off and build a working app — frontend and all — from a one-line description of what you want.

helix chef

That's it — no flags. Answer "what do you want to build?" and follow the prompts.

3. Manual local setup

If you would rather wire things up yourself, follow the canonical local quickstart. It uses the exact files and dev instance generated by the current CLI.

Writing queries with the SDKs

Queries are authored with the Rust, TypeScript, Go, or Python DSL and sent straight to a running instance through POST /v2/query — no build or deploy step. The SDKs produce the same JSON AST. The examples below talk to a local instance on http://localhost:6969 (the default helix start dev port). See the Querying Guide for the full builder catalog and query wire format.

SDK Package Current release Setup guide
Rust helix-db 3.0.0 Rust setup
TypeScript @helix-db/helix-db 3.0.4 TypeScript setup
Python helix-db 0.3.4 Python setup
Go github.com/helixdb/helix-db/sdks/go v0.3.1 Go setup

Rust

Install the crate (published as helix-db, imported as helix_db):

cargo init && cargo add [email protected] tokio sonic-rs

Define queries as #[query] functions, then run them directly through the client:

use helix_db::Client;
use helix_db::dsl::prelude::*;

#[query]
pub fn add_user(name: String) -> WriteBatch {
    write_batch()
        .var_as(
            "user",
            g().add_n("User", vec![("name", name)])
                .value_map(None::<Vec<String>>),
        )
        .returning(["user"])
}

#[query]
pub fn get_user(name: String) -> ReadBatch {
    read_batch()
        .var_as(
            "user",
            g().n_with_label("User")
                .where_(Predicate::eq("name", name))
                .value_map(None::<Vec<String>>),
        )
        .returning(["user"])
}

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = Client::new(None)?; // defaults to http://localhost:6969

    // add user — #[query] helpers return Result<QueryRequest, QueryError>
    let new_user: sonic_rs::Value = client
        .query(add_user("John Doe".to_string())?)
        .send()
        .await?;
    println!("new user: {:#}", sonic_rs::to_string_pretty(&new_user)?);

    // get user
    let user: sonic_rs::Value = client
        .query(get_user("John Doe".to_string())?)
        .send()
        .await?;
    println!("user: {:#}", sonic_rs::to_string_pretty(&user)?);
    Ok(())
}

TypeScript

Install the package (Node.js 20+):

npm init -y && npm install @helix-db/[email protected]

Define your queries as functions, then POST them to the running instance:

import {
  Predicate, PropertyInput, PropertyProjection,
  defineParams, g, param, readBatch, writeBatch,
} from "@helix-db/helix-db";

const addUserParams = defineParams({ name: param.string() });
function addUser(p = addUserParams) {
  return writeBatch()
    .varAs("user",
      g().addN("User", { name: PropertyInput.param("name") })
        .project([PropertyProjection.new("name")]),
    )
    .returning(["user"]);
}

const getUserParams = defineParams({ name: param.string() });
function getUser(p = getUserParams) {
  return readBatch()
    .varAs("user",
      g().nWithLabel("User")
        .where(Predicate.eqParam("name", "name"))
        .project([PropertyProjection.new("name")]),
    )
    .returning(["user"]);
}

const HELIX_URL = "http://localhost:6969/v2/query";

// add user
const newUser = await fetch(HELIX_URL, {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: addUser().toQueryJson(addUserParams, { name: "John Doe" }),
}).then((r) => r.json());
console.log("new user:", newUser);

// get user
const user = await fetch(HELIX_URL, {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: getUser().toQueryJson(getUserParams, { name: "John Doe" }),
}).then((r) => r.json());
console.log("user:", user);

Python

Install the published PyPI package:

python -m pip install helix-db==0.3.4

Build requests with snake_case builders, then send them with the client:

from helixdb import Client, Predicate, g, param, define_params, read_batch, write_batch

add_user_params = define_params({"name": param.string()})
add_user = (
    write_batch()
    .var_as("user", g().add_n("User", {"name": add_user_params.name}))
    .returning(["user"])
)

get_user_params = define_params({"name": param.string()})
get_user = (
    read_batch()
    .var_as(
        "user",
        g()
        .n_with_label("User")
        .where(Predicate.eq("name", get_user_params.name))
        .value_map(["name"]),
    )
    .returning(["user"])
)

client = Client("http://localhost:6969")

new_user = client.query(
    add_user.to_query_request(add_user_params, {"name": "John Doe"})
)
print("new user:", new_user)

user = client.query(
    get_user.to_query_request(get_user_params, {"name": "John Doe"})
)
print("user:", user)

Go

Install the released Go module:

go mod init example.com/my-helix-app
go get github.com/helixdb/helix-db/sdks/[email protected]

Build a request with ordinary Go functions, then execute it with the client:

package main

import (
    "context"
    "fmt"
    "log"

    helix "github.com/helixdb/helix-db/sdks/go"
)

func getUsers() helix.Request {
    return helix.ReadQuery("get_users").
        VarAs("users", helix.G().NWithLabel("User").ValueMap("$id", "name")).

readme truncated — read the full docs on github

Frequently asked questions

Is HelixDB free to use?

HelixDB is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does HelixDB do?

Unify vector search and graph traversals in one database

What is HelixDB written in?

HelixDB is primarily written in Rust. Its source is publicly available at https://github.com/helixdb/helix-db, and it has 5,915 GitHub stars.