Skip to content
Open standard v0.1.0, hosted in private beta

One memory
for every AI app.

Your company's facts, departments and taste live in a folder of markdown files you own. ChatGPT, Claude, Cursor and Principia read it over MCP, a few hundred tokens at a time. The format is an open, portable standard.

One passport
ChatGPT
Claude
Cursor
Principia
What every app loads firstL0, 180 tokens
examples/acme/renders/l0.md180 tokens
# Acme
Acme sells calm invoicing software to small creative agencies.
mission: Make getting paid boring for agencies of 2 to 20 people
audience: Agency owners who hate chasing invoices
product: Acme Invoicing sends invoices and polite reminders on its own
goal: Reach $10k MRR by 2027-03
constraint: No paid ads until $10k MRR
likes: Plain, short copy with one idea per sentence (x4); Real customer quotes over stock imagery (x2)
dislikes: Growth-hack tone like "10x" or "crush it" (x3); Emojis in headlines
prefers: Stripe over PayPal for anything billing
avoid: Promising ship dates in public (x2)
departments: Engineering (Builds and runs Acme Invoicing); Marketing (Tells agencies Acme exists, in Acme's calm voice)
The Acme example passport, rendered exactly as an agent receives it.

Open Passport is a company memory you can read, review and take anywhere, served to every AI app over MCP.

Start from a ChatGPT export
$ open-passport import chatgpt.zip --into ./acme --propose

Then add one MCP URL to your apps: https://open-passport-jk24ip6aka-uc.a.run.app/v1/passports/<id>/mcp

How it works

From plain files
to every app.

Four layers over one folder. The files are the source of truth; everything above them is rules about who writes, who reads and how much.

Read from the base up: 01 is the folder, 04 is what an app receives.

  1. 01

    The vault

    A folder of Obsidian-compatible markdown notes: the company card, departments, people, decisions and taste. One fact per line, each with an id, who wrote it and the date. A replaced fact moves to the note's dated History instead of being overwritten.

    - [decision] Use Stripe for invoices and payouts; PayPal only on request (user, 2026-09-20) ^f-decibill01
    - [superseded] Long-form storytelling emails (by ^f-tastelik01; user, 2026-10-12) ^f-tasteold01
  2. 02

    Proposals and review

    Apps and importers propose; a person accepts or rejects. Nothing is written silently unless you mark an app as trusted. Keys, tokens and passwords are refused before they are stored.

    remember  →  { "status": "proposed", "proposal": "pp-1a2b3c4d5e6f7a8b" }
  3. 03

    Departments and scopes

    Each department keeps its own charter, people, processes and taste. Every app gets a grant for the company card plus the departments you choose, and you can revoke it any time.

    read:l0   read:department:marketing   write:proposals
  4. 04

    Load the company in 180 tokens.

    Every app reads the same three tiers: the card is always loaded, one department's slot is loaded for the task, everything else is searched when needed.

    L0Company card180 of 300 tokens
    L1Marketing slot126 of 600 tokens
    L2Everything else1,451 tokens, on demand

    An agent working for one department starts with at most ~900 tokens. Acme's marketing agent starts with 306.

Set up

Set up in three steps.

Web apps add your passport by URL and sign in with OAuth. Desktop apps and coding agents can also run it locally over MCP.

  1. 01

    Build your passport.

    Import what you already have: a ChatGPT or Claude export, Notion, Obsidian, your website. Or let Principia keep it as you work. Then review what came in.

    Terminal
    $ open-passport import chatgpt.zip --into ./acme --propose
    $ open-passport proposals ./acme
  2. 02

    Get your MCP URL.

    Upload it to the hosted Passport, or self-host the same server. Each passport gets one endpoint for every app.

    MCP URL
    https://open-passport-jk24ip6aka-uc.a.run.app/v1/passports/<id>/mcp
  3. 03

    Add it to your apps.

    chatgpt.com/plugins → + → Add custom MCP server. Paste the URL, choose OAuth, then Create.

    Add custom MCP server
    Name  Acme Passport
    URL   https://open-passport-jk24ip6aka-uc.a.run.app/v1/passports/acme/mcp
    Auth  OAuth

Each app signs in and asks what it may see: the company card (~180 tokens), each department, everything on demand. What it learns comes back as a proposal you accept. Revoke any app any time.

Full setup guide
What you get

Six things it does,
and only those.

You own it.

Plain markdown in a folder you keep, under an open specification. Run it locally, self-host the server, or use the hosted Passport.

Private per department, shared where allowed.

Each app sees the company card and only the departments you granted it. Shared answers still work where the grant allows.

Erasure you can check.

A retracted fact leaves every render. On the held-out test, 55 of 58 erasures left nothing behind, derived summaries included.

Remembers taste, with evidence.

Likes, dislikes, preferences and hard nos, each with an example and a count of how often it was confirmed.

Knows what was true when.

Every line carries who wrote it and the date. Replaced facts move to a dated History, so the old value is still on record.

Works in every app.

MCP with OAuth for ChatGPT and Claude, stdio for desktop apps and coding agents, REST for your own code. The same six tools everywhere.

The six tools

The same small surface in every app, filtered by what the app was granted.

passport_context
~300 + ~600 tokens
The company card plus one department. Models call it first.
get_department
~600 tokens
Another department's slot.
search
small
Keyword search over every note, in the shape ChatGPT expects.
fetch
≤ 8000 chars
One note by id.
remember
proposal
One lasting fact, on the note it is about.
taste
proposal
A like, dislike, preference or hard no, with its example.
Every app

One memory for every app.

Not a copy per tool. Every app reads the same passport, so a fact fixed once is fixed everywhere.

  • ChatGPT

    Added as a custom MCP server with OAuth. Search and fetch serve deep research; writes on Business, Enterprise and Edu.

  • Claude

    A custom connector in Claude.ai, Desktop and the mobile apps. Reads and writes.

  • Coding agents

    Claude Code, Cursor, VS Code, Codex, Windsurf and Gemini CLI run it locally over stdio, or use the URL.

  • Principia's company agents

    Built in: the company vault is the passport, kept current as the agents work.

  • Your own apps

    REST with a scoped key, or a plain-text or AGENTS.md render for any prompt.

Taste

It remembers what
your people like.

And what they sent back. Likes, dislikes, preferences and hard nos, each with evidence and a count of how often it was confirmed. Taste ranks ahead of ordinary facts, so every agent writes in your voice from the first draft.

  • Every taste links an example
  • Seen again, its count goes up
  • Company, department, or one person's own
  • Inferred taste waits for your review
taste.mdAcme, company scope
likes

Plain, short copy with one idea per sentence

example: [[Launch email v2]]

x4
dislikes

Exclamation marks in subject lines

example: "sent back: drop the !!"

x1
prefers

Stripe over PayPal for anything billing

example: [[Billing provider]]

x1
avoid

Promising ship dates in public

example: "we got burned in May"

x2

Evidence first. Seen again, a taste is reinforced, not duplicated.

In use

Runs the company memory inside Principia.

Principia runs AI agents for a company. Each company's vault there is an Open Passport, so the format is used every day, by agents, on real work.

  • The same line ids, dates and History as any passport
  • What agents learn lands in the Inbox as proposals to accept
  • Imports become Inbox proposals too
  • Passport → Use in other apps serves the same folder to Claude, Cursor and the rest

The hosted Passport is in private beta. We have no outside case studies to show yet.

How it compares

Measured against
Mem0 and vector search.

One held-out test, run once on 26 October 2026, on data sealed before Open Passport was frozen. Open Passport did not beat Mem0 or per-department vector search overall. The losses come first.

Every system used the same answering model, embedder and answer prompt. Mem0 2.2.1, open source, in its best configuration per test.

Where it loses, held-out

  • 143/300vs Mem0 205/300

    LossReal company history. Per-department vector search 220, plain vector search 221. This loss decided the test.

    Kubernetes enhancement-proposal history, unseen until the test; 300 questions

  • −4.3points vs Mem0

    LossDurable facts after 24 months of company activity.

    300 questions; 95% CI −7.0 to −1.7

Where it wins, held-out

  • +37.6points vs Mem0

    WinHouse style: answers in the company's own voice. +18.0 against per-department vector search.

    180 questions; 95% CI 33.6 to 41.5

  • 55/58vs Mem0 1/58

    WinErasures with nothing left behind, derived summaries included. Per-department vector search 46/58.

    58 erasure requests

  • +12.2points vs Mem0

    WinCurrent preferences, when the system knows who is asking.

    576 questions; 95% CI 6.9 to 17.5

Development set only

Measured on development-set data Open Passport was tuned on. Indicative, and it favours Open Passport.

  • 14/16vs 0/16

    DevelopmentShared cross-department answers right, with 0 leaks in 24 probes. With their own per-department scoping on, the others also leaked 0–1, and answered none. Private and useful, not fewer leaks.

    Development set, study 2; 16 shared questions, 24 leak probes

Every number, the method, and where we don’t win yet
FAQ

Questions people ask first.

Does it work with my agent or app?
If it speaks MCP, yes. ChatGPT and Claude.ai connect to the hosted URL with OAuth. Claude Desktop, Claude Code, Cursor, VS Code, Codex, Windsurf and Gemini CLI can also run it locally. Anything else can use the REST API, or paste a plain-text render into its prompt. In ChatGPT, writes need a Business, Enterprise or Edu plan; Plus and Pro are reported read-only. Setup guide
How is it different from Mem0 or vector search?
You get a readable folder you own instead of an index, with departments, per-app grants, review before anything is written, taste with evidence, and erasure that held up on the held-out test. It is not better at everything: on raw recall of real company history it lost clearly to Mem0 and to vector search, 143 against 205 and 220 out of 300.
Local, self-hosted or hosted?
All three. Locally, open-passport mcp serves a folder to desktop apps over stdio. To self-host, run the reference server as one container (Docker, Fly.io or Render). The hosted Passport runs the same server for you and is in private beta.
Can I read and edit the memory?
Yes. It is markdown with a small line grammar, and it opens in Obsidian or any editor. Edit by hand, then rebuild the renders; the stable line ids mean copies edited elsewhere still merge line by line.
What does it cost?
The standard, the local tools and self-hosting are free. Hosted plans are priced per company, not per seat, and the prices are not final yet. Pricing
Import

Start from what
you already have.

Importers pull out first-person facts and taste, skip secrets and contact details, and hand you the result to review.

Import → candidates, deduplicated and ranked → proposals → you accept or reject. Nothing is written silently.

ChatGPT export

Custom instructions, saved memories and your own messages.

Claude export

Your messages, project instructions and project docs.

Notion & Obsidian

Any exported workspace or markdown folder.

Your website

Homepage and About page become a company card draft.

Pasted text

A brief, a memory dump, notes from a call.

Principia

Your company vault, kept current as you work.

Open standard + hosted

A bundle and an endpoint.
Like Git and GitHub.

Yours, in plain files.

Open spec

A passport is a folder or a .passport.zip any tool can read. No database, no embeddings, nothing executable.

  • A normative specification, JSON Schemas and conformance tests
  • Reference implementation in TypeScript, zero dependencies
  • Stdlib-only Python reader
  • Stable line ids, so improved copies merge line by line

One URL for every app.

Private beta

We run the reference host for you: a remote MCP endpoint per passport, ready for ChatGPT and Claude, synced with Principia.

  • OAuth 2.1 "Connect your Passport" with per-scope consent
  • Scoped, revocable grants per app and department
  • Proposals inbox and an append-only audit log
  • Or self-host the same server: one container

Proposals, not silent writes

What apps learn waits for you, unless you trust that app.

Secret screening

Keys, tokens and passwords are refused before they are stored.

Least privilege

Each app sees only the tiers and departments you allowed.

Audited

Every request and tool call is logged per passport.

Give every AI your business uses the same memory.

The hosted Passport is in private beta. The standard is open today.

Early access to the hosted Passport. Or write to hello@openpassport.example

Ask an assistant about Open Passport.