Show HN: HelixDB – A graph database built on object storage
Summary
HelixDB is a graph-vector database built in Rust for knowledge graphs and AI memory, offering a unified platform that supports graph, vector, KV, document, and relational data models, with tools for easy local and cloud deployment.
View Cached Full Text
Cached at: 06/10/26, 05:45 PM
HelixDB/helix-db
Source: https://github.com/HelixDB/helix-db
HelixDB: a graph-vector database for knowledge graphs and AI memory. Built from scratch in Rust.
website | docs | discord | X/twitter
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.
curl -sSL "https://install.helix-db.com" | bash
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. If a coding agent is available (Claude Code, Codex, or OpenCode), 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’d rather wire things up yourself:
- Initialize a project. This scaffolds
helix.toml, a.helix/workspace dir, and a ready-to-runexamples/request.json.
mkdir my-helix-app && cd my-helix-app
helix init
- Start a local instance. Runs a background container on port
6969and waits until it accepts queries.
helix start dev
⚠️ The default storage mode is in-memory — stopping the instance wipes its data. Use
helix start dev --diskto persist data across restarts, or--foregroundto stream logs.
- Send a query.
helix query dev --file examples/request.json
- Stop the instance when you’re done.
helix stop dev
Writing queries with the SDKs
Queries are authored with the Rust or TypeScript DSL and sent straight to a running instance as dynamic requests against POST /v1/query — no build or deploy step. Both 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 the dynamic-query wire format.
Rust
Install the crate (published as helix-db, imported as helix_db):
cargo init && cargo add helix-db tokio sonic-rs
Define your queries as #[register] functions, then run them directly through the client:
use helix_db::Client;
use helix_db::dsl::prelude::*;
#[register]
pub fn add_user(name: String) {
write_batch()
.var_as(
"user",
g().add_n("User", vec![("name", name)])
.value_map(None::<Vec<String>>),
)
.returning(["user"])
}
#[register]
pub fn get_user(name: String) {
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() {
let client = Client::new(None).unwrap(); // defaults to http://localhost:6969
// add user
let new_user = client
.query::<sonic_rs::Value>()
.dynamic(add_user("John Doe".to_string()))
.send()
.await
.unwrap();
println!("new user: {:#}", sonic_rs::to_string_pretty(&new_user).unwrap());
// get user
let user = client
.query::<sonic_rs::Value>()
.dynamic(get_user("John Doe".to_string()))
.send()
.await
.unwrap();
println!("user: {:#}", sonic_rs::to_string_pretty(&user).unwrap());
}
TypeScript
Install the package (Node.js 20+):
npm init -y && npm install @helix-db/helix-db
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/v1/query";
// add user
const newUser = await fetch(HELIX_URL, {
method: "POST",
headers: { "content-type": "application/json" },
body: addUser().toDynamicJson(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().toDynamicJson(getUserParams, { name: "John Doe" }),
}).then((r) => r.json());
console.log("user:", user);
HelixDB Cloud
HelixDB Cloud is an object-storage-backed deployment with integrated vector and full-text search, full ACID transactions, a single writer with auto-scaling reader nodes, and high availability (3+ gateways and DB nodes). Cloud clusters use a separate deploy path from local instances:
helix auth login # authenticate
helix workspace switch <workspace> # select workspace + project
helix project switch <project>
helix init cloud --cluster-id <cluster-id> # or: helix add cloud --name production --cluster-id <id>
helix sync production # pull gateway URL + auth contract into helix.toml
helix query production --file examples/request.json
Commercial Support
HelixDB Cloud
HelixDB is available as a distributed, high-availability, managed service. If you’re interested in using Helix’s managed service, go to our website to get started or contact us to talk with a founder.
Docs & Community
Just Use Helix.
Similar Articles
@techwith_ram: Your AI stack has a database problem You need a vector DB for embeddings. A graph DB for relationships. An application …
HelixDB is a new open-source database built in Rust that combines vector, graph, and other data models into a single engine, backed by Y Combinator. It aims to replace separate vector, graph, and application databases for AI stacks, offering native vector search, graph traversal, and MCP support.
Show HN: BlitzGraph – Supabase for graphs, built for LLM agents
BlitzGraph is a backend service for graph databases, designed as an AI-native alternative to Supabase tailored for LLM agents.
Show HN: Mnemo – local-first AI memory layer for any LLM (Rust, SQLite,petgraph)
Mnemo is an open-source, local-first memory layer for any LLM that extracts entities and relationships into a persistent knowledge graph using SQLite and petgraph, providing automatic context injection for enhanced conversations.
@hasantoxr: Vector databases are no longer a cloud product. They're becoming a pip install. A new open-source project called turbov…
An open-source project called turbovec has reached 10K stars on GitHub. It is a Rust-based vector index with Python bindings that uses Google Research's TurboQuant algorithm to compress embeddings to near the theoretical Shannon limit, enabling fully local RAG with 10 million documents fitting in 4 GB RAM and searching faster than FAISS.
Helix_AGI home project
A developer shares Helix-AGI, a continuously-running cognitive agent using a physics-based memory retrieval system that integrates recency, structural importance, and semantic proximity via an entropic gravity equation and Euler-Lagrange dynamics, without tuning separate weights.