Technical specifications

Native where it matters.
Composable where it counts.

PlatformmacOS 26+
LanguageObjective-C
AI tools22
TelemetryNone

Signal path

Two transports.
One native engine.

AI clientClaude · Codex · LM Studio
MCP transportstdio · HTTP · SSE
Objective-C engineTools · vectors · graph
Local persistenceCore Data · Core ML
Your iCloudOptional private sync

Platform & implementation

Native Mac software, all the way down.
Operating system
macOS 26 or laterBuilt for Tahoe-era platform APIs rather than a cross-platform compatibility layer.
Language
Objective-C throughoutNo Swift dependencies and no bridging headers. Dynamic dispatch fits the heterogeneous MCP tool surface.
Application frameworks
Foundation · AppKit · Core Data · CloudKitNative application lifecycle, interface, persistence, and optional private sync.
Graphics
Core Graphics · QuartzCoreNative drawing and animation for Archive Scope and its live graph.
Concurrency & IPC
Grand Central Dispatch · POSIX sockets · atomicsQueues, local Unix-domain sockets, kernel-arbitrated host election, and clean process coordination.
Distribution
Two sandboxed Mac application targetsES Archive MCP and ES Archive Server share the same engine while exposing different transports.

Persistence & knowledge model

One durable graph, not a pile of chat logs.
Local store
Core Data backed by SQLiteEntries and their structure remain in the application’s local sandbox container.
Optional sync
NSPersistentCloudKitContainerSynchronizes through the user’s private CloudKit database. ES Archive remains fully functional without iCloud.
Stored entities
Entries · revisions · vectors · tags · linksThe model also preserves marginal notes, external references, authorship, and embedder inventory.
Evolution
Automatic revision snapshotsChanges can retain their reason and be reconstructed as complete versions or compact deltas.
Relationships
Directional, typed graph edgesRelationships can carry verbs such as supports, contradicts, corrects, revises, elaborates, and answers.
Portability
Backup · restore · legacy importNative archive backup and restoration, including compatibility with legacy .esmemory backups.

On-device semantic engine

Meaning is computed locally.
Model
EmbeddingGemma 300MGoogle’s embeddinggemma-300m model, bundled with the application.
Execution
Core ML · fully on-deviceArchive content is never sent to a remote embedding service.
Quantization
Int4A compact model representation suited to local Mac inference.
Vector dimensions
768The active vector index is maintained locally and can be backfilled or rebuilt.
Languages
100+Multilingual vectors allow a query in one supported language to reach entries written in another.
Indexed representation
Title + retrieval summaryConcise authored summaries sharpen semantic retrieval without embedding every full entry body.

Retrieval architecture

Different questions deserve different axes.
Semantic
Vector similarity · optional recency focusConceptual retrieval can be scoped by curated tags and weighted toward a day, week, or month.
Lexical
Literal text · ICU regular expressionsExact passage retrieval includes line numbers and configurable surrounding context.
Temporal
Created · modified · accessedOldest or newest traversal across explicit windows and project scopes.
Relational
Typed links · semantic neighborsThe AI can follow authored relationships, filter by edge verb, or inspect nearby concepts.
Structural discovery
Popular · forgotten · lost · hubs · revised · discussed · hotDiscovery can question the Archive’s attention instead of reinforcing only recent recall.
Composition
Pipeline-based investigative lensesSemantic, lexical, temporal, graph, sorting, and slicing stages can be combined without changing the storage ontology.

MCP & session architecture

One engine, two ways to connect.
Protocol
Model Context Protocol · JSON-RPCTwenty-two AI-facing tools cover storage, retrieval, evolution, graph structure, identity, and upkeep.
ES Archive MCP
Newline-delimited JSON-RPC over stdioDesigned for Claude Desktop and Claude Code. It opens no HTTP listener.
Concurrent stdio sessions
One host engine · lightweight relaysThe first process wins a Unix-socket bind and hosts the engine; later sessions relay to it instead of loading duplicate stores and models.
ES Archive Server
Streamable HTTP · SSEA localhost transport for Codex, LM Studio, and other MCP-over-HTTP clients.
Persona identity
Per connection or per listening portAuthorship comes from the connection boundary rather than an untrusted name asserted inside a tool call.
Persona scope
Distinct views within a shared archiveEach persona reads and writes its own authored slice; the human can inspect an all-persona witness view in Archive Scope.

Local HTTP & security

Remote access is never accidental.
Server
Vendored GCDWebServerMaintained in-tree with six documented security hardening fixes.
Default bind
127.0.0.1 onlyThe Server app accepts local connections and does not expose itself to the network.
Remote access
Explicit cloudflared tunnelOptional exposure is delegated to a tunnel configured and controlled by the user.
Authentication
Per-persona Cloudflare Access JWTEach port can independently require edge authentication while other personas remain local-only.
Sandboxing
Mac App SandboxLocal data, entitlements, and application capabilities remain within the platform security model.
Telemetry
NoneNo analytics, developer service, or third-party embedding endpoint receives archive content.

Archive Scope

A native witness surface for a living archive.
Rendering
AppKit · Core GraphicsA native interactive visualization rather than an embedded web view.
Graph
Force-directed simulation at 60 HzRepulsion, spring attraction, centering, damping, and settlement are implemented in the application.
Edges
Explicit links + nearest semantic neighborSmall disconnected clusters are bridged to make the overall body of knowledge legible.
Live updates
Core Data fetched-results deltasInserts, edits, links, deletions, and tool access can update or animate the view as they happen.
Color
Attention heat or persona identitySingle-persona views show access frequency; the witness view gives each persona a stable palette.
Tag cloud
Archimedean spiral layoutTags are sized by frequency and update as the Archive’s vocabulary changes.

Operations & licensing

Published as a working instrument.
Index maintenance
Backfill · reindex · cleanThe engine reports vector health and can rebuild or remove stale index material deliberately.
Sync reconciliation
Entry · tag · embedder deduplicationMaintenance operations reconcile duplicate records that can arise through historical writes or multi-device sync.
Application modes
Dock app · optional minimal menu barThe host can expose Archive Scope and settings normally or run with a quieter interface.
Primary license
MITThe ES Archive source is published for inspection and understanding.
GCDWebServer license
BSD-styleThe vendored server retains its original license.
Source
github.com/apocryphx/ES-ArchiveImplementation and design-decision notes are available alongside the code.

Read the machinery

The implementation is part of the argument.

ES Archive is open source—not as a growth strategy, but so technically curious people can inspect the choices behind the instrument.