fforget
81.8% on LongMemEval — above Mem0 & Zep, 100% local →

Tell Claude Code once.
Cursor remembers.

One memory for your AI — decisions, preferences, project context — in a SQLite file on your machine. We couldn't read it if we tried.

pip install 'forget-ai[server]' && npx forget-connect
~/your-repo — claude MEMORY ON
$ claude ▸ forget · session capsule Current goal: beta-launch — Show HN Next: record the demo video Open loop: "sent the pricing inquiry" — 6 days, unverified > ⏺ forget · search_memories Paddle was chosen as merchant of record — KYB review passed, and it handles global tax remittance for you. [decision · Jul 13 · via Claude Code] > ⚠ conflict zone — a later fact supersedes this ✗ "payments provider is Stripe" Jul 2 · superseded ✓ "Paddle is merchant of record" Jul 13 · receipt

This is the product. The capsule, the receipt, and the conflict alert are real hook output.

Using an AI agent? forget's llms.txt has setup instructions for LLMs.

WORKS WITH
01 · Proof

Don't take our word for it.
Take the benchmark's.

LongMemEval, the standard long-term-memory benchmark. Full 500-question set, GPT-4o reader for every system.

Mem0
49.0%
Zep
63.8%
forget
100% LOCAL
81.8%
GPT-4o oracle
82.4%

Knowledge-update questions — where memory products usually fail because stale facts survive: 92.3%

The oracle row is GPT-4o reading the full transcript — the ceiling for any memory system on this protocol. Mem0 and Zep as published; forget measured on the identical question set, with memory building and retrieval running entirely on-device. Methodology and raw runs →

02 · The product

You don't ask it to remember.
It speaks up.

Three surfaces the hooks put in front of you — real output, not concept art.

Every session opens briefed

The capsule: your goal, next action, parallel work, and any claim that's gone stale.

▸ SessionStart · capsule Current goal: beta-launch — Show HN Next: record the demo video Parallel: yc-application — due Sun Open loop: "sent pricing inquiry" recorded 6 days ago, unverified

It catches contradictions

About to act on a fact that was later corrected? Both versions, labeled, before you commit.

▸ mid-conversation · push recall ⚠ conflict zone — two versions ✗ payments provider is Stripe Jul 2 · superseded ✓ Paddle is merchant of record Jul 13 · decision · receipt

One command tells the truth

Config, rules, hooks, scope, and a live MCP round-trip — checked end to end.

$ npx forget-connect doctor Hooks: registered, python3 ok Claude Code: rules current Codex: rules current Scope: verified MCP: forget-mcp · 42 tools
03 · How it works

Sixty seconds to install.
Zero behavior change.

  • 01

    Install once

    One local server, one connect command. Your existing MCP setup is preserved and backed up; disconnect reverses everything.

  • 02

    It remembers quietly

    Decisions surface from your conversations and your git history. The observation gate keeps facts and forgets junk — nobody writes documentation.

  • 03

    It speaks up before you ask

    A context capsule opens every session with your open work. Relevant memories are pushed mid-conversation — and a conflict alert shows both versions when a fact was later corrected.

  • 04

    Ask "why" from any tool

    Claude Code, Cursor, or Codex — the answer comes back with the commit or conversation that decided it. Sync arrives sealed E2EE · IN DESIGN

Your model provider already reads your prompts. There is no reason your memory layer should be a second reader.
04 · Why local

Memory is not a chat log.
It is a profile of you.

A compounding one — and today it lives on other people's servers.

01

It is not privileged.

In February 2026, a US federal court ruled that a defendant's AI conversations were not protected — the provider's terms said data could be used for training and disclosed. What you tell an AI is, legally, what you told a company.

U.S. v. Heppner, S.D.N.Y. 2026
02

Your memory vendor will change hands.

Rewind promised local-first privacy, pivoted to the cloud, and was acquired — its users were migrated onto the acquirer's terms overnight. Every startup holding your memories is one term sheet away from being someone else's database.

Rewind → Limitless → Meta, 2025
03

The platforms will not fix this.

A model provider cannot end-to-end encrypt memory its own servers must read, and it will never port your memory to a competitor's tool. Native memory features are silos by design.

structural, not a roadmap gap
05 · The field

Where forget stands

forget Mem0 Zep Native memory
LongMemEval, full 500 81.8% 49.0% 63.8% unpublished
Where your memory lives your machine, always cloud (self-host option) their cloud provider servers
Trust label on every read
Decision receipts from git
Session hooks: capsule · push recall · conflict alerts
Follows you across tools Claude Code · Cursor · Codex via MCP via SDK one vendor's silo
Open source Apache-2.0 core only

Competitor properties as publicly documented, July 2026. Corrections welcome — open an issue.

06 · Roadmap

Works now. Sealed next.

SHIPPED · OPEN SOURCE

Runs on your machine today

  • 81.8% on LongMemEval (full 500 questions, local-only)
  • Hooks push memory into sessions — capsule, recall, conflict alerts
  • One SQLite file you own — offline included
  • Mines your repo's decision history from git
  • Observation gate keeps facts, forgets junk
  • MCP: Claude Code, Cursor, Codex, Claude Desktop
IN DESIGN · E2EE SYNC

Sync that cannot betray you

  • Encrypted on your device before it touches a server
  • Embeddings encrypted too — a vector is a paraphrase
  • Scoped layers: grant a session your work memory only
  • No passwords — device keys plus a recovery code

No spam — launch news only.

07 · Honesty

What we won't pretend

  • The model you use still sees plaintext. It has to, to use your memories. Encryption protects you from storage providers — including us — not from the AI you deliberately hand a memory to.
  • Cloud extraction is a disclosed trade-off. We default to local processing and label the alternative instead of hiding it.
  • Lost devices plus lost recovery code means lost memories. We can't reset what we can't read. That is the price of the guarantee.
08 · FAQ

Questions, answered straight

Is my memory really local, or "local until it isn't"?
Everything lives in one SQLite file at ~/.forget — storage, search, and memory building all run on your machine, offline included. The 81.8% LongMemEval score was measured with building and retrieval running 100% on-device, so local isn't a demo mode; it's the configuration we benchmark. There is no account, no telemetry, and no server of ours in the loop.
How is this different from ChatGPT or Claude's built-in memory?
Built-in memory lives on the provider's servers, works only inside that vendor's products, and shows you conclusions without provenance. forget is the opposite on all three: your machine, every tool that speaks MCP (Claude Code, Cursor, Codex, Claude Desktop), and every answer carries a receipt — the commit or conversation that decided it, plus a trust label telling your agent whether it's safe to act on.
What happens when a fact changes?
The old fact isn't deleted — it's superseded, keeping its history and turning red (reference only). The new fact links back to what it replaced. And if you're about to act on the stale version mid-session, the conflict alert shows you both, labeled, before you commit. Memory that silently overwrites itself is how agents confidently do the wrong thing.
What are the trust labels for?
Provenance, made actionable. Green: you said it or a tool observed it — safe to act on. Yellow: an agent inferred or self-reported it — verify before acting on it in the real world. Red: superseded. Agents treat their own summaries as gospel; the labels are what stop an unverified "I sent that email" from becoming a follow-up to an email that never existed.
Does anything ever leave my machine?
Not by default, and never silently. Local processing is the default; pointing extraction at a cloud model is an explicit, labeled opt-in. When E2EE sync ships, memories will be encrypted on your device before touching any server — ours included — so even then, what leaves your machine is ciphertext.
What does it cost?
The local product is free and Apache-2.0 open source — that's permanent, not a promotional period. End-to-end encrypted sync across your devices will be the paid layer when it ships. You never pay for your own machine remembering things.
How do I get rid of it?
Completely, in two steps: npx forget-connect disconnect restores your original configs from backups and removes the hooks — third-party settings are preserved byte-for-byte. Then delete ~/.forget and your memories are gone. No account to close, no export request, no retention window. It's your file.
What's supported today, honestly?
macOS and Linux; Claude Code, Cursor, Codex, and Claude Desktop via MCP. The hooks layer (session capsule, push recall, conflict alerts) runs on Claude Code today. Not shipped yet: Windows, E2EE sync, hosted anything — the same list we publish in llms.txt.
09 · Trajectory

Shipping in the open

  • Jul 24Public beta. forget-ai 0.2.0 on PyPI, forget-connect 0.3.0 on npm — with a login service that survives reboots.
  • Jul 22Hooks + trust labels. Session capsule, per-turn push recall, conflict-zone alerts; every read carries green / yellow / red.
  • Jul 16LongMemEval full-500: 81.8%. Memory building and retrieval 100% local, within 0.6pp of the GPT-4o full-context ceiling.
  • Jul 13Git decision miner. A repo's history becomes memory — "why did we choose X?" answered with commit receipts.
Follow along on GitHub →
Why name a memory product "forget"?

Because memory that cannot be deleted is surveillance. Ours forgets on command.

Supersede, retire, delete — every fact in forget can be struck through, and the strikethrough keeps the history. The logo is not a joke about the product. It is the product.

Building AI for therapy, law, or health?

Your users' memories are your liability. A memory layer you cryptographically cannot read can't leak and can't be compelled. We're taking design partners.

Talk to us

Give your AI a memory
in sixty seconds.

pip install 'forget-ai[server]' && npx forget-connect