{"slug": "show-hn-omnigraph-object-storage-native-graph-engine-with-git-style-workflows", "title": "Show HN: Omnigraph - object-storage native graph engine with git-style workflows", "summary": "ModernRelay launched Omnigraph, an open-source graph engine designed for multi-agent coordination and context assembly, featuring Git-style branching, multimodal retrieval, and object-storage-native architecture. The tool allows developers to declare graphs as code, run them on any S3-compatible store, and manage agent workflows with versioned branches and security policies.", "body_md": "**Lakehouse graph database for context assembly & multi-agent coordination**\n\nMultimodal retrieval · Git-style branching · object-storage native\n\n[Quickstart](/ModernRelay/omnigraph/blob/main/docs/user/quickstart.md) ·\n[Docs](/ModernRelay/omnigraph/blob/main/docs/user/clusters/index.md) ·\n[Cookbooks](https://github.com/ModernRelay/omnigraph-cookbooks) ·\n[CLI](/ModernRelay/omnigraph/blob/main/docs/user/cli/reference.md)\n\nOmnigraph is the operational state and coordination layer for fleets of agents.\n\nRun it as a server, declared as code; hundreds of agents operate and enrich the graph on parallel isolated branches, and every change is reviewed and merged safely.\n\n| Capability | What it gives you |\n|---|---|\nDeclared as code |\nA `cluster.yaml` declares graphs, schemas, stored queries, embedding providers, and policies; `cluster apply` converges it and `omnigraph-server` brings every graph online at `/graphs/{id}/…` . |\nBuilt for fleets of agents |\nHundreds of agents enrich the graph on parallel isolated branches; changes are reviewed and merged safely, Git-style, across the whole graph. |\nMultimodal retrieval |\nGraph traversal + vector ANN + full-text + Reciprocal Rank Fusion in one query runtime, for context assembly. |\nSecurity as code |\nCedar policy enforced server-side on every mutation, per-graph and server-wide; bearer auth; actor/audit tracking. |\nRuns on your infrastructure |\nAny S3-compatible object store: on-prem via RustFS / MinIO, or AWS S3 / R2 / GCS. VPC, on-prem, hybrid; your data never leaves your store. |\nOpen, versioned storage |\n`Lance` |\n\n| Use case | What it's for |\n|---|---|\nCompany brain |\nOrg knowledge unified into one graph every agent can query |\nAgentic memory |\nDurable, versioned memory: a branch per agent or per task, merged on review |\nContext graph |\nDecision traces and codified tribal knowledge for retrieval |\nDev graph |\nIssues & dependency model that coding agents read and write |\nR&D / ML data layer |\nExperiments and trials written into branches, versioned for training & eval |\n\n```\ncurl -fsSL https://raw.githubusercontent.com/ModernRelay/omnigraph/main/scripts/install.sh | bash\n```\n\nThis installs `omnigraph`\n\n(CLI) and `omnigraph-server`\n\ninto `~/.local/bin`\n\nfrom\npublished release binaries. Or with Homebrew:\n\n```\nbrew tap ModernRelay/tap\nbrew install ModernRelay/tap/omnigraph\n```\n\nOmnigraph is built to be run by coding agents. Two ways in:\n\n**Teach your agent the playbook.** This repo ships the\n: the operational playbook\ncovering cluster mode, the two config surfaces, schema evolution, query linting,\ndata writes, branches, Cedar policy, and the common gotchas.\n\n`omnigraph`\n\nagent skill\n\n```\nnpx skills add ModernRelay/omnigraph@omnigraph\n```\n\n**Or have an agent set it up from scratch.** Paste this into Claude Code,\nCodex, or any agent that can read a URL and run a shell command:\n\n```\nHelp me set up Omnigraph\n\n1. Read the docs at https://github.com/ModernRelay/omnigraph, starting with\n   docs/user/clusters/index.md, then docs/user/deployment.md.\n2. Skim the starter graphs and seed data in the cookbooks:\n   https://github.com/ModernRelay/omnigraph-cookbooks\n3. Ask me what I want to build (company brain, agent memory, dev graph,\n   research / R&D layer, …). Then stand up a cluster for it, load a little\n   data, and run a query so I can see it working.\n```\n\nFor ready-to-run graphs with real seed data (company brain, VC operating system,\npharma & industry intel),\n[ ModernRelay/omnigraph-cookbooks](https://github.com/ModernRelay/omnigraph-cookbooks)\nis the fastest way to see Omnigraph shaped to a real domain.\n\nA deployment is a **cluster**: a **multigraph** config directory that declares\nits graphs, schemas, stored queries, and policies as code. You manage it\n**Terraform-style**: `cluster plan`\n\npreviews the diff, `cluster apply`\n\nconverges\nit. `omnigraph-server`\n\nthen boots from the cluster and brings every graph online\nat `/graphs/{id}/…`\n\n, each behind its own policy.\n\n**1. Declare the cluster.**\n\n```\ncompany-brain/\n├── cluster.yaml\n├── people.pg          # schema for the \"knowledge\" graph\n├── queries/           # stored queries: the .gq files ARE the declaration\n│   └── people.gq\n└── base.policy.yaml   # a Cedar policy bundle\n# cluster.yaml\nversion: 1\nmetadata:\n  name: company-brain\nstorage: s3://company/clusters/company-brain   # ledger, catalog, and graph data live here\ngraphs:\n  knowledge:\n    schema: people.pg\n    queries: queries/                          # every `query <name>` in queries/*.gq registers\npolicies:\n  base:\n    file: base.policy.yaml\n    applies_to: [knowledge]                    # graph-bound; use [cluster] for server-level\n```\n\n**2. Stand up your object store.** On-prem, run RustFS (or MinIO); Omnigraph\nwrites [Lance](https://github.com/lance-format/lance) to it over the standard S3\nAPI. In the cloud, point the same `AWS_*`\n\nenv at S3 / R2 / GCS instead.\n\n**3. Converge and run.** `apply`\n\ncreates each graph, applies its schema, and\npublishes queries and policies into the content-addressed catalog. It is\nidempotent; re-running is always safe.\n\n```\nomnigraph cluster validate   # parse + typecheck everything\nomnigraph cluster plan       # preview what apply would do\nomnigraph cluster apply      # converge\n\n# Boot the server from the cluster dir; storage resolves through cluster.yaml\nomnigraph-server --cluster company-brain --bind 0.0.0.0:8080\n```\n\nSee the [cluster guide](/ModernRelay/omnigraph/blob/main/docs/user/clusters/index.md) for the day-2 loop\n(edit → plan → apply → restart), approval gates for destructive changes, drift\ninspection, and recovery; the [deployment guide](/ModernRelay/omnigraph/blob/main/docs/user/deployment.md) for\ncontainers, AWS/Railway, auth, and the full `AWS_*`\n\ncontract.\n\nSet a default server and graph once in `~/.omnigraph/config.yaml`\n\n, and the\neveryday commands stay short. Stored queries and mutations run **by name**:\n\n```\nomnigraph query  search_docs --params '{\"q\":\"AI safety\"}'\nomnigraph mutate add_person  --params '{\"name\":\"Mina\"}'\n\n# Branch, review, merge across the whole graph; agents write in isolation\nomnigraph branch create --from main agent/ingest-42\nomnigraph branch merge  agent/ingest-42 --into main\n```\n\nAn **alias** is shorter still: bind a server, graph, and stored query to one\nname, then `omnigraph alias triage`\n\nruns it. For an ad-hoc target, any command\nstill takes `--server <name|url> --graph <id>`\n\n(or `--store <uri>`\n\nfor a local\ngraph). See the [CLI reference](/ModernRelay/omnigraph/blob/main/docs/user/cli/reference.md).\n\n**Engine-wide enforcement:** every write path goes through the same Cedar gate, so the HTTP server, the CLI, and the embedded SDK obey identical rules.**Declared in the cluster:** a policy bundle is bound to graphs (or the whole server) via`policies:`\n\n→`applies_to`\n\n.**Scoped:** rules apply per graph, per branch, or server-wide.**No plaintext tokens:** bearer tokens are hashed at startup and compared in constant time.**Forge-proof identity:** the actor is resolved server-side from the token; clients can't set it.\n\nSee the [policy guide](/ModernRelay/omnigraph/blob/main/docs/user/operations/policy.md).\n\n| Client | Use it for | Where |\n|---|---|---|\nTypeScript SDK |\ntyped access from Node / TS |\n`@modernrelay/omnigraph` |\n\n[source](https://github.com/ModernRelay/omnigraph-ts)\n\n**MCP server**`@modernrelay/omnigraph-mcp`\n\n**HTTP / OpenAPI****Python SDK*** coming soon*Both npm packages are versioned in lockstep with `omnigraph-server`\n\n.\n\n1-min setup to try it: an **embedded, local file-backed graph** (no server, no\nobject store). For dev and experiments; production is the deployed cluster above.\n\n```\ncat > schema.pg <<'PG'\nnode Signal  { slug: String @key, title: String }\nnode Pattern { slug: String @key, name: String }\nedge Indicates: Signal -> Pattern\nPG\nprintf '%s\\n' \\\n  '{\"type\":\"Signal\",\"data\":{\"slug\":\"s1\",\"title\":\"OSS model adoption surging\"}}' \\\n  '{\"type\":\"Pattern\",\"data\":{\"slug\":\"p1\",\"name\":\"adoption\"}}' \\\n  '{\"edge\":\"Indicates\",\"from\":\"s1\",\"to\":\"p1\"}' > data.jsonl\n\nomnigraph init  --schema schema.pg ./graph.omni\nomnigraph load  --data data.jsonl --mode overwrite --store ./graph.omni\n\n# \"What pattern does signal s1 indicate?\"\nomnigraph query --store ./graph.omni \\\n  -e 'query indicates() { match { $s: Signal { slug: \"s1\" }  $s indicates $p } return { $p.name } }'\n# → adoption\ncargo build --workspace\ncargo test  --workspace\n```\n\nNotes:\n\n- Rust stable toolchain, edition 2024\n- CI runs\n`cargo test --workspace --locked`\n\n- Full CI and some local test flows require\n`protobuf-compiler`\n\n- S3 integration tests expect an S3-compatible endpoint such as RustFS\n\n`crates/omnigraph-compiler`\n\n: shared schema/query parser, typechecker, catalog, and IR lowering (zero Lance dependency)`crates/omnigraph`\n\n(package`omnigraph-engine`\n\n): storage/runtime, branching, merge, change detection, query execution, and embeddings`crates/omnigraph-policy`\n\n: Cedar policy compilation and enforcement`crates/omnigraph-api-types`\n\n: shared HTTP wire DTOs used by both the server and the CLI`crates/omnigraph-cluster`\n\n: cluster config validation, planning, and apply (the control plane)`crates/omnigraph-server`\n\n: Axum HTTP server, cluster-first, runs N graphs under`/graphs/{id}/…`\n\n`crates/omnigraph-cli`\n\n: CLI for graph lifecycle, query/mutate, branch/commit/merge, schema/lint, snapshot/export, cluster control, policy/queries, profiles, and maintenance\n\nPlease open an issue, spec, or design discussion before sending large code changes. Design feedback and concrete problem statements are the fastest way to collaborate on the roadmap.\n\nJoin the [Omnigraph Slack community](https://join.slack.com/t/omnigraphworkspace/shared_invite/zt-3wfpglyxj-lHvJGhuySPfqLtN35uJZNw)\nto ask questions, share feedback, and follow development.", "url": "https://wpnews.pro/news/show-hn-omnigraph-object-storage-native-graph-engine-with-git-style-workflows", "canonical_source": "https://github.com/modernrelay/omnigraph", "published_at": "2026-06-25 19:59:35+00:00", "updated_at": "2026-06-25 20:14:23.689159+00:00", "lang": "en", "topics": ["ai-agents", "developer-tools", "ai-infrastructure", "ai-tools", "ai-products"], "entities": ["ModernRelay", "Omnigraph", "Lance", "MinIO", "AWS S3", "Claude Code", "Codex", "Cedar"], "alternates": {"html": "https://wpnews.pro/news/show-hn-omnigraph-object-storage-native-graph-engine-with-git-style-workflows", "markdown": "https://wpnews.pro/news/show-hn-omnigraph-object-storage-native-graph-engine-with-git-style-workflows.md", "text": "https://wpnews.pro/news/show-hn-omnigraph-object-storage-native-graph-engine-with-git-style-workflows.txt", "jsonld": "https://wpnews.pro/news/show-hn-omnigraph-object-storage-native-graph-engine-with-git-style-workflows.jsonld"}}