GuardianMemory

Privacy and limits

A memory bank is only worth having if you can see everything in it and stop anything reading it. Here is exactly what is stored, where it goes, and what the free caps are.

What is stored

DataWhy
Your email and a password hashSigning in to the web app, and sending you a reset link if you forget the password
Each memory: the sentence, its tags, its source, who wrote it, and a 768-number vectorThe memory itself, and searching it by meaning
Recall count and last recalled time, per memoryOrdering your profile by what actually gets used
An activity row per operation: action, surface, client name, outcome, result count, durationThe Activity page, and the usage caps
API keys and OAuth tokens, stored as SHA-256 hashesAuthentication. The plaintext of a key is shown once and never again

Memories belong to a bank. Your personal bank is yours alone — no other account can read it. A team bank is readable by its members and nobody else, and an assistant that can write to one is unable to read your personal bank at all, so nothing private can cross into a shared bank. Somebody can be given read-only membership of a team bank: they see everything in it and no assistant they connect can add to it.

Where memory text goes

Two services, and nowhere else:

Everything else — storage, search, the web app — happens inside GuardianMemory's own database. The one other message that ever leaves is a password reset email, sent to the address you signed up with; it carries a link and says nothing about your memories.

Do not store secrets. Assistants are told this in their instructions, but it is worth repeating: passwords, keys and card numbers do not belong in a memory bank. GuardianMemory is a place for durable facts, not a vault.

Control you actually have

Usage caps

GuardianMemory is free while we learn what people need. Every create and every search costs one embedding call, so the caps are what keeps that sustainable.

CapDefault
Stored memories per bank, personal or team5,000
Creates and searches per account, per 24 hours2,000

Reading your profile is free and counts against neither. When a cap is reached, MCP tools return a readable message the assistant can pass on, and the REST API answers 429. Attempts that were refused are logged but never counted against the cap. Your standing is shown on the memories page and in GET /api/me.

Running your own

GuardianMemory is a small PHP application with no framework and no dependencies beyond PostgreSQL with pgvector. If you would rather the data sat on your own infrastructure, the repository's README covers running it with Docker locally and deploying it for real. The caps, the admin usage report and the invite-only mode are all configuration.