Local-first memory infrastructure for coding agents.
Memoryd is a Rust daemon project for turning Codex CLI, Claude Code, Axinite, and manual session history into evidence-backed memory. The implementation is still at scaffold stage; the current repository defines the product boundary, architecture, ADRs, and RFCs that will drive the daemon, collector, and MCP front end.
- Keep context recoverable: preserve useful coding-agent decisions after a session is split, compacted, or closed.
- Treat logs as evidence: keep provenance, epistemic status, retractions, and source references instead of flattening everything into vector search.
- Stay local-first: use local storage and local model providers by default for sensitive repository and transcript data.
- Integrate without lock-in: adapt Codex CLI, Claude Code, Axinite, and manual imports through provider adapters.
Clone the repository and build the scaffolded binary:
git clone https://github.com/leynos/memoryd.git
cd memoryd
make buildRun the current application stub:
cargo run --quietExpected output:
Hello from Memoryd!
For the full local validation workflow, run:
make all- Standalone daemon design for
memoryd,memoryd-collector, andmemoryd-mcp. - Provider-neutral evidence inbox for Codex CLI, Claude Code, Axinite, and manual imports.
- Projection model for episodes, semantic carriers, facts, profiles, and themes.
- Storage boundaries for Qdrant, Oxigraph, Ollama, Chutoro, and the local evidence store.
- MCP front-end design modelled on Dear Diary, with recall, explain, store, retract, sessions, import, profile, and health tools.
- ADR and RFC set covering serving indexes, extraction, theme ownership, recall gating, materialization, and promotion rules.
The full architecture is defined in the Memoryd design and the supporting ADR set. The most important implementation boundary is recorded in ADR 005: Hexagonal architecture boundary. Domain and application code own the memory rules, use cases, and port traits; adapters own provider parsing, local persistence, Qdrant, Ollama, Oxigraph, Chutoro, MCP, UDS, loopback HTTP, and filesystem watching.
Port traits are the contract between those layers. Application services such as ingestion, recall, curated memory storage, retraction, session listing, and purge depend on domain-owned ports and domain value objects. Infrastructure adapters implement those ports and translate external types into canonical evidence, episode, projection, recall, audit, and health concepts. This keeps the core testable without running storage engines, model servers, vector indexes, graph stores, clustering runtimes, or MCP transports.
Tenant isolation is a first-class part of the same boundary, as recorded in
ADR 006: Tenant isolation and Corbusier context.
Tenant-owned use cases carry an authenticated request context, and the
normative memory scope is (tenant_id, workspace_id). Storage rows, Qdrant
payload filters, Oxigraph named graphs, Chutoro checkpoints, audit records, and
purge plans all preserve that scope so local single-user deployments and
Corbusier-style multi-tenant deployments exercise the same isolation contract.
Conversation ingestion follows
ADR 007: Standard conversation ingestion port.
All producers emit the same canonical conversation delta, but the application
ports separate trust and sequencing semantics: ConversationPushIngestPort
handles authenticated push producers such as Corbusier, Axinite outboxes, and
manual MCP imports; CollectedConversationIngestPort handles worker-collected
batches from filesystem or pull-mode sources; and ConversationSourcePort is
the collector-facing discovery, tailing, snapshot, and replay contract for
Codex, Claude, Axinite pull mode, and future source adapters.
- Documentation contents - the full documentation index.
- Terms of reference - problem space, users, scope, constraints, and open questions.
- Memoryd design - standalone daemon architecture and implementation strategy.
- Roadmap - implementation phases, dependencies, and review-sized tasks.
- Users' Guide - generated project commands and local usage.
- Developers' Guide - contributor workflow and validation gates.
ISC Licence - see LICENSE for details.
Contributions are welcome. Please start with AGENTS.md for the repository workflow, code style, and validation requirements.