Local-first, versioned, traceable multimodal knowledge graph OS
Code · Documents · Images · Project history → evolving traceable GraphRAG memory
Noesis is a local-first, versioned, traceable multimodal knowledge graph operating system. It continuously turns code, documents, images, and project history into evolving, traceable GraphRAG memory for humans and AI agents.
- 🧠 Multimodal knowledge extraction — tree-sitter AST for zero-token code parsing, LLM for document semantics, OCR + vision for images
- 🔍 Traceable GraphRAG — every answer carries reasoning path, source evidence, and confidence labels (EXTRACTED / INFERRED / AMBIGUOUS)
- 📊 Graph version control — snapshots, diff, rollback, and time-travel queries over your knowledge graph
Noesis is not a replacement for vector databases or code graph tools. It is an orchestration layer that combines graph DB + vector DB + metadata store into a unified knowledge system with provenance, versioning, and reasoning.
pip install noesis
noesis init # generate noesis.yaml (zero external dependencies)
noesis ingest ./project # build knowledge graph from local files
noesis serve # start FastAPI server + Web UIThen open http://localhost:8000 to explore your knowledge graph.
Requirements:
| Dependency | Version | Purpose |
|---|---|---|
| Python | ≥ 3.11 | Core engine (FastAPI, parsing, GraphRAG) |
| Node.js | ≥ 20 | Web UI development only |
| 16 GB RAM | — | Local LLM + embedding (no GPU required) |
The core of Noesis is a traceable GraphRAG fusion engine:
User Query
│
▼ ─────────────────────────────────────────
│ Layer 1: Graph Traversal Kuzu/Neo4j <500ms │
│ ─────────────────────────────────────────│
│ Layer 2: Semantic Search LanceDB <3s │
│ ─────────────────────────────────────────│
│ Layer 3: Fusion + Reasoning LLM variable│
└──────────────────────────────────────────
│
▼
Answer + Reasoning Path + Evidence
| Layer | Store | Latency | Role |
|---|---|---|---|
| L1 | Kuzu (default) / Neo4j (optional) | < 500ms | Exact graph traversal, entity/relation queries |
| L2 | LanceDB | < 3s | Dense vector semantic search over chunks |
| L3 | Fusion Engine + Ollama | variable | Combine graph paths + semantic chunks → LLM reasoning |
Every answer includes:
paths: graph traversal route (nodes → edges → evidence)sources: original file references with line/spanconfidence: EXTRACTED / INFERRED / AMBIGUOUS
Noesis exposes a FastAPI server:
POST /api/query # GraphRAG question answering
GET /api/graph/entity/:id # entity details + relations + provenance
GET /api/trace/:answer_id # full reasoning path with evidence
POST /api/ingest # trigger knowledge graph ingestion
GET /api/snapshot # list graph versions (v0.2)
Noesis/
├── noesis/ # Python main package
│ ├── core/ # types, config, constants
│ ├── ingest/ # data ingestion (local files, GitHub)
│ ├── parse/ # multimodal parsing (code, docs, images)
│ ├── cognify/ # entity/relation extraction, embedding
│ ├── store/ # hybrid storage (Kuzu + LanceDB + SQLite)
│ ├── graphrag/ # traversal + semantic search + fusion
│ ├── api/ # FastAPI REST endpoints
│ └── cli/ # Typer CLI
├── packages/
│ └── web/ # React + Cytoscape.js knowledge workspace
├── tests/
├── docs/
└── docker-compose.yml
| Milestone | Scope | Status |
|---|---|---|
| v0.1 Nebula | Static knowledge graph MVP: ingest, GraphRAG, traceable answers, Web UI skeleton | 🔧 In progress |
| v0.2 Pulse | Dynamic evolution: file watcher, incremental updates, graph versioning, snapshots | 🔜 Planned |
| v0.3 Synapse | Proactive intelligence: MCP server, anomaly detection, user feedback loop, conflict resolution | 🔜 Planned |
pytest # Python unit testsContributions are welcome. Before starting:
- Read CLAUDE.md for full architecture and development guidelines
- Open an issue to discuss your proposed change before submitting a PR
MIT — see LICENSE
Noesis — from the Greek νόησις: process of thinking, rational cognition