A simple tool to manage context history and play around with multiple LLM providers and RAG in one embedding space. I had a bunch of credits leftover from a MongoDB Hackathon that I went to, so I built this to use them.
Mneme (pronounced "nem") is named after the muse of memory from Greek mythology. It transforms linear chat histories into a persistent, graph-based knowledge structure. Create branching conversations, explore multiple reasoning paths, and search semantically within specific conversation threads.
- Branching Conversations - Fork any message to explore alternative reasoning paths
- Dual View Modes - Switch between linear chat and interactive graph visualization
- Semantic Search (RAG) - Search within conversation paths using vector embeddings
- Multi-Model Support - Choose from 20+ LLM models (DeepSeek, Llama, Qwen, etc.)
- Persistent Storage - All conversations and embeddings stored in MongoDB
- Node.js 18+
- Python 3.12+
- MongoDB Atlas account (with Voyage AI)
- API keys for: Clerk, Fireworks AI
Listed in requirements.txt
cd frontend
npm install
cp .env.example .env.local
# Add your environment variables to .env.local
npm run devI recommend using uv, but up to you. Make sure your port 8080 is free before running uvicorn.
cd backend
uv venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# Add your environment variables to .env
uvicorn app.main:app --reloadmneme/
├── frontend/
│ ├── src/
│ │ ├── app/ # Next.js pages
│ │ ├── components/ # React components
│ │ │ ├── Chat/ # Linear chat view
│ │ │ ├── Flow/ # Graph visualization
│ │ │ └── Sidebar/ # Tree list & RAG panel
│ │ ├── hooks/ # Custom React hooks
│ │ ├── lib/ # API utilities
│ │ └── types/ # TypeScript types
│ └── ...
├── backend/
│ ├── app/
│ │ ├── routes/ # API endpoints
│ │ ├── services/ # LLM, embeddings, RAG
│ │ └── models/ # Pydantic schemas
│ └── ...
└── README.md
MIT