Personal Knowledge OS — autonomic reasoning engine built on Postgres + pgvector + AGE + LLM synthesis
Project description
Exocortex
A personal knowledge OS that thinks while you sleep.
Exocortex is a self-hosted reasoning engine for your notes. It ingests what you read, hear, and decide; stores it as an append-only graph (Postgres + pgvector + Apache AGE); and asks an LLM to compile a plain-Markdown wiki from that graph every night. Obsidian, Notion, Telegram, and your shell are surfaces — the brain lives in Postgres.
What it does
- Ingests vault files, mail, RSS feeds, meeting transcripts, and
anything you
POSTto/capture— turning each into typed thoughts and graph edges - Synthesises the graph on a schedule (default daily) into a compiled Markdown wiki, perspective-typed by domain (client, project, person, news cluster, …)
- Answers questions via GraphRAG — hybrid retrieval over pgvector HNSW + Apache AGE traversal, with provenance-aware ranking and inline citations
- Surfaces contradictions (
find_contradictions), open action items, and gaps in your knowledge through an MCP server and a capture API
It is not a notes app, not a search wrapper around your files, and not a chatbot. It is a system that processes your knowledge on its own clock against your data.
When Exocortex makes sense
You probably want Exocortex if:
- You already have a substantial body of personal notes (a few hundred files at minimum) and the volume has stopped being manageable by hand
- You want the system to surface things — contradictions, forgotten notes, knowledge gaps — without you having to ask
- You are comfortable running Postgres in Docker on a small VPS or a homelab, and reading enough YAML to configure a few plugins
- You want plain Markdown as the rendered output, on disk, so any editor (Obsidian, vim, VS Code) keeps working
You probably do not want Exocortex if:
- You are looking for a notes app with sync and a polished mobile UI — Obsidian or Notion are still better at that, and Exocortex treats both as surfaces, not replacements
- You have under a hundred notes and process them by hand without pain — the system's overhead is wasted on small corpora
- You are not comfortable self-hosting; there is no managed version and the license does not allow anyone to offer one
Architecture in one diagram
L1 — sources of truth
┌─────────────────────────────────────────────────────┐
│ vault/*.md · email · RSS · meetings │
└─────────────────────────────────────────────────────┘
│ Capture API (POST /capture)
▼
L2 — the graph
┌─────────────────────────────────────────────────────┐
│ thoughts (pgvector) ─edges (AGE, 35 types)─→ │
│ syntheses (LLM, on-demand) │
└─────────────────────────────────────────────────────┘
│ │
write-time fork query-time fork
(wiki compiler nightly) (GraphRAG, MCP tools)
│ │
▼ ▼
L3 — surfaces
┌─────────────────────────────────────────────────────┐
│ Obsidian wiki · Notion · Telegram · CLI │
└─────────────────────────────────────────────────────┘
The graph (L2) is canonical. Surfaces (L3) are regenerated from it. Edits go to L1; nothing edits L2 directly. See EXOCORTEX.md for the long version.
Quick start (5 min)
Walk through examples/hello-world/ — a
self-contained guide that takes you from docker compose up to your
first synthesised page in under five minutes, with no plugins and a
toy vault.
Examples
examples/hello-world/— minimal, no plugins, ~5 minexamples/acme-corp/— a fictional company plugin with a custom perspective, MCP tool, and domain compiler in ~150 lines
Documentation
Full docs site: https://exocortex-os.github.io/exocortex/
(also browsable as Markdown under docs/).
- EXOCORTEX.md — design document (motivation, architecture, plugin system, principles, roadmap)
- Writing a plugin — the five extension
points end-to-end, walked through the
acme-corpexample - Contributing — house rules, where to start, what we won't merge
plugins/README.md— short version of the plugin contract (registry API, entry points)
License
Apache 2.0 with the Commons Clause — see LICENSE,
NOTICE, ATTRIBUTION.md, and
docs/legal/license.md
for the plain-language version. Short form: use it, modify it, build
on it; you cannot resell Exocortex itself or run it as a paid SaaS.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file exocortex_os-0.1.0.tar.gz.
File metadata
- Download URL: exocortex_os-0.1.0.tar.gz
- Upload date:
- Size: 357.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d1dc3c4a8f735808c9c3b7e90761a06590a72958151418d74c6bdaa1f35fce06
|
|
| MD5 |
f0adfce863ca305a6110c18256999846
|
|
| BLAKE2b-256 |
8a46656f96aca7afdeb8620405eaa40fe124a08b62bf78dd5366a5e4a7594cf5
|
File details
Details for the file exocortex_os-0.1.0-py3-none-any.whl.
File metadata
- Download URL: exocortex_os-0.1.0-py3-none-any.whl
- Upload date:
- Size: 397.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
376d7b1939216f455b26d003da38c7c2af1dfd4411766388c72ac1ef064515c9
|
|
| MD5 |
b913df762e44e5dc638f375c826b134c
|
|
| BLAKE2b-256 |
54aee4d93e2c6280413b9c82ca841650553c8e1bb493d10a705a89c810cb345d
|