This product was not featured by Product Hunt yet. It will not be visible on their landing page and won't be ranked (cannot win product of the day regardless of upvotes).
Engram is a self-hosted MCP server + dashboard that gives Claude Code, Cursor, Hermes, and any MCP agent shared memory over a git-backed folder of markdown. Most agent memory answers "what did I store?" Engram answers "what's still true?" Retire a price or a contract term and search stops surfacing it, then tells the agent what it skipped and why. Per-agent read/write tokens. Every write committed to git and attributed, with diffs. Reads your Obsidian vault as-is. MIT, one container.
Hey all! This is my first launch ever. Been shipping apps for ages but never went the extra mile to show other people what I've done. So excited to share this one with you...
A few months ago one of my agents quoted a client a price we'd killed months earlier.
It wasn't a hallucination. The dead number was sitting right there in my notes, and search ranked it above the live one, because a retired price uses the word "price" just as often as a current one. That's the part I couldn't fix with a better prompt or a better embedding: a retired price and a live price are textually identical, so nothing at read time can tell them apart.
So the retirement has to be written down when it happens. That's Engram.
It's a folder of markdown, a git repo, and one MCP endpoint. Agents read and write through it. Every note gets an authority from its folder and frontmatter, plus optional valid_until and superseded_by. Search ranks by relevance × authority, withholds anything retired, and hands the agent a list of what it skipped with a reason - "expired 2026-06-01" - so it can say what it ignored instead of quoting it. One atomic brain_supersede retires the old fact and adds the new one in a single commit, so add-and-retire can't drift apart.
There's a live demo if you'd rather poke at it than clone: engram-demo.up.railway.app - open, no signup, resets a few times a day. Search 'retainer price' and watch the retired note get withheld.
I posted an early version on IndieHackers (https://www.indiehackers.com/pos...) and a few people pushed on the same gap - read-side ranking is worthless if the vault happily accepts the contradiction in the first place. An agent told "the price is now X" that can't overwrite a note it never read will just add a second one. So writes now refuse that and point at supersede instead.
Two ways to run it: hosted dashboard + HTTP MCP for a team, or a stdio server over a local folder for Claude Desktop or Cursor. Reads an existing Obsidian vault with no import step. Per-agent tokens are read-only or read-write, and every write is committed to git attributed to whichever agent made it, so the dashboard doubles as an audit trail with per-file diffs.
Clone it and run `bun dev` - the sample vault ships with a retired price and its replacement, so you can search `acme price` and watch the dead one get withheld.
Happy to answer anything. The piece I'm least sure generalizes is the validity model past my own vault, so if it breaks against how you keep notes, that's what I most want to hear.
finally something that handles stale data well, the skip-and-explain feature is basically what ive been needing. also nice that it just reads my obsidian vault as-is
honestly the "what's still true" framing is what got me - the fact that it retires old info instead of just burying it is kind of a big deal for agents that keep hallucinating outdated facts. set it up in like 10 minutes with my existing obsidian vault, runs clean.
finally something that handles stale memory properly, the "what's still true" framing hits a real pain point. love that it reads my obsidian vault as-is without import steps.
Cograts on the launch, love the idea! Since i currently mostly work in Claude Cowork which needs a public HTTPS endpoint rather than local stdio, is the hosted dashboard + HTTP MCP mode ready for that today, or is self-hosting on something like Railway still the only path for Cowork users?
About Engram on Product Hunt
“Agent memory that knows what's still true”
Engram was submitted on Product Hunt and earned 10 upvotes and 9 comments, placing #101 on the daily leaderboard. Engram is a self-hosted MCP server + dashboard that gives Claude Code, Cursor, Hermes, and any MCP agent shared memory over a git-backed folder of markdown. Most agent memory answers "what did I store?" Engram answers "what's still true?" Retire a price or a contract term and search stops surfacing it, then tells the agent what it skipped and why. Per-agent read/write tokens. Every write committed to git and attributed, with diffs. Reads your Obsidian vault as-is. MIT, one container.
Engram was featured in Productivity (656.7k followers), Notes (8.3k followers), Artificial Intelligence (474.3k followers) and GitHub (41.3k followers) on Product Hunt. Together, these topics include over 286k products, making this a competitive space to launch in.
Who hunted Engram?
Engram was hunted by Ronalds Palacis. A “hunter” on Product Hunt is the community member who submits a product to the platform — uploading the images, the link, and tagging the makers behind it. Hunters typically write the first comment explaining why a product is worth attention, and their followers are notified the moment they post. Around 79% of featured launches on Product Hunt are self-hunted by their makers, but a well-known hunter still acts as a signal of quality to the rest of the community. See the full all-time top hunters leaderboard to discover who is shaping the Product Hunt ecosystem.
Want to see how Engram stacked up against nearby launches in real time? Check out the live launch dashboard for upvote speed charts, proximity comparisons, and more analytics.
Hey all! This is my first launch ever. Been shipping apps for ages but never went the extra mile to show other people what I've done. So excited to share this one with you...
A few months ago one of my agents quoted a client a price we'd killed months earlier.
It wasn't a hallucination. The dead number was sitting right there in my notes, and search ranked it above the live one, because a retired price uses the word "price" just as often as a current one. That's the part I couldn't fix with a better prompt or a better embedding: a retired price and a live price are textually identical, so nothing at read time can tell them apart.
So the retirement has to be written down when it happens. That's Engram.
It's a folder of markdown, a git repo, and one MCP endpoint. Agents read and write through it. Every note gets an authority from its folder and frontmatter, plus optional valid_until and superseded_by. Search ranks by relevance × authority, withholds anything retired, and hands the agent a list of what it skipped with a reason - "expired 2026-06-01" - so it can say what it ignored instead of quoting it. One atomic brain_supersede retires the old fact and adds the new one in a single commit, so add-and-retire can't drift apart.
There's a live demo if you'd rather poke at it than clone: engram-demo.up.railway.app - open, no signup, resets a few times a day. Search 'retainer price' and watch the retired note get withheld.
I posted an early version on IndieHackers (https://www.indiehackers.com/pos...) and a few people pushed on the same gap - read-side ranking is worthless if the vault happily accepts the contradiction in the first place. An agent told "the price is now X" that can't overwrite a note it never read will just add a second one. So writes now refuse that and point at supersede instead.
Two ways to run it: hosted dashboard + HTTP MCP for a team, or a stdio server over a local folder for Claude Desktop or Cursor. Reads an existing Obsidian vault with no import step. Per-agent tokens are read-only or read-write, and every write is committed to git attributed to whichever agent made it, so the dashboard doubles as an audit trail with per-file diffs.
Clone it and run `bun dev` - the sample vault ships with a retired price and its replacement, so you can search `acme price` and watch the dead one get withheld.
Happy to answer anything. The piece I'm least sure generalizes is the validity model past my own vault, so if it breaks against how you keep notes, that's what I most want to hear.