How Index becomes the memory layer.
Six components, one pipeline. Each one solves a problem that AI apps inherit from being built as endpoints, not infrastructure.
A curated, semantic knowledge space.
A Board is the fundamental unit of memory in Index. Each Board is a named, visual space containing everything Index knows about a specific topic, project, or domain — not a folder of files, but a compressed, semantically indexed surface of structured entries.
Boards stay dense and accurate rather than ballooning into noise. The Memory Engine ensures that — automatically.
- Personal — private to one user — or Team-scoped with member roles
- Semantic search across every entry inside a Board
- Pinnable, archivable, mergeable, splittable
- Source-attributed entries — which AI wrote what, when
- Manual edit, merge, and delete with full audit trail
- Visual cards on the dashboard — entry count, contributors, last update
The central write pipeline.
Every piece of information that enters Index passes through the Orchestrator before it reaches a Board. It runs a five-step pipeline on each entry — classify, route, deduplicate, embed, merge — then decides whether the updated Board state warrants activating the Proactive Engine.
Hybrid by design. Straightforward cases are handled by fast, deterministic logic. Ambiguous cases escalate to a lightweight language model that can reason about the content.
- Hybrid routing — deterministic fast path + Claude Haiku for ambiguous cases
- Cosine-similarity dedupe against existing Board entries
- Cross-Board operations as scheduled jobs — compress, merge-scan, split-scan
- Every decision is logged — classify, route, merge, trigger
- Conflict detection for entries that contradict prior memory
- User-inspectable audit trail per Board
Semantic storage that compresses itself.
The Memory Engine is the core technical layer of Index. It stores every Board entry in a semantically indexed database and serves relevant context back to AI apps in milliseconds. It does two things beyond simple storage: deduplication and compression.
When multiple AI apps write similar knowledge to the same Board, the engine merges them. When a Board grows dense, the engine generates summary layers — condensed representations that keep retrieval fast.
- pgvector + HNSW approximate nearest-neighbor search
- Cosine similarity ranking with recency and frequency boost
- Background compression of Boards above density thresholds
- Auto-merge of duplicate entries inside the same Board
- Asyncpg pool — sub-millisecond reads at typical Board sizes
- Vector backfill command for migration from legacy stores
Ambient intelligence, never intrusive.
The Proactive Engine is what makes Index a proactive system rather than a passive archive. It continuously scans the knowledge across your Boards, looking for patterns, trends, connections, and actionable signals — and surfaces them as ambient cards on the dashboard.
No push notifications. No interruptions. Suggestions live on the dashboard. You engage with them on your own terms.
- Reminders — intent you noted but never acted on
- Recommendations — patterns in your interests and habits
- Connections — links between Boards you may not have made
- Alerts — significant or contested entries in Team Boards
- Triggered only when Board state changes meaningfully
- Dismissible, snoozable, fully user-controlled
An open protocol for every AI you use.
A Connector is the integration between Index and an external AI app. Each Connector has two capabilities — write (the AI pushes knowledge into Boards) and read (the AI retrieves relevant context before responding). Permission-scoped, revocable, auditable.
Index ships official Connectors for the major AI apps. Anyone can build their own using the open Connector API or the MCP stdio server. The protocol is the product.
- REST API with X-API-Key: idx_… authentication
- Per-key scope — read-only, write-only, or read-write
- MCP stdio server for Claude Desktop and MCP-capable clients
- OpenAPI schema importable into any compatible tool
- Per-key rate limiting and full audit trail
- Instant revocation at the user level
Learn from behavior, not just input.
The Passive Learning Module is an optional, permission-gated feature that lets Index learn about you from how you actually use your devices — not just from what you type into AI apps. It closes the gap between what users discuss with AI and what users actually do.
Privacy is designed in, not bolted on. Raw screenshots are never stored or transmitted. Only extracted signals are processed and written into Boards.
- Low-frequency screen sampling, on-device processing where possible
- Pause, exclude apps, exclude domains — at any moment
- Full log of every passively collected signal, inspectable in dashboard
- Permanent deletion with one click — nothing recoverable
- Off by default. Always permission-gated. Never trained on.
- The same Orchestrator pipeline applies to passive signals
Collected
- Topic signals from URLs
- Domain categories
- Frequency of visit
- App-usage patterns
Never collected
- Raw screenshots
- Keystrokes
- Page content
- Form input
Built on infrastructure you'd choose yourself.
FastAPI on Python 3.12. Postgres with pgvector for the semantic store. Anthropic Haiku for orchestrator routing. OpenAI text-embedding-3-small for embeddings. Stripe for billing. MCP for native client integration. Every choice is the boring one — because memory is not where you take risks.
Two lines of curl, one new AI app online.
The Connector API is the surface every external AI app speaks. Create an API key in the dashboard, scope it, and any tool that can speak HTTP can write to and read from your Boards.
curl -X POST https://api.index.example/api/v1/connector/capture \ -H "X-API-Key: idx_••••••••••••••••••••••••" \ -H "Content-Type: application/json" \ -d '{ "topic": "music production", "text": "User runs Ableton Live 12 with Push 3. Prefers analog-style synths.", "tags": ["ableton", "hardware", "preferences"], "confidence": 0.92, "importance": 7 }' # → 201 Created # { # "query": "music production", # "selected_count": 1, # "written_count": 1, # "attempts": [{ "board_name": "music-production", "match_score": 0.94, ... }] # }
curl "https://api.index.example/api/v1/connector/context?board_id=brd_••••&query=synth+setup" \ -H "X-API-Key: idx_••••••••••••••••••••••••"