PAMbaseDocs
Overview

What is PAMbase?

PAMbase is a shared memory layer for AI apps. Each user has one private memory — the facts, preferences, and history that make them them — and they can grant any app permission to read from and write to it. Think “Sign in with Google,” but instead of an identity you get the user's memory.

The payoff for you: your app knows the user from the very first interaction — no blank-slate onboarding, no “tell me about yourself” forms — and anything it learns is available to the next app the user connects. You never run a vector database, build a consent UI, or write a memory-extraction pipeline; PAMbase does that and hands you a clean API.

The one-sentence mental model
PAMbase stores the memory (what's known about the user). Your app brings the persona (how your assistant looks, sounds, and behaves). The two never get tangled.

The example we'll build: Margin

To keep things concrete, these docs follow one example app the whole way through: Margin, a reading companion. In Margin you save highlights from articles and books; it learns what you're into; and a built-in chat recommends what to read next. Every concept below shows how Margin uses it, so you always see the idea in action — not in the abstract.

How an integration works

Every PAMbase app follows the same four moves, whatever you're building:

  1. Connect — you add a “Continue with PAMbase” button. The user approves a list of scopes (the specific permissions you asked for, like “read my reading notes”), and you receive a connection token (the credential your server uses to call the API for that user). Connect flow →
  2. Recall — pull what's relevant about the user as natural language and let your LLM interpret it; or a ready-to-use brief for grounding. Remember & recall →
  3. Remember — write what you learn as plain-text memory (e.g. “user saved this highlight”), categorized by scope so other apps can recall it. Remember & recall →
  4. React (optional) — emit a signal or subscribe to one, so your agent acts the moment something changes. Signals →

The smallest useful integration

Once a user has connected Margin, a single call gives you a brief — a short, plain-language summary of the user, built from their memory — ready to drop into any LLM so your replies are personal from message one:

typescript
const system = await pambase.systemPrompt();
// → "Reads widely on systems design and product; prefers long-form essays;
// currently working toward reading 24 books this year."
//
// Pass it straight into your model's system prompt — your reading
// recommendations now sound like they actually know this person.

Why a shared memory matters

Because the memory belongs to the user, not to any one app, value compounds across apps. Say Margin notices you keep saving essays about distributed systems and records that as a preference. Later you connect a newsletter app and grant it permission to read your preferences — it curates your first digest correctly without asking a single onboarding question, because Margin already taught the user's memory what they like. Neither app integrated with the other; they only ever talked to the user's memory.

What PAMbase is not

  • Not a persona builder. Users don't design archetypes or personalities here — that's your app's job. PAMbase only holds what's known about the user. Why →
  • Not a single chatbot. It's a memory layer that many apps share, with the user in control of who sees what.
  • Not just a vector database. Tools like Mem0 or Pinecone are storage you'd run yourself; PAMbase is the user-facing memory + consent product, with that storage built in.
  • Not closed. Any developer can integrate; the user picks which apps to trust and can revoke any of them at any time.

Next