I kept saving things I knew I would need later: a GitHub repository, a Reddit answer, a post on X, a useful article, a small code pattern. The problem was not saving. The problem was finding the reference again when the work finally caught up with it.
Those saves lived in different products, with different search behavior and different failure modes. Some were only links. Some were buried in a platform timeline. Some were in a browser bookmark folder I had stopped opening. My coding agent could not use any of them unless I manually copied the context into the conversation.
That is why I started building Anansi.
Anansi is an open-source personal web memory for developers and AI agents. The browser extension captures what I already save, the library keeps it searchable, and the same library is exposed through a read-focused MCP server so a coding agent can search and pull a saved reference into context.
The first useful loop is intentionally small:
- Save or import something from a supported source.
- Keep the item in one library with its source and provenance.
- Search the library by text, source, author, recency, or tag.
- Ask an MCP-compatible client to search or retrieve the saved item when it becomes relevant.
The current shipped sources are X, Reddit, GitHub, and deliberate Web capture. Chrome bookmark mirroring is part of the Web capture mode. TikTok parsing is retained, but its capture path is paused, and Pinterest is on the roadmap. I would rather show that boundary clearly than call every parser a supported product feature.
The MCP surface is read-focused today. It includes search, single-item retrieval, bounded multi-item retrieval, browsing, recent saves, author saves, tags, and library statistics. MCP search is keyword/BM25 today; semantic search in the web library is a separate optional path and is not being advertised as an MCP capability.
The project is designed to be run privately. Local development uses SQLite. The repository also contains the intended Cloudflare deployment path for people who want their own account to hold the hosted data. A clean-account hosted acceptance run is still a release gate, so the README distinguishes what has been tested locally from what remains to be verified externally.
Privacy is part of the product shape. The extension does not read cookies or ask for cookie permission. Provider sessions stay in the browser, capture is explicit, ingest is bearer-authenticated, and queued delivery can retry after interruptions or rate limits. These are not marketing decorations; they are the boundaries that make a personal library safer to operate.
The project is still early. That is useful because the most important work is visible: improving setup, making source capture truthful, showing a complete save-to-agent demo, and making the first contribution understandable. Good early contributions include scrubbed fixtures, parser and import fixes, documentation, MCP examples, accessibility, and focused library UX.
If you save a lot of references while building software, I would like to know which one is hardest to recover. The repository is here: https://github.com/jojomensah89/anansi

Top comments (2)
This is a really interesting approach to solving one of the biggest challenges with coding agents: maintaining context over time. A developer’s workflow is not just about writing code, but also about remembering decisions, patterns, project history, and the reasoning behind previous changes.
Giving agents a memory layer can make them much more useful because they can become more aligned with the developer’s way of working instead of treating every interaction as a fresh start.
I also like the open-source direction here because it encourages experimentation and helps the community explore what truly effective AI-assisted development looks like. Great work building toward more personalized and context-aware coding agents!
The source tracking is what I keep hitting without. I've pasted the same Cloudflare Worker snippet into four separate agent sessions now because neither I nor the agent had any idea I'd saved it before. The question your demo needs to answer is whether the agent pulls a saved item on its own or waits to be told about it, because that's the whole difference between a memory layer and a better clipboard. BM25 first is the right call; I tried jumping straight to semantic for a similar retrieval problem and spent two weeks tuning embeddings before realising keyword search would have gotten 90% of the value in an afternoon.