Project Info
Inspiration
Over 7 million Americans over 65 live with Alzheimer’s today, a number set to double by 2060. 1 in 9 older adults already face fading memories, and by 85, that risk climbs past 1 in 3. But memory loss isn’t inevitable, it’s a gap in design. We’re building MemARy, an AI wearable that sees what you see, hears what you say, and remembers what matters. Since most old people already wear glasses, why not wear it like Tony Stark. And for every Tony Stark who never forgets, MemARy will be the Jarvis for billions.
What it does
Memary is an AI-powered wearable interface that transforms visual and auditory inputs into structured, retrievable memory. Every few seconds or for every trigger (button press or saying the word, the device captures a frame from the user’s perspective, processes it through Reka's vision language model to extract semantic information: objects, spatial relations, colors, and contextual cues, and encodes that data into vector embeddings stored in a ChromaDB-based memory system. Users can interact with Memary through natural language, either by voice or text, to recall or store information, such as where they left important items. The system retrieves semantically relevant entries using vector similarity search, merges them with timestamped metadata, and returns precise and context-aware responses. Memary’s pipeline combines computer vision, LLM-based scene summarization, semantic embedding, and memory indexing, creating a continuous cognitive layer that enables human-like recall through AI.
How we built it
We engineered Memary as a modular, microservice-based system combining real-time perception, semantic understanding, and long-term memory storage. Using SnapAR and Lens Studio, we integrated our AI pipeline directly with Snap Spectacles, enabling the glasses to capture image frames, visualize UI for memory recall, and stream them to our backend. Each frame is processed by Reka’s Llama Vision Model, which generates a structured natural language summary that identifies objects, positions, specific characteristics, and contextual cues. The summaries are then embedded and stored in ChromaDB, our vector database layer, which enables high-speed semantic retrieval using cosine similarity. A FastAPI service mediates all data ingestion and querying, ensuring clean abstraction and multi-tenant control. On the client side, a React frontend provides the user interface for memory review and session selection along with memory dashboards, while PokMmCP powers semantic queries and synchronization between the phone and glasses. We also integrated LiveKit for low-latency speech-to-text processing, allowing users to add or recall memories through natural voice interaction. Together, this stack forms a continuous AI memory loop that enables real-time recall, just like having a grandmaster-level memory..
Challenges we ran into
Complex idea in a short timespan, the documentation of SnapAR being quite the challenge but rewarding at the end, rigorous execution websocket approach to video and audio input into the Spectacle device
Accomplishments we're proud of
Our idea, being broken down into smaller work functions, that when combined together as a group of microservices, produces an efficient and synergized product.
What we learned
Twinkling with a whole new development and product architecture in Snap Spectacles, the use of fabulous technologies by the sponsors that leveled up our production quality, and most importantly, thoughtful discussions makes complex missions possible.
What's next
for memARy Make it adaptable in any contextual use and eventually go beyond the market of old people with Alzheimer to everyone that does not want to forget anything, ever.
🧠 Remembar - AI Memory System
Remember anything. Search everything. Ask naturally.
Remembar is an AI-powered memory system that lets you store observations as natural language and search them conversationally. With Model Context Protocol (MCP) support, you can integrate Remembar directly with Claude Desktop and other AI assistants!
✨ Features
🎯 Core Capabilities
- Natural Language Storage: Just describe what you see - "there's a yellow key on the table"
- Conversational Search: Ask naturally - "where are my keys?" or "what color is the car?"
- AI-Powered Understanding: Uses Reka AI to extract structured data from descriptions
- Cloud-Native Storage: ChromaDB Cloud integration for true persistence across deployments
- Vector Search: Semantic search powered by ChromaDB for intelligent matching
🔌 MCP Integration (NEW!)
- Direct AI Assistant Access: Use with Claude Desktop, ChatGPT, or any MCP client
- Voice-to-Memory: Speak to Claude, have it remember for you
- Seamless Queries: Ask Claude about your memories conversationally
- No Extra Interface Needed: Your AI assistant becomes your memory interface
📊 Advanced Features
- 📅 Timeline View: See memories grouped by date (Today, Yesterday, Last Week)
- 📌 Item Tracking: Track important items with customizable alerts
- 🔗 Object Relationships: Automatically learns which items are seen together
- 📈 Statistics Dashboard: Analytics on your memories and patterns
- 🎴 Flashcards: Memory reinforcement with intelligent Q&A generation
- ☁️ Cloud Persistence: ChromaDB Cloud integration for data that survives any deployment
- 💾 Local Fallback: Automatic fallback to local storage if cloud is unavailable
🚀 Quick Start
Option 1: Cloud Deployment (Share with Others) 🌐
Deploy to Railway and let others access your Remembar instance:
railway login --browserless
railway init
railway variables set REKA_API_KEY=your_key
railway up
railway domain # Get your public URL
Full guide: DEPLOY_QUICK_START.md | RAILWAY_DEPLOY.md
Option 2: MCP Integration (Local)
Use Remembar directly through Claude Desktop or other AI assistants:
# Start Remembar with MCP support
./start_with_mcp.sh
Then follow the setup guide: MCP_SETUP.md
Option 3: Web Interface
Use the browser-based interface:
# Start services
./start_services.sh
# Open web interface
open web-test/index.html
Option 4: REST API
Direct API access:
# Start API server
cd api-service
python3 main.py
# Store a memory
curl -X POST http://localhost:8000/store_text \
-H "Content-Type: application/json" \
-d '{"text": "yellow key on the table"}'
# Search memories
curl "http://localhost:8000/search?query=where+is+the+key"
📋 Prerequisites
- Python 3.9+
- Reka AI API Key (get one at reka.ai)
- pip or pip3
🛠️ Installation
-
Clone the repository
git clone <your-repo-url> cd remembar -
Set up environment
# Create .env file in api-service/ echo "REKA_API_KEY=your_key_here" > api-service/.env -
Install dependencies
cd api-service pip3 install -r requirements.txt -
Start services
./start_with_mcp.sh
📖 Documentation
Setup & Deployment
- Deploy Quick Start - ⚡ Fast Railway deployment
- Railway Deploy Guide - Complete Railway deployment
- ChromaDB Cloud Setup - ☁️ Cloud storage configuration
- MCP Setup Guide - Connect to Claude Desktop
- Startup Guide - Local startup instructions
Technical Guides
- Architecture - System design and components
- API Reference - REST API endpoints
- Pipeline Update - Text-to-JSON pipeline details
Feature Guides
- Timeline Feature - Timeline view documentation
- Statistics & Flashcards - Analytics features
🎮 Usage Examples
With Claude Desktop (MCP)
Once configured, just talk to Claude naturally:
You: I saw a yellow key on the table in the kitchen
Claude: ✓ I've stored that memory!
You: What color is the key?
Claude: The key was yellow. I saw it on the table in the kitchen, just now.
You: Track my medication and alert me if I haven't seen it in 12 hours
Claude: ✓ Now tracking 'medication'. I'll alert if not seen for 12 hours.
With Web Interface
- Open
web-test/index.html - Go to "📝 Text to JSON" tab
- Enter: "there's a yellow key on the table"
- Click "Convert to JSON"
- Switch to "🔍 Search Memories" tab
- Ask: "what color is the key?"
With REST API
import requests
# Store memory
response = requests.post('http://localhost:8000/store_text', json={
'text': 'yellow key on the table',
'session_id': 'my-session'
})
# Search
response = requests.get('http://localhost:8000/search', params={
'query': 'where is the key'
})
print(response.json()['answer'])
🏗️ Architecture
┌─────────────────┐
│ Claude Desktop │ ← MCP Client (NEW!)
└────────┬────────┘
│ MCP Protocol
↓
┌─────────────────┐
│ mcp_server.py │ ← MCP Server
└────────┬────────┘
│ HTTP REST
↓
┌─────────────────┐
│ main.py API │ ← FastAPI Service
└────────┬────────┘
│
├─→ Reka AI (Image/Text → JSON)
│
└─→ ChromaDB (Vector Store)
🔧 Technology Stack
- Backend: FastAPI (Python)
- AI Processing: Reka AI (Vision + Text Models)
- Vector Store: ChromaDB Cloud + Local Fallback
- MCP Server: Model Context Protocol SDK
- Frontend: HTML/CSS/JavaScript (Vanilla)
📁 Project Structure
remembar/
├── api-service/ # Main API server
│ ├── main.py # FastAPI endpoints
│ ├── mcp_server.py # MCP server (NEW!)
│ └── requirements.txt
├── vector-store/ # ChromaDB vector storage
│ └── app.py
├── vision-processor/ # Image processing (optional)
│ └── vision_reka.py
├── web-test/ # Web interface
│ └── index.html
├── start_with_mcp.sh # Startup with MCP
├── start_services.sh # Startup without MCP
└── MCP_SETUP.md # MCP configuration guide
🧪 Testing
Test MCP Server
python3 test_mcp.py
Test API
cd api-service
python3 test.sh
Test Integration
cd example-client-service
python3 test_integration.py
🤝 Contributing
Contributions welcome! Areas of interest:
- Additional MCP client integrations
- Mobile app development
- Additional AI model support
- Performance optimizations
- Documentation improvements
📝 License
[Your License Here]
🆘 Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: [Your Email]
🎯 Roadmap
- Basic memory storage and search
- Timeline view
- Item tracking with alerts
- Object relationships
- Statistics dashboard
- MCP integration
- Mobile app
- Multi-user support
- Cloud deployment
- Additional AI model support
- Offline mode
⭐ Star History
If you find Remembar useful, please consider giving it a star on GitHub!
Made with 🧠 by [Your Name]
Remember everything. Search naturally. Live smarter.
Analysis
View
Metric
- 21
- 1
- 1
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- FastAPIIn code
- HTMLIn code
- JavaScriptIn code
- PythonIn code
- TypeScriptIn code
- Google GeminiClaimed
- ReactClaimed
- VercelClaimed
5 of 8 appear in the indexed code. 3 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
- Claude CodeConfig
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
367 KB
Source files
66
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
AmaanBilwar/memARy
177 files · 9.6 MB · @ 7e1afcc
Structure
Interface
2 files · 1%Screens, components and styles rendered to the user.
API & routing
1 file · 1%Request entry points: routes, handlers and controllers.
Application logic
39 files · 22%Domain rules, services and shared utilities.
+6 more
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Python36%
- Markdown35%
- HTML18%
- TypeScript6%
- Shell4%
- JavaScript1%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
api-service/requirements.txt
pypi · 8- fastapi[standard]
- httpx
- mcp
- pillow
- python-dotenv
- reka-api
- requests
- uvicorn[standard]
vector-store/requirements.txt
pypi · 7- chromadb
- colorama
- fastapi
- pydantic
- python-dotenv
- sentence-transformers
- uvicorn[standard]
vision-processor/requirements.txt
pypi · 5- opencv-python
- pillow
- python-dotenv
- reka-api
- requests
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
Feature verification
ChromaDB Cloud persistence with local fallbackVerified
Cloud-Native Storage: ChromaDB Cloud integration for true persistence, with automatic local fallback if cloud unavailable
Claimed on readmehigh confidencevector-store/chroma_client.py:34— Tries chromadb.CloudClient first, falls back to chromadb.PersistentClient(path=PERSIST_DIR) on exception
ChromaDB-based vector embedding storageVerified
Encodes data into vector embeddings stored in a ChromaDB-based memory system
Claimed on Devposthigh confidencevector-store/chroma_client.py:34— Connects to chromadb.CloudClient (or PersistentClient fallback) as the vector store backendvector-store/embeddings.py:26— embed_texts() produces normalized embeddings for cosine similarity, used to populate ChromaDB collections
FastAPI backend serviceVerified
A FastAPI service mediates all data ingestion and querying
Claimed on Devposthigh confidenceapi-service/main.py:68— FastAPI app with dozens of routes for store/search/track/statisticsvector-store/app.py:88— Second FastAPI service dedicated to ChromaDB ingestion/querying
Flashcards for memory reinforcementVerified
Memory reinforcement with intelligent Q&A generation
Claimed on readmehigh confidenceapi-service/mcp_server.py:136— get_flashcards MCP tool generates Q&A flashcards from stored memories
Image capture and Reka vision analysis pipelineVerified
Device captures a frame and processes it through Reka's vision language model to extract objects, spatial relations, colors, and contextual cues
Claimed on Devposthigh confidencevision-processor/vision_reka.py:29— Calls Reka client with model reka-core-20240501 on an image to produce a structured scene summary including positions and spatial relationshipsapi-service/main.py:186— /store endpoint imports vision_reka.analyze_image and processes uploaded images through it
Item tracking with alertsVerified
Track important items with customizable alerts
Claimed on readmehigh confidenceapi-service/main.py:902— /track_item stores alert_hours per item and last_seen timestamp, checked against memory_store
MCP server integration with Claude DesktopVerified
Direct AI assistant access via Model Context Protocol; use with Claude Desktop, voice-to-memory, seamless queries
Claimed on readmehigh confidenceapi-service/mcp_server.py:37— Implements MCP list_tools/call_tool with store_memory, search_memories, get_timeline, track_item, get_statistics, get_flashcards tools over the mcp SDK
Natural language store and recall (text/voice)Verified
Users can interact through natural language, either by voice or text, to recall or store information
Claimed on readmehigh confidenceapi-service/main.py:278— /store_text endpoint converts free text descriptions into structured memory entriesapi-service/mcp_server.py:41— MCP tool store_memory/search_memories exposes natural-language store and search to an AI assistant like Claude Desktop
Object relationship learningVerified
Automatically learns which items are seen together
Claimed on readmehigh confidenceapi-service/main.py:317— Updates an in-memory object_relationships co-occurrence map whenever a memory with multiple objects is stored, exposed via /relationships
Periodic and trigger-based captureVerified
Every few seconds or for every trigger (button press or saying the word), the device captures a frame
Claimed on Devposthigh confidencevision-processor/capture_scheduler.py:19— CaptureScheduler supports both a fixed interval loop (default 30s) and manual trigger_capture() calls with debounce
Statistics dashboardVerified
Analytics on your memories and patterns
Claimed on readmehigh confidenceapi-service/main.py:748— /statistics endpoint aggregates counts, objects, and timeline data from memory_store
Timeline view of memoriesVerified
See memories grouped by date (Today, Yesterday, Last Week)
Claimed on readmehigh confidenceapi-service/main.py:836— Builds a timeline structure grouping memory_store entries into date bucketsapi-service/mcp_server.py:84— get_timeline MCP tool exposes the same grouped-by-date view
Web/HTML test interfaceVerified
Web interface for storing and searching memories (Option 3 in README)
Claimed on readmehigh confidenceweb-test/index.html:1— 1810-line standalone HTML/JS page implementing text-to-JSON conversion and memory search UI, matches README's 'Web Interface' usage instructions
Cloud deployment (Railway)Code-supported
Deploy to Railway and let others access your Remembar instance
Claimed on readmelow confidenceapi-service/Procfile— Procfile present for platform deployment, but no Railway-specific config files were inspected beyond doc references
Multi-tenant controlCode-supported
FastAPI service ensures clean abstraction and multi-tenant control
Claimed on Devpostmedium confidencevector-store/app.py:335— search_semantic filters ChromaDB queries by tenant_id, and add_frame/query_by_item accept tenant_id, suggesting basic per-tenant scoping rather than full multi-tenant isolation/auth
SnapAR / Lens Studio integration with Snap SpectaclesCode-supported
Using SnapAR and Lens Studio, integrated the AI pipeline directly with Snap Spectacles, capturing frames and streaming to the backend
Claimed on Devpostmedium confidenceVoiceThing/Assets/SpectaclesToLivekit.ts:12— Lens Studio component using CameraModule/InternetModule to stream camera frames from Spectacles over a WebSocket to a backend servermemARyLENS/Assets/Scripts/MicScript.ts:15— Uses Spectacles' AsrModule for on-device speech recognition triggered by a UI button
Vector similarity search for recallCode-supported
The system retrieves semantically relevant entries using vector similarity search, merges them with timestamped metadata
Claimed on Devpostmedium confidencevector-store/app.py:320— search_semantic endpoint embeds the query and runs a real ChromaDB cosine-similarity queryapi-service/main.py:566— The main-facing /search endpoint that users/voice/MCP actually call does plain keyword substring matching over an in-memory list; it never calls vector-store's search_semantic, so the claimed vector-similarity recall path is not wired into the live user flow
LiveKit for low-latency speech-to-textClaimed only
Integrated LiveKit for low-latency speech-to-text processing, allowing users to add or recall memories through voice
Claimed on Devpostmedium confidencePokéMCP for phone/glasses syncClaimed only
PokMmCP powers semantic queries and synchronization between the phone and glasses
Claimed on Devpostmedium confidenceReact frontend for memory review and dashboardsClaimed only
A React frontend provides the user interface for memory review and session selection along with memory dashboards
Claimed on Devpostmedium confidence
An AI agent derived these features from the project’s Devpost page and readme, then searched the code for each one. Verified features are backed by cited code; claimed-only features had no supporting code, which is not by itself proof a feature is missing.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.