A system of record that can prove its history, a private AI that runs on your hardware, and an API gateway with a tamper-evident audit — one zero-dependency binary. $0, forever, under The PostgreSQL License.
Centauri gives an organization a record it can prove, an AI it can trust with sensitive data, and an API layer it can audit — at a software cost of zero. The executive case, with the proof one click away:
When a regulator or auditor asks “what did you know, and when?”, the answer is a query, not a six-week forensics project. Every record is sealed into a tamper-evident hash chain, and bi-temporal time travel reconstructs any past moment exactly as it was believed then.
AI answers are computed on your hardware, from your documents. Nothing is uploaded, nothing phones home. Cloud models exist as an option — per-provider keys, off by default, clearly labeled when data would leave the machine.
The software is $0, forever. It runs on a laptop or a $5–20/month VM — where comparable API platforms bill per gateway service, per million calls, and per environment. No per-seat, per-request, or control-plane fees.
The PostgreSQL License — use it for anything, commercially, free, no copyleft. Zero third-party dependencies, and your data lives in plain files your own engineers can read. Leaving Centauri costs one file copy.
One binary. Run the installer or one curl | sh; centauri desktop detects your hardware and sets up the local AI models automatically. Prefer cloud? One-click Render blueprint with HTTPS and a generated token.
| Centauri | Kong Konnect | Google Apigee | AWS API Gateway | |
|---|---|---|---|---|
| Software / platform, per year | $0 | ≈$1,260+/yr per gateway service (Plus)Enterprise ≈$30k–50k+/yr entry | ≈$4,380+/yr per environment/region | $0 base fee |
| Per-request fees | none | 1M req/mo included, ≈$200 per extra 1M | ≈$20 per 1M calls | ≈$1.00/M (HTTP) · ≈$3.50/M (REST) |
| Infrastructure | a laptop or ≈$5–20/mo VM | your data-plane hosts + SaaS control plane | managed (Google Cloud) | managed (AWS only) |
Indicative public list pricing, mid-2026 — verify with each vendor; enterprise contracts vary. AWS is the cheapest per call at scale, but AWS-locked, and audit/analytics are separate services you assemble. Details: Pricing & Licensing · gateway comparison →
Centauri is open source under The PostgreSQL License — an OSI-approved permissive license that lets you use, copy, modify, and distribute the software for any purpose, including commercial, free of charge and with no copyleft obligations. Copyright JacobLabs LLC and contributors. There is no paid edition: the binary you download is everything.
$0. No per-request fees, no per-seat fees, no per-service fees, no separate control-plane bill, no paid tiers, no telemetry. The enterprise features — SSO, HA, sharding, the gateway, the Console — are in the same free binary.
The machine it runs on — hardware you likely already have: a laptop, a ~$5–20/month VM at any host, or the one-click Render blueprint. RAM sized to your live working set is the main knob.
The optional cloud AI boost — GLM-5.2 (z.ai), OpenAI GPT-5.5, or Anthropic Claude — is pay-per-use to that provider, with your own key. It is off by default; the local models are free and stay on your machine.
| Centauri | Kong Konnect Plus | Kong Konnect Enterprise | Google Apigee (PAYG) | AWS API Gateway | |
|---|---|---|---|---|---|
| Software / license | $0 — The PostgreSQL License | subscription | custom contract | pay-as-you-go | pay-per-use |
| Entry price | $0 | ≈$105/mo per gateway serviceincl. 1M requests/mo | ≈$30k–$50k+/yr entrynegotiated | environment fees from ≈$365/mo per region | no base fee |
| Per-call | none | ≈+$200 per additional 1M requests | contracted | ≈$20 per 1M calls | ≈$1.00/M HTTP APIs · ≈$3.50/M REST APIs |
| Typical extras | optional cloud-LLM usage, billed by the model provider, off by default | higher tiers for advanced plugins | support org, SLAs, multi-DC | security/analytics add-ons extra | audit/analytics assembled from separate AWS services |
| What you host | one binary — laptop / small VM / Render | your data planes; control plane is SaaS | managed | managed, AWS-locked | |
Sources: Kong Konnect, Google Cloud Apigee, and AWS API Gateway public pricing pages — indicative list prices as of mid-2026. Enterprise contracts vary widely; verify with the vendors before budgeting.
Centauri is the flight recorder beside your operational stores, not a Postgres replacement. The unvarnished picture, ✗ and all. Coming from Oracle? There is a concept-by-concept teardown — redo/undo, SCN, flashback, RAC, Data Guard mapped to Centauri's internals: Centauri internals vs Oracle →
| Centauri | PostgreSQL | Datomic | EventStoreDB | SQLite | |
|---|---|---|---|---|---|
| Bi-temporal (valid + transaction time) | ✓ | ✗ | ~ | ✗ | ✗ |
| Nothing ever erased | ✓ | ✗ | ✓ | ✓ | ✗ |
| Causal links as data | ✓ | ✗ | ✗ | ✗ | ✗ |
| Tamper-evident hash chain | ✓ | ✗ | ✗ | ✗ | ✗ |
| Topology / TDA operators | ✓ | ✗ | ✗ | ✗ | ✗ |
| Native BM25 + hybrid search | ✓ | ~ | ✗ | ✗ | ~ |
| Built-in MCP for AI agents | ✓ | ✗ | ✗ | ✗ | ✗ |
| Local vision ingest (images/PDFs) | ✓ | ✗ | ✗ | ✗ | ✗ |
| Runs a free local LLM for search & Q&A | ✓ | ✗ | ✗ | ✗ | ✗ |
| Single binary, zero deps | ✓ | ✗ | ✗ | ✗ | ✓ |
| Horizontal scale / sharding + HA failover | ✓shards + auto-failover | ~ | ✓ | ✓ | ✗ |
| Data larger than RAM | ✓lazy index | ✓ | ✓ | ✓ | ✓ |
| SQL access | ~read-only + Postgres wire | ✓ | ✗ | ✗ | ✓ |
| Enterprise SSO + row-level security | ✓OIDC/JWT, RLS, masking | ~ | ✗ | ✗ | ✗ |
serve -shards scales write throughput across subjects, serve -ha-lease adds automatic failover, and the lazy index serves data beyond RAM; there's no cost-based optimizer, and the SQL exposed over the PostgreSQL wire is read-only (writes use CeQL). The vision & local-LLM features orchestrate a model you run (free, e.g. Ollama) over HTTP — the engine bundles no model and stays zero-dependency. Full detail: how it compares →centauri gateway is an API + LLM gateway whose configuration is bi-temporal facts and whose request audit is a tamper-evident chain. The full honest matrix — including everything Kong and the clouds do better — is on the gateway comparison page. The short version:
| Centauri Gateway | Kong (OSS + Konnect) | Apigee | AWS API Gateway | |
|---|---|---|---|---|
| Config model | bi-temporal factstime-travel any past config with AS OF | declarative / DB / consoleversioning via GitOps, not the gateway | ~proxy revisions | ~console / IaC + stages |
| Tamper-evident request audit | ✓hash chain + centauri verify | ✗logs via plugins | ~managed analytics + audit logs | ~assemble CloudTrail / CloudWatch |
| LLM routing: SSE streaming · failover · per-key token metering | ✓metering as queryable facts | ✓AI-gateway plugin suite | ~emerging LLM features | ~assemble with Bedrock / Lambda |
| Plugin ecosystem & k8s ingress | ✗fixed built-in middleware; no ingress controller | ✓hundreds of plugins, Ingress Controller, mesh | ~ | ~AWS-native integrations instead |
| Price of entry indicative public pricing, mid-2026 | $0+ a small VM you run | ≈$105/mo per gateway serviceEnterprise ≈$30k–50k+/yr | ≈$365/mo/region + ≈$20/M calls | ≈$1.00–3.50 per 1M callsAWS-locked |
Modern AI stacks bolt together a document store, a vector database, a search cluster, a graph, and an audit ledger — then spend their lives keeping them in sync. Centauri is a single binary that covers all of it, because every fact is stored once with its time, cause, source, and trust. Here's how it maps to the tools you already know — and where it goes further.
Schemaless facts with nested JSON values, dot-path queries (WHERE addr.city='EU') and optional schemas — like MongoDB. Difference: every change is versioned and nothing is ever overwritten.
Built-in embeddings, cosine SIMILAR, and hybrid keyword+vector SEARCH for RAG — like pgvector / Pinecone. Difference: vectors live beside provenance and time, so you can search as of the past.
Two clocks on every fact — valid time and transaction time. Difference: ask not just what was true at a moment, but what you believed then — bi-temporal replay no time-series DB offers.
Causes are first-class edges; WHY / EFFECTS and MATCH traverse the lineage — like Neo4j. Difference: the graph is about why things happened, not just references.
A SHA-256 hash chain seals every record; centauri verify proves the history is byte-for-byte intact. Difference: blockchain-grade tamper-evidence with no blockchain, no tokens, no consensus tax.
Ranked BM25, multi-signal scoring (recency · trust · causal centrality), and full-text — like Elasticsearch. Difference: one binary, bi-temporal, and it explains why a hit ranked where it did.
The thread that ties it together: Centauri is built for AI agents — a native MCP server means an agent uses all of the above directly, with grounded, point-in-time, provenance-aware memory. One zero-dependency binary you run yourself — not five systems to license, host, and reconcile. It's the system of record beside your operational database, not a replacement for it.
Oracle makes you rent your data's home and pay per core. Centauri flips that: the engine is free, and your data lives wherever you control — never on our servers. Oracle-grade memory for what happened, when, why, and how much to trust it — without the license, and on infrastructure you own. How Centauri's internals compare to Oracle, in detail →
Your laptop, your server, a USB stick, a NAS, a synced folder (OneDrive, Google Drive, Dropbox), or your own S3-compatible bucket (AWS/MinIO/R2/B2) as a verifiable cold tier. Never a vendor's cloud.
Free and open source. No seats, no cores, no support contract — you pay only for the hardware you already own.
One open file (JSONL) you can read, move, back up, or delete; an open query language; centauri export any time. Walk away with everything.
-data at — local disk, USB, NAS, or a synced folder — with a single-writer lock (safe on shared/synced storage) and centauri merge to reconcile copies edited on two devices. --lazy keeps payloads on disk so a dataset can exceed RAM, and the disk-backed lazy index serves archives larger than memory. Cold data seals into compressed segments that push to an S3-compatible bucket (stdlib request signing, Merkle-verified on fetch) — shipped today. See how the storage engine works →Drop in an image or a PDF — an electrical drawing, a scanned form, a photo. A vision model running on your machine reads it; Centauri stores the file (content-addressed, on disk — never in the log), the model's structured description, and a vector embedding — all as facts you can query. No Firestore, no object store, no API bill, nothing leaving your computer. Centauri even installs and runs the model for you.
Upload images or PDFs (POST /v1/assets or the Studio's 📎 panel). Blobs are content-addressed on disk, PDF pages are rendered, and a vision model describes & embeds each one with ENRICH asset:* USING vision.
SEARCH 'inventory stockout' OF asset:* embeds your query and ranks by meaning blended with keyword — and it searches the AI's descriptions too. Find the right drawing without the exact words.
ASK 'what do my drawings say about the 200A panel?' retrieves the most relevant facts and a local LLM answers — with citations to the source events. Private "chat with your data."
The ✨ Copilot turns natural language into real CeQL — deterministic rules first, then the local LLM for the rest, re-parsed so a suggestion is never invalid.
centauri desktop detects your hardware, installs Ollama + a PDF renderer if missing, pulls the right model tier, registers the models, and turns on auto-embed — skipping whatever's already there. centauri desktop then starts the model with Centauri and stops it on exit.
Runs on free, open Ollama models sized to your hardware — from gemma3:4b + nomic-embed-text on a laptop to glm-4.7-flash + bge-m3 + gemma3:27b vision on a 24 GB+ GPU. The engine stays zero-dependency; the model is reached over plain HTTP. Your documents never leave the machine.
centauri desktop picks a preset for your hardware — small (~8 GB laptop: gemma3:4b + nomic-embed-text), balanced (12–16 GB GPU: qwen3:14b + bge-m3), max (24 GB+: GLM-4.7-Flash, a 30B-MoE, MIT-licensed GLM with a 200K context, + bge-m3 + gemma3:27b vision). The dashboard's AI panel shows live status dots and offers optional cloud boosts — GLM-5.2 (z.ai), OpenAI GPT-5.5, or Anthropic Claude, each with its own per-provider key — off by default and explicitly labeled, because with them your questions leave the machine. GLM-5.2 cannot run locally: its weights need 200+ GB.The loop: Upload → ENRICH → SEARCH / ASK. Your electrical drawings, contracts, and photos become searchable by what's in them — the kind of thing teams normally wire up Firestore, an object store, and a cloud vision API to do. Here it's one local binary. Setup: vision-setup.md · features: ai-features.md.
This assistant indexes the entire page — every reference entry, example, and feature — and answers with Centauri's own BM25 search. No LLM, no API key, no token cost: it runs entirely in your browser, and it's the same engine you'd self-host. Ask about the product, or pose a data question and watch it become a query.
Centauri exposes a native MCP server with 20 typed tools, so an agent calls the database directly — no string-building, no SQL injection, no glue. Here's a real interaction.
// humans write CeQL text… FACTS OF item:100001/store:4001 AS OF '2026-03-15' WHY // …agents emit the same query as a typed JSON AST — // no parsing, no injection, just a tool call: { "kind":"facts", "subject":"item:100001/store:4001", "as_of": 1742000000000000, "why": true }
// embed the user's question as an event, then blend // keyword (BM25) + vector recall in one call: SEARCH 'late markdown register' OF item:* SIMILAR TO evt:user_question ALPHA 0.5 // top hits become grounded context for the model
# Python SDK — features exactly as known then, # so the model can't peek at the future: row = db.context("item:100001/store:4001", known_at="2026-03-01") # no label leakage, no train/serve skew
centauri_ceql("PENDING pdt OLDER THAN 21 DAYS") centauri_asof({subject, at, known_at}) // decision replay centauri_trace({event, direction:"cause"}) // WHY centauri_genesis({scenario}) // build a DB
# expose ONE tool that POSTs CeQL — works with any model curl -s localhost:7771/v1/query \ -H 'Authorization: Bearer TOKEN' \ -d '{"q":"FACTS OF item:100001/store:4001 WHY"}'
# pip install google-generativeai requests import google.generativeai as genai, requests def centauri_query(ceql: str) -> str: """Run a CeQL query against Centauri and return JSON.""" return requests.post("http://localhost:7771/v1/query", headers={"Authorization": "Bearer TOKEN"}, json={"q": ceql}).text m = genai.GenerativeModel("gemini-2.0-pro", tools=[centauri_query]) chat = m.start_chat(enable_automatic_function_calling=True) print(chat.send_message( "What did item:100001/store:4001 cost on 2026-03-01?").text) # Gemini auto-calls centauri_query(ceql) and grounds its answer.
# same centauri_query() as above; register it as a tool tools=[{"type":"function","function":{ "name":"centauri_query", "parameters":{"type":"object", "properties":{"ceql":{"type":"string"}}}}}] OpenAI().chat.completions.create(model="gpt-4o", tools=tools, messages=[...]) # then dispatch the tool call to centauri_query(args["ceql"])
# Claude speaks MCP natively — just add this to the config: { "mcpServers": { "centauri": { "command": "centauri", "args": ["mcp"] } } } # Claude Desktop/Code now has all 20 Centauri tools. No code.
from openai import OpenAI client = OpenAI(api_key="XAI_KEY", base_url="https://api.x.ai/v1") # model "grok-2" # same centauri_query tool. Identical pattern works for # Mistral, Together, Groq, Fireworks, OpenRouter, DeepSeek…
from openai import OpenAI client = OpenAI(base_url="http://localhost:11434/v1", # Ollama api_key="ollama") # model "llama3.1" # same centauri_query tool — fully offline & private. # LM Studio → :1234/v1 · vLLM → :8000/v1 · llama.cpp → :8080/v1
All 20 MCP tools are documented in The CeQL Book · the JSON AST is the same shape CeQL parses to, so anything you can type, an agent can emit.
No server to configure, no schema migration to run. Download, seed sample data, and start asking questions of time, cause, and trust.
# macOS / Linux curl -fsSL https://centauridb.com/install.sh | sh centauri seed # load demo data centauri desktop # dashboard + local AI, auto-sized to your hardware # Windows: double-click run-centauri.bat — builds, opens the # dashboard, and offers (once) to set up local AI Vision # optional: let an AI read your images & PDFs, all local centauri setup vision -install
-- what is true now FACTS OF item:100001/store:4001 -- what we believed last month about last week FACTS OF item:100001/store:4001 AS OF 'last week' AS KNOWN AT '2026-03-01' -- why did it change? ranked search? the shape of it? FACTS OF item:100001/store:4001 WHY SEARCH 'late markdown' OF item:* SHAPE OF item:* ON price_cents
No extensions to install, no services to wire up — everything below ships inside a single executable with zero third-party dependencies.
Two clocks on every fact. Nothing is updated or deleted — a change is a new, superseding fact. Ask AS OF any moment, or AS KNOWN AT to replay a past decision fairly.
Causes are first-class links — WHY walks the chain. A SHA-256 chain seals every record; centauri verify proves your history is byte-for-byte intact.
Native ranked SEARCH (BM25), semantic SIMILAR over embeddings, and hybrid keyword+vector — the recall of semantics with the precision of keywords.
Persistent homology & sheaf consistency as operators: SHAPE, CONSISTENCY, CYCLES, DRIFT — clusters, loops, voids, periodicity, and drift no row store can see.
A native MCP server lets agents speak CeQL directly. Plain-English compiles to queries with no tokens. AS KNOWN AT gives leak-free training features. Genesis builds a database from a description.
A Studio IDE (object explorer, causal-graph view, edit-as-a-fact), a one-screen Console (/console) for the whole suite, a psql-style shell, EXPLAIN ANALYZE, doctor diagnostics, CDC + replication slots, the PostgreSQL wire protocol (read-only SQL for psql/BI), sharding + HA auto-failover, scoped-token security, CePL procedures, chain-verified backups, and Python / Go / JS SDKs.
centauri gateway — a reverse proxy whose routes and keys are bi-temporal facts (config time-travels with AS OF) and whose per-request audit is hash-chained. API keys, OIDC JWT validation, mTLS, per-key/per-IP rate limits, built-in middleware, programmable CePL request policies, webhook auth callouts, and a client-credentials token issuer (/gw/token + JWKS; service tokens only) — plus an LLM gateway with SSE streaming, provider failover, model pinning, and per-key token metering as queryable facts. Scale out with -control-follow; Prometheus metrics; mint keys in the Console (/console). vs Kong, Apigee, AWS, Tyk →
These run entirely in your browser, using the same logic that runs inside Centauri.
Edit any record and watch centauri verify catch it.
One query language for time, cause, trust, shape, and meaning. Every statement below is documented in full — with a Rosetta Stone from SQL, Cypher, Mongo and more — in The CeQL Book.
| Statement | What it does | Example |
|---|---|---|
| FACTS OF | Current facts about a subject (one per facet); add projections, WHERE, GROUP BY, ORDER BY. | FACTS OF item:100001/store:4001 |
| AS OF | Time travel — what was true at a given moment (or “yesterday”, “10 days ago”). | FACTS OF toy:robot AS OF '2026-03-15' |
| AS KNOWN AT | The second clock — what you believed at a past moment. The audit query. | … AS OF '2026-03-15' AS KNOWN AT '2026-03-01' |
| HISTORY OF | The full, never-erased timeline of a subject. | HISTORY OF item:100001/store:4001 |
| WHY / EFFECTS | Walk the causal graph — what led to an event, or what it caused. | FACTS OF toy:robot WHY DEPTH 3 |
| MATCH new | Causal pattern search across the WHY graph — which things led to which, by link type. | MATCH item:* CAUSES register:* VIA TRIGGERED |
| PUT / CORRECT / RETIRE | Write a fact, fix one, or retire it — all append-only; history is kept. | PUT toy:robot SET price_cents=500 |
| SNAPSHOT / ROLLBACK new | Name a point, then rewind to it — rollback appends auditable reversion facts (never erases) and rewinds any past commit. | ROLLBACK TO SNAPSHOT 'before-import' |
| DIFF new | What changed between two moments — preview before you roll back. | DIFF OF item:* BETWEEN '2026-03-01' AND '2026-03-15' |
| PENDING / DISAGREE | Operational integrity: changes sent but never activated; systems that disagree. | PENDING pdt OLDER THAN 21 DAYS |
| SEARCH new | Ranked full-text (BM25) across subjects and text values; hybrid with vectors via SIMILAR TO. | SEARCH 'late markdown' OF item:* |
| SIMILAR TO | Semantic search over embeddings — events that look like this one. | SIMILAR TO 0193fa2e-77c1 TOP 5 |
| SHAPE topology | Persistent homology of a value cloud: clusters (B₀), loops (B₁), voids (B₂), periodicity. | SHAPE OF item:* ON price_cents |
| CONSISTENCY topology | Sheaf consistency across a subject's facets — agreement clusters + the outlier. | CONSISTENCY OF item:1/store:9 ON price_cents |
| CYCLES / DRIFT topology | Cycles in the causal graph (integrity); distribution drift over time. | DRIFT OF item:* ON price_cents BUCKETS 6 |
| ENRICH new | Run a model over events and cache the result as a fact — embeddings or text, via your own LLM endpoint. | ENRICH ticket:* USING summarize ON body AS summary |
| ASK new | Private RAG — retrieve the most relevant facts, have the local model answer, cite the source events. | ASK 'which invoices from Acme are overdue?' |
| CONTEXT FOR | Everything an AI needs in one call: facts, history, causes, disagreements, confidence. | CONTEXT FOR item:100001/store:4001 |
| WATCH | A standing query — stream new facts as they commit. | WATCH ALL FACET pdt |
| DEFINE SCHEMA / RUN | Versioned validation schemas; run CePL stored procedures with a step trace. | RUN duty_estimate WITH item='100001' |
| EXPLAIN ANALYZE new | Show a query's access path, and run it to report row count and timing. | EXPLAIN ANALYZE FACTS OF item:* |
Beyond the language, the single binary ships a Studio IDE (object explorer, editor, causal-graph view, inline edit-as-a-fact), a psql-style centauri shell, EXPLAIN ANALYZE, CDC with resumable replication slots, and scoped tokens (subject-prefix row-level security) — all detailed in The CeQL Book.
The everyday operations map almost one-to-one — then CeQL adds what SQL can't express. The full mapping (Oracle, PostgreSQL, MongoDB, Cypher, KSQL) is in the Rosetta Stone.
| SQL | CeQL |
|---|---|
| SELECT * FROM t WHERE id = 42 | FACTS OF item:42 |
| SELECT price, trust … WHERE price > 700 | FACTS price_cents, trust OF item:* WHERE price_cents > 700 |
| INSERT / UPDATE … SET price = 500 | PUT item:42 SET price_cents=500 — insert & update are one act |
| DELETE FROM t WHERE id = 42 | RETIRE item:42 — history kept; no hard delete |
| GROUP BY facet, AVG(price) | FACTS facet, AVG(price_cents) OF item:* GROUP BY facet |
| ORDER BY price DESC LIMIT 10 | FACTS … ORDER BY price_cents DESC LIMIT 10 |
| CREATE TABLE / column types | DEFINE SCHEMA price (price_cents number REQUIRED …) |
| WHERE col LIKE '%markdown%' | SEARCH 'markdown' OF item:* — ranked, not just matched |
| AS OF SYSTEM TIME '2026-03-15' | FACTS OF item:42 AS OF '2026-03-15' |
| stored procedure | RUN duty_estimate WITH item='100001' |
| audit log / temporal table | HISTORY OF item:42 — built in, never erased |
| JOIN | causal links + CONTEXT FOR item:42 — no table joins |
What CeQL adds that SQL can't: AS KNOWN AT (replay what you believed, not just what was true), WHY / EFFECTS (causal lineage), SHAPE / CONSISTENCY / DRIFT (topology), tamper-evident verify, hybrid keyword+vector SEARCH, and a native agent interface (MCP).
Centauri is the system of record beside your operational stores, so moving data across the boundary is first-class. Two open paths: native Airbyte connectors and a resumable change stream.
Point any of Airbyte's 300+ sources — Postgres, MongoDB, Stripe, Salesforce, files — at the Centauri destination, and every row lands as a bi-temporal fact. One connector instead of N importers.
Stream facts out to any warehouse or lake. It rides the CDC endpoint, so Centauri's byte-offset cursor becomes Airbyte incremental state — only new facts, never duplicates.
GET /v1/changes?from=<cursor> returns committed facts in order plus a cursor to resume from. Tail the database from any language; the append-only log is the stream.
The connectors are standalone (pure-stdlib Python, no Airbyte CDK) and never link into the single binary — the zero-dependency core is untouched. Connector source & quickstart →
Talk to Centauri with a zero-dependency client for Python, Go, or JavaScript — or over plain HTTP/MCP from anything. Insert and update are the same call; reads, time travel, context, and CDC are one method each.
db = Centauri(token="…")
db.add("toy:robot", {"price_cents": 500})
db.get("toy:robot")
db.context("toy:robot") # agent bundle
db.run("reprice", item="toy:robot", pct=90)
c := centauri.New(url,
centauri.WithToken("…"))
c.Add("toy:robot",
map[string]any{"price_cents": 500})
c.Query("FACTS OF item:* WHERE region='EU'")
const db = new Centauri(url, {token:"…"});
await db.add("toy:robot", {price_cents: 500});
await db.query("FACTS OF toy:robot WHY");
await db.run("reprice", {item:"toy:robot"});
CePL is not Python — it's Centauri's tiny, near-English procedure language (think PL/SQL for the agent era). A procedure is stored as a versioned fact and run by name, returning a full step-by-step trace. Reach for the SDKs or an MCP agent when you need general-purpose code; reach for CePL when the logic belongs next to the data.
PROCEDURE reprice(item, pct) LET cur = FIRST FACTS OF ${item} WHEN cur IS MISSING: FAIL 'unknown item ${item}' LET newp = cur.price_cents * pct / 100 PUT ${item} SET price_cents=${newp} REF 'proc:reprice' RETURN newp END
Any language also works over HTTP (POST /v1/query) or natively via the MCP server. Full details & the CePL chapter are in The CeQL Book; SDK source is in /sdk.
Centauri isn't a retail tool — the subjects are just names. Here's how each capability reads in healthcare, finance, security, ML, IoT, and more. Every query is real CeQL.
-- decision replay: the chart as it was that day CONTEXT FOR patient:8842/encounter:0421 AS KNOWN AT '2026-02-10'
-- regulators ask "what did you know, and when?" FACTS OF position:*/desk:fx AS OF '2026-03-15 16:00 EST' AS KNOWN AT '2026-03-15 16:00 EST'
-- walk the causal graph to the root FACTS OF incident:5521 WHY DEPTH 6
-- forward blast radius from one event EFFECTS event:cred-leak-77 DEPTH 8
-- ranked full-text, not substring SEARCH 'tls handshake timeout' OF incident:*
-- BM25 recall + vector semantics in one call SEARCH 'pod crashloop oom' OF runbook:* SIMILAR TO evt:user_question ALPHA 0.5
-- persistent homology finds the loop a -- threshold rule would miss SHAPE OF transfer:* ON amount, velocity
-- a void (Betti-2) = a coverage gap SHAPE OF sensor:* ON lat, lon, range MAXDIM 2
-- a clean loop = regular rhythm; a broken -- one flags arrhythmia (time-delay embedding) SHAPE OF signal:ecg/patient:8842 ON mv WINDOW 40
-- topological drift across time buckets DRIFT OF feature:churn_v3/* ON value BUCKETS 8
-- which system is the outlier, by how much CONSISTENCY OF patient:8842/lab:potassium ON value EPS 0.2
-- a directed cycle in the money graph CYCLES IN CAUSES OF transfer:*
-- the silent rollout that never landed PENDING host OLDER THAN 2 DAYS DISAGREE ON config_hash
# recomputes the SHA-256 chain byte-for-byte $ centauri verify chain head: 7f3a… · 1,284,902 records · intact ✓
ASK over your own data with citations, and plain-English → CeQL — all on a free local model.
Source & README ↗Architecture, contributing guide, and the zero-dependency Go codebase.
Deployment guide ↗Run on a VPS, Docker, or one-click to Render with HTTPS and a generated token.
API gateway ↗Turn any Centauri log into a reverse proxy — routes and keys are facts, config time-travels with AS OF, and the request audit is tamper-evident.
CeQL referenceThe cheat-sheet above — every statement with a runnable example.
Releases & changelog ↗Versioned downloads, checksums, and what changed in each release.
Suggest a feature ↗File an idea — accepted features are implemented and shipped.
Ready-to-run installers and binaries — one self-contained file with the engine, dashboard, textbook, topology, search, and Genesis. Select your operating system:
All builds, every version & checksums live on GitHub Releases. If a direct link 404s, the latest release is still building (or not published yet).
centauri desktop · checksumsInstall with one line (auto-detects Apple Silicon or Intel):
curl -fsSL https://centauridb.com/install.sh | shInstall with one line (amd64 & arm64 auto-detected):
curl -fsSL https://centauridb.com/install.sh | sh