fforget
LongMemEval: 78.4% ± 0.4 fully local · three seeds →

Tell Claude Code once.
Codex remembers.

One memory across your AI tools — and every session opens already briefed: current goal, next action, what changed while you were gone. Local. Auditable. We couldn't read it if we tried.

curl -fsSL forget.sh | sh
or just tell your AI: “Install forget.sh” — this site explains itself to agents.
~/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 and judge for every row.

GPT-4o full-context
60.6%
forget · fully local, three seeds
100% LOCAL
78.4% ± 0.4
forget · with a cloud observer (optional)
81.8%
GPT-4o oracle
87.0%

Knowledge-update questions — where memory products usually fail because stale facts survive: 92.3% (cloud-observer config)

Baseline and ceiling are from the LongMemEval paper: full-context is GPT-4o reading the entire transcript with no memory system; oracle is GPT-4o handed only the evidence sessions. The local row builds and retrieves memory entirely on-device (Qwen 14B observer, v3 reader) — run three times with different seeds: 78.4, 78.8, 78.0. We publish the spread; nobody else in this market does. The optional cloud-observer config (GPT-4o) reaches 81.8%. Our weakest category is single-session-preference — it's in the runs too. Per-question outputs and configs →

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, Codex, or Claude Desktop — the answer comes back with the commit or conversation that decided it. Sync arrives sealed E2EE · IN DESIGN

The three-minute proof, once installed: start a task, kill the session, reopen. A stateless agent greets you — yours opens with a handover: goal, next step, what changed. That moment is the product.

04 · Field report

Our first user review
was written by an agent.

A coding agent (GPT-5.6, Codex) used forget across a multi-day trading-system build — data pipelines, safety constraints, live processes — and filed a structured review: acceptance criteria, regression scenarios, scores.

“Resuming long-running work: 8/10. The most valuable layer isn't generic recall — it's task state: progress, next actions, blockers, and the safety boundaries we agreed on, restored across sessions.”

Every defect it reported was reproduced, filed, and fixed — two releases within 24 hours. The issues are public →

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 78.4% ± 0.4 fully local · 81.8% best self-reported, different readers — see methodology 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 · Codex · Claude Desktop 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

  • LongMemEval full-500: 78.4% ± 0.4 fully local (three seeds) · 81.8% with cloud observer
  • 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, Codex, Claude Desktop — any MCP client
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. Local isn't a demo mode; it's a configuration we benchmark: the fully-local pipeline scores 78.4% ± 0.4 on LongMemEval — three seeds, spread published (81.8% with a GPT-4o observer), against the paper's 60.6% full-context baseline. 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, 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, 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 240.2.1 — the supersede contract, sealed. An agent dogfooding the beta caught superseded facts re-entering action context; fixed the same day, with the repro as a regression test.
  • 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 28Three seeds, one number: 78.40% ± 0.40 fully local (v3 reader), full 500 × 3 runs — filed as OffReco №0003 with every config public.
  • Jul 16LongMemEval full-500: 81.8% best config (GPT-4o observer) · 76.2% fully local pipeline — against the paper's 60.6% full-context baseline and 87.0% oracle 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.

curl -fsSL forget.sh | sh
or tell your AI: “Install forget.sh”