memories.sh is an open source tool that abstracts the shared memory layer for AI coding agents. Save rules, skills, decisions, and project facts once, then generate native configs for Claude Code, Cursor, Copilot, Windsurf, Gemini, and more. Get semantic recall, local-first SQLite that works offline, and optional cloud sync. Includes CLI, MCP server, and TypeScript SDK middleware for memory-aware AI apps.
Hey Product Hunt, I’m Charles, maker of memories.sh.
We built this because teams keep re-teaching agents the same context across CLAUDE.MD, Cursor rules, v0 instructions, and more. The result is drift, repetition, and lost context.
memories.sh gives you one shared memory layer:
• Store rules, decisions, facts, and skills once
• Recall context semantically when coding
• Generate native configs for Claude Code, Cursor, Copilot, Windsurf, Gemini, and more
• Run local-first with SQLite (offline by default), with optional cloud sync
Would love your feedback on 3 things:
1. Which agent tools do you switch between most?
2. Where does context break in your current workflow?
3. What would make this part of your daily dev process?
I’ll be here all day replying and can share setup examples if helpful.
This is intriguing. How does it maintain memories in context on new sessions without injecting all of the definitions on a session initialization?
Report
Maker
@bmooreinsaan Great question. We don’t inject the full memory set on session initialization. Each new session runs a `get_context` retrieval that pulls a small, scoped set: always-on rules plus the most relevant memories for the current task (working memory first, then long-term). Everything else stays in the memory store and is fetched only if it becomes relevant, so context stays lightweight while memory persists across sessions.
Report
Maker
Hey Product Hunt Community,
We have pushed a ton of updates and improvements. Keep the feedback coming!
Thanks, Charles
Report
Reviews
No reviews yetBe the first to leave a review for memories.sh
LogiCoal
This is intriguing. How does it maintain memories in context on new sessions without injecting all of the definitions on a session initialization?
@bmooreinsaan Great question. We don’t inject the full memory set on session initialization. Each new session runs a `get_context` retrieval that pulls a small, scoped set: always-on rules plus the most relevant memories for the current task (working memory first, then long-term). Everything else stays in the memory store and is fetched only if it becomes relevant, so context stays lightweight while memory persists across sessions.
Hey Product Hunt Community,
We have pushed a ton of updates and improvements. Keep the feedback coming!
Thanks,
Charles