Enternovate Open · Nyarhi
A local-first knowledge graph where entities and relationships connect. Query it from code or the CLI. Store it on your machine. It is the constellation's shared memory. Open by design.

Most tooling stores data in silos. Nyarhi stores relationships. A finding from your scanner, the asset it hit and the fix that closed it all stay linked. Ask structural questions. Get answers with the connections intact.
Nodes have typed properties and typed directed or undirected edges. Nyarhi timestamps every write. Entities and relationships connect security findings, threat intelligence and documentation.
Use JSON with atomic writes or SQLite. Nyarhi selects the backend by file extension. Results are identical. Your knowledge stays on your machine.
Nyarhi provides exact and substring filters, neighbors, paths (BFS), shortest path and subgraphs. Ask structural questions about your data.
JSON round-trip and GraphML export let the graph work with the rest of the ecosystem's tooling.
Embed it as a Python library. Use it from the CLI. Run the optional read-only HTTP view.
Nyarhi is the shared knowledge layer. The whole Enternovate constellation reads and writes it. Xavani can query it as an MCP server.
$ nyarhi init ~/knowledge.json
$ nyarhi add-node gavaza --type tool --prop kind=compliance
$ nyarhi add-node mhangani --type tool --prop kind=auditor
$ nyarhi add-edge gavaza mhangani --type feeds --prop confidence=0.9
$ nyarhi path gavaza mhangani --max-depth 4
$ nyarhi export --format graphml --out graph.graphml
Ask 'what do we know about this domain?'. Xavani resolves the question through the Nyarhi MCP server. It cites what it finds.
Gavaza and Mhangani record findings as graph nodes and edges. You get one connected picture of your systems.
The free local graph also comes as SecuriBot and the platform's knowledge features. They are hosted, multi-tenant and shared.