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).
Product upvotes vs the next 3
Waiting for data. Loading
Product comments vs the next 3
Waiting for data. Loading
Product upvote speed vs the next 3
Waiting for data. Loading
Product upvotes and comments
Waiting for data. Loading
Product vs the next 3
Loading
Engram
Agent memory that knows what's still true
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.
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 #99 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.
On the analytics side, Engram competes within Productivity, Notes, Artificial Intelligence and GitHub — topics that collectively have 1.2M followers on Product Hunt. The dashboard above tracks how Engram performed against the three products that launched closest to it on the same day.
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.
For a complete overview of Engram including community comment highlights and product details, visit the product overview.
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.