Self-hosted memory for AI teams that keeps current project knowledge source-backed, scoped, and reviewable.
Infinity Context gives agents and applications durable project memory without treating every chat fragment or retrieval result as permanent truth. Postgres owns canonical lifecycle state; optional retrieval systems help find candidates but do not decide what is current or visible.
It is available through HTTP, a Python SDK, MCP, CLI, and a local UI for shared project knowledge as well as team, project, and thread-scoped memory.
- Why Infinity Context
- How it works
- Architecture and trust model
- Quickstart
- Integration entry points
- Capability positioning
- Status and limitations
- Documentation
Teams need more than semantically similar notes. They need a shared memory layer where a decision can be traced to its source, updated when the project changes, and recalled only in the right context.
- Current knowledge, not a history dump. Facts have lifecycle state, versions, source references, and visibility rules in Postgres.
- Source-backed and reviewable. Agents can submit suggestions for review instead of silently promoting every generated conclusion to durable memory.
- Scoped for real work. Spaces, memory scopes, and threads separate projects, workstreams, and sessions.
- Retrieval is not authority. Optional Qdrant and Graphiti indexes return candidates that are rehydrated from canonical state before prompt rendering.
- Prompt memory is evidence. Retrieved material includes citations and provenance rather than being phrased as instructions for a model to follow.
A typical team loop is simple: capture a decision with its evidence, propose a change when the decision evolves, and retrieve only the current scoped context before a new task. That makes the memory useful to people reviewing work as well as agents continuing it.
flowchart LR
A["Agents and apps"] --> B["HTTP / SDK / MCP / CLI / UI"]
B --> C["Application use cases"]
C --> P[("Postgres<br/>canonical current truth")]
P -->|"when async work is needed"| O["Transactional outbox"]
O --> W["Projection and extraction workers"]
W --> Q["Qdrant<br/>optional derived retrieval index"]
W --> G["Graphiti<br/>optional current-state graph projection"]
Q -. "candidate IDs" .-> C
G -. "candidate IDs" .-> C
C -. "hydrate and revalidate" .-> P
C --> E["Final prompt context<br/>cited evidence, not instructions"]
Canonical mutations commit their lifecycle records first. When derived or extraction work is required, the same transaction also records an outbox event. Workers update enabled projections asynchronously. During search or context assembly, candidate IDs are rehydrated from Postgres and revalidated for lifecycle, scope, and visibility before they can appear in a cited evidence block.
Infinity Context applies Clean Architecture, SOLID, simple DDD, and ports-and-adapters boundaries:
- Postgres owns the canonical lifecycle; Qdrant and Graphiti are optional, derived indexes.
- The infinity_context_core package cannot import FastAPI, SQLAlchemy, Qdrant, Graphiti, OpenAI, or client application code.
- Adapters provide delivery and infrastructure details without becoming the source of truth.
Read the architecture and trust model for write and read flows, package ownership, consistency behavior, and security limits.
The recommended installer sets up the complete local stack, connects your coding agent, enables review-gated memory suggestions, and opens the UI.
Requirements: Git, Python 3.11 or later, and Docker with Compose.
curl -fsSLo infinity-context-install.sh \
https://raw.githubusercontent.com/777genius/infinity-context/v0.1.0/scripts/install.sh
bash infinity-context-install.sh --agent codexPersistence warning: v0.1.0 does not declare a named Postgres volume. Back up canonical Postgres data before
docker compose down, container recreation, reset, or upgrade. The persistence fix currently exists onmainand will reach installers in the next release.
Replace codex with claude, gemini, opencode, or cursor. Repeat
--agent to connect several agents, or use --all-agents. The installer
reports whether every requested integration was confirmed instead of claiming
success when manual setup is still required.
After a successful start, the browser opens the local memory UI. Automatic capture creates suggestions for review; it does not silently promote them to durable memory.
Install only the CLI, SDK, and MCP server for an existing deployment:
pipx install 'infinity-context[mcp]==0.1.0'
infinity-context --versionPull the versioned multi-architecture server image:
docker pull ghcr.io/777genius/infinity-context:0.1.0Contributors can install from source:
git clone https://github.com/777genius/infinity-context.git
cd infinity-context
python3 -m venv .venv
.venv/bin/python -m pip install -e '.[mcp]'
.venv/bin/infinity-context quickstart --agent codex --open-uiUse --no-install-agents if you only want generated MCP configuration, or
--retrieve-only to keep recall while disabling automatic capture creation.
| Profile | Intended local setup |
|---|---|
| lite | Postgres, the server, and workers with optional provider adapters disabled |
| full | Adds Qdrant and Neo4j-backed graph services; enabled provider features need their own configuration |
The public installation guide and self-hosted deployment guide cover first-run and operational details.
| Entry point | Use it when |
|---|---|
| HTTP API | An application needs canonical memory and context endpoints |
| Python SDK | A Python service needs typed HTTP client calls |
| MCP | A coding agent or MCP client needs memory tools and evidence resources |
| CLI | A developer is starting, configuring, or inspecting a local instance |
| Local UI | A person wants to browse evidence and review suggestions locally |
The MCP adapter guide explains the agent-facing boundary. Retrieved memory is evidence to inspect, not an instruction source.
This source-audited, project-weighted architecture assessment is dated 2026-08-05. It is not a matched performance benchmark, and there is no universal winner. Under its explicit trust-weighted coding-agent rubric, Infinity Context is the strongest fit for governed current-state project memory.
The same published rubric was applied to every system, with no Infinity-specific bonus. Popularity, company size, and managed-only features were excluded. A separate source-check review pass verified claims against pinned public code, documentation, and current issues. Readers can inspect the method and sources and recalculate the assessment. Scores are architecture-fit scores out of 100, not performance measurements; estimated uncertainty is plus or minus three points, and differences within three points place products in the same technical class.
| Rank | Product | Research score / 100 | Leads in | Best fit |
|---|---|---|---|---|
| 1 | Infinity Context | 93.9 | Governed current state: canonical versions, provenance, scoped visibility, review-gated promotion, and revalidated derived hits | Teams sharing changing project knowledge across agents and apps |
| 2 | Hindsight | 91.5 | Cognitive memory: evidence-grounded observations, maintained mental models, broad recall, and reflection | Agents that learn from accumulated experience |
| 3 | OpenViking | 90.7 | Unified coding-agent context across memories, resources, and skills | Agents that need one browsable project-context layer |
| 4 | MemOS | 86.2 | Broad Memory OS building blocks, MemCubes, routing, and schedulers | Products experimenting with multiple memory forms and providers |
| 5 | MatrixOrigin Memoria | 84.5 | Memory branches, snapshots, diffs, merges, and rollback | Workflows that need recoverable alternative memory states |
| 6 | MemMachine | 84.3 | Source-linked episodic memory and conversational recall | Assistants that must point back to source conversations |
| 7 | Honcho | 83.9 | Peer and user modeling with explicit and inferred conclusions | Assistants that reason about a person's evolving model |
| 8 | EverOS | 83.1 | Markdown-first local memory with transparent files and derived indexes | Developers who want readable, Git-friendly local memory |
| 9 | Memora | 80.1 | Lightweight local MCP memory with lineage and graph interaction | Individual developers wanting inspectable local workflows |
| 10 | Mem0 OSS | 74.4 | Portable memory SDK and integrations | Products that own their lifecycle policy and need quick integration |
Where Infinity Context stands out. Vector and graph search can find a candidate. Only current, visible Postgres state can enter the prompt. A transactional outbox drives derived projections; every hit is rechecked against canonical scope, version, and deletion rules, then rendered as cited evidence rather than an instruction. That directly reduces the chance that an agent acts on stale, out-of-scope, or silently invented project state.
See the detailed agent memory capability comparison for lifecycle, retrieval, temporal behavior, review, isolation, deployment, and scenario tradeoffs.
Infinity Context is v0.1 and under active development. APIs, CLI behavior, and deployment details may evolve.
- Postgres is the canonical lifecycle store. Qdrant is the primary derived vector projection. The Graphiti adapter is a narrower current-state projection: updates remove the prior episode before adding the new one, and the adapter does not expose Graphiti's complete source-reference, ontology, or version-history surface.
- Canonical visibility updates take effect before asynchronous derived-index cleanup. A stale derived hit is rechecked before rendering.
- Cognee is disabled by default and currently provides a recall-oriented boundary without complete ingest, update, or exact-forget lifecycle support.
- The current
mainbranch contains provider-neutral cognitive candidate types and derivation policy for experiences, observations, lessons, and mental models. The foundation itself is not included in v0.1.0. Main still has no cognitive persistence, public API, runtime composition wiring, deployment dependency, or live adapter; cognitive memory is not part of the active runtime shown above. - Retrieval includes deterministic prepasses shaped by the current evaluation domains. This is not ground-truth leakage, but broader transfer quality still needs independent evidence.
- Current load and chaos tests exercise lifecycle and consistency on a limited corpus; they do not prove behavior at 100,000+ memories or across dozens of concurrent agents.
- Review and canonical revalidation reduce memory-poisoning exposure, but they are not a proof of safety against sleeper-memory attacks.
- Source references prove provenance, not truth. Review and domain judgment remain necessary.
- Evaluate deployment, access control, backups, and operational fit for your environment before relying on any self-hosted configuration.
- Public installation and first run
- Architecture and trust model
- Agent memory capability comparison
- Documentation index
- Core Lite implementation plan
- MCP adapter guide
- Self-hosted team deployment
- ADR-0002: Postgres as canonical truth
- ADR-0004: Derived retrieval adapters
- Infinity Context vs Mem0 engineering runner