Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Why AeorDB

Xenocept is built on top of AeorDB — a content-addressed, single-file embedded database. AeorDB runs in-process inside the Xenocept binary; there is no separate server or client lib involved.

What Xenocept Needs From Storage

Xenocept’s storage workload has a specific shape:

  1. Many PNG images. Every comment captures one focus PNG (its annotated crop). Every Submit also writes a full-frame screenshot, and optionally a clean (background-only) copy. A long-running install accumulates many of these.
  2. High redundancy. Two captures of the same UI overlap on most pixels. Most of the bytes are identical.
  3. Searchable over text. Users want to fuzzy-search past sessions by comment text, bubble text, OCR’d UI text, AI-generated descriptions, etc.
  4. Reactive UI. When a session is submitted or dispatched, the Sessions list should update without polling.
  5. No external dependencies. Xenocept is a desktop app. Spinning up Postgres or Redis to power it would be absurd.

What AeorDB Provides

NeedAeorDB Feature
Many PNGsSingle-file, embedded, no setup.
High redundancyContent-addressed storage with BLAKE3 hashing — identical chunks are stored once. Captures with overlapping pixels dedupe automatically.
Searchable textTrigram fuzzy-search indexes over comment / bubble / text / OCR / description fields. See Indexes.
Reactive UIAn internal event bus and SSE machinery. Xenocept builds its own session-event broadcast on top — see Events & Reactivity.
No external depsOne .aeordb file. Compressed (zstd) on disk. Crash-recoverable via WAL.

AeorDB’s query operators are eq, gt, lt, between, in, contains, similar, fuzzy, phonetic, and match, combined via and / or / not. The authoritative list lives in the AeorDB querying docs.

The Net Effect

The same in-process .aeordb file powers:

  • The submitted session history (/sessions/)
  • The screenshot capture history (/screenshots/)
  • Settings, destinations, and auto-send config (/config/)
  • The session-content fuzzy-search index (/sessions/.aeordb-config/indexes.json)

One file. One library link. No deployment story.