Say you've spent three days working through a complex research problem with an AI assistant. Each session, you paste your prior notes into the chat so the model has context. On day four, the context window is full again, and the model acts like it has never seen your work before. Your notes, references, and decision history are trapped in conversation logs on someone else's servers, formatted in ways you cannot query or reuse. For anyone running multi-session AI workflows with sensitive or domain-specific material, this cycle of re-introduction and data amnesia is the core friction point.

How submarine addresses it

Submarine, built by DenAB-NVS, positions itself as a sovereign, depth-adaptive AI memory layer. The "sovereign" part means the memory store belongs to the user — it lives locally, not on a third-party server. The "depth-adaptive" concept refers to the system's ability to retain information at varying levels of abstraction. Instead of storing raw conversation logs verbatim, submarine appears designed to let memories exist at different granularities, so the system can recall a high-level summary or a specific detail depending on what the current task demands.

Being model-agnostic is central to the architecture. Rather than coupling itself to a single LLM provider, submarine aims to sit between the user and whatever model they choose to run. If you switch from one model to another, the memory layer persists independently. This decoupling matters for anyone who experiments across models or wants to avoid vendor lock-in with a single API provider.

The local-first principle means no data leaves the user's machine by default. For researchers, writers, or developers working with confidential material, this eliminates the compliance overhead of routing sensitive context through external services. The project is written in JavaScript, which lowers the barrier to inspection and contribution for a broad pool of developers.

Trying it out

The project's source repository at GitHub includes setup instructions in its README. Because submarine is a JavaScript project, installation typically involves cloning the repository and installing dependencies via npm. The project also maintains a website at causalmemory.org with additional documentation on the underlying concepts. Prospective users should consult the repository directly for the most current setup steps, as the project is under active development and the recommended workflow may evolve between releases.

What it doesn't do

Submarine is an early-stage project — it sits at roughly 168 GitHub stars at the time of writing, which signals a small community and a codebase that is still maturing. There is no indication that it currently offers multi-user or team-oriented features like shared memory spaces, role-based access control, or administrative dashboards. It is not positioned as an enterprise knowledge-management platform.

The depth-adaptive memory model is compelling in concept, but the practical quality of memory recall — how well the system surfaces the right detail at the right abstraction level — will depend on the specific use case and the models paired with it. Users with very large or highly structured knowledge bases may find that early versions lack the indexing or retrieval sophistication of more mature solutions.

It is also worth noting that, as a local-first tool, submarine places storage and compute responsibility squarely on the user. For teams accustomed to managed cloud services, this trade-off means taking on infrastructure work that a hosted alternative would handle.

Who should consider it

Submarine makes the most sense for individual developers, researchers, or small teams who want a self-hosted memory layer that does not depend on any single AI provider. If your priority is owning your context, running everything locally, and keeping the freedom to swap models without losing accumulated knowledge, this project's philosophy aligns well with those requirements. Alternatives like Mem0 or external vector-store setups offer some overlapping functionality, but they often come with different assumptions about where data lives and how tightly it couples to a specific model or service. Submarine's distinctiveness lies in combining local sovereignty with model flexibility in a lightweight JavaScript package. For anyone willing to work with an early-stage tool in exchange for architectural control, it is worth a closer look at the repository.