Enternovate Open · Nyarhi · v0.1.0
The memory layer of the constellation. A local-first knowledge graph where nodes are entities, edges are relationships, and queries answer “how are these things connected?”
Agents and analysts accumulate facts faster than they can organise them. Nyarhi gives you one durable store where audit results from Mhangani, compliance evidence from Gavaza, and the agent's own memory all land as a queryable graph. Backends are JSON (atomic writes) or transactional SQLite with WAL, foreign keys, indexes and versioned migrations — auto-selected by file extension. At-rest encryption (AES-256-GCM) is optional. Your data stays on your machine.
$ pip install git+https://github.com/enternovate/nyarhi.git$ pip install "git+https://github.com/enternovate/nyarhi.git#egg=nyarhi[crypto]"$ nyarhi init ~/knowledge.sqlite$ nyarhi add-node example.com --type domain$ nyarhi add-node https://example.com --type webapp$ nyarhi add-edge example.com hosts https://example.com$ nyarhi find --type webapp$ nyarhi search example$ nyarhi neighbors example.com$ nyarhi path example.com https://example.com --max-depth 4$ nyarhi stats
nyarhi init <file>Create a new empty storenyarhi add-node <id> --type T [--prop k=v ...]Add a nodenyarhi add-edge <src> <dst> --type T [--bidirectional]Add an edgenyarhi find [--type T] [--where k=v]Find nodesnyarhi search <term> [--limit N]Full-text searchnyarhi neighbors <id> [--edge-type T]List a node's neighborsnyarhi path <a> <b> [--max-depth N]Find a path between nodesnyarhi timeline [--op OP] [--limit N]Show the mutation timelinenyarhi undo <seq>Reverse one mutationnyarhi schema set|show|clearManage the typed schemanyarhi export [--format json|graphml|csv|dot]Export the graphnyarhi import <file> [--edges F]Import JSON, GraphML or CSVnyarhi backup [--out F]Write a portable snapshotnyarhi restore <file>Restore a snapshotnyarhi encrypt on|off|statusManage at-rest encryptionnyarhi xavani-import [--home DIR]Import local Xavani datanyarhi serve [--port 8000] [--token T]Start the authenticated HTTP APInyarhi statsPrint store statisticsEvery variable is optional. The tool runs on defaults with no configuration.
NYARHI_STORENoDefault store path (.json, .sqlite, .sqlite3 or .db) (default: ~/.nyarhi/graph.json)NYARHI_HOMENoHome directory for encryption keys and the server token (default: ~/.nyarhi)Xavani Agent treats Nyarhi as durable memory. The constellation MCP bundle (constellation-mcp) exposes nyarhi_* tools, and the nyarhi-knowledge skill teaches the agent when to use them. The nyarhi xavani-import command reads your local Xavani home (~/.xavani/memories and ~/.xavani/sessions) and builds graph nodes and edges from it. The import is read-only and sync-only; it never sends data anywhere.
Xavani Agent docsGraph data, keys and snapshots stay in ~/.nyarhi on your machine. No accounts, no cloud.
Optional AES-256-GCM sealing of the store with a local key. Enable with nyarhi encrypt on.
JSON backend writes atomically; SQLite uses WAL with foreign keys and versioned migrations.
The HTTP server (nyarhi serve) requires a bearer token. Server-sent events included.