OneSelf Gives Every AI a Single User-Owned Context Profile
Most agent memory lives inside a vendor's platform, with no export and no revocation. OneSelf demonstrates a self-hosted pattern where identity data stays on your machine, and agents are granted scoped, human-approved access that can be withdrawn at any time.
Every AI interaction still starts with a self-introduction: your stack, your tastes, your history. That personal data usually ends up locked inside one vendor's memory system. OneSelf turns it into a user-owned layer. The system stores context as Markdown pages and attachments, keeps the originals in S3-compatible object storage, and projects parsed metadata into PostgreSQL for search. Agents discover an instance through `/.well-known/pcp`, then read and write over HTTP or MCP, but each permission is scoped per source directory, approved by a human, and revocable per key.
On the protocol side, a single operation registry in `packages/operations/src/registry.ts` drives both HTTP routes (with OpenAPI) and MCP tools, so the two interfaces can't drift. Key creation is HTTP-only and requires owner identity, so an Agent can't mint its own credentials. Authorization supports API keys and OAuth 2.1 device code, and facts carry confidence scores and validity dates, so an Agent knows when to doubt data. Edits are versioned (50 versions per page) and deletions are soft for 30 days. The stack is TypeScript on Node 24 with Hono 4, React 19, PostgreSQL 18, and RustFS, and a one-line installer sets it up with Docker Compose.
Keeping key creation and revocation off the MCP surface is a clean, enforceable way to prevent an agent from escalating its own access; most agent APIs treat key management as just another tool, which invites self-granted privileges.
Relying on confidence scores and validity periods treats agent-maintained data as probabilistic rather than authoritative; that's a more honest model than the typical "remember everything" memory store.
The single operation registry that generates both OpenAPI and MCP is the pragmatic answer to dual-interface drift; it makes consistency a property of the code, not a discipline.