Searchable screen history for your entire computer. Memex takes a screenshot every minute, extracts the text, and makes it all searchable using ChromaDB.
Inspired by Vannevar Bush's Memex — a vision for a device that organizes and retrieves all of a person's information. This project brings that idea to your desktop.
curl -fsSL https://raw.githubusercontent.com/joenewbry/memex/main/install.sh | shThen add to your PATH and start:
export PATH="$HOME/.local/bin:$PATH" # add to ~/.zshrc or ~/.bashrc
memex startmacOS: Requires Tesseract (brew install tesseract) and Screen Recording permission for your terminal in System Settings > Privacy & Security.
- Meeting recall — "What did we discuss in the standup this morning?"
- Link recovery — "Find the Hacker News post about Anthropic I was reading yesterday"
- Work summaries — "Summarize what I worked on this week" (try the
daily-summaryMCP tool for structured single-day reports) - Onboarding docs — "Create documentation for the Centurion project based on my screen history from March"
- Context switching — "What was I doing before lunch? Help me pick up where I left off"
- Debug archaeology — "Find that error message I saw in the terminal two days ago"
"Can you summarize what I worked on today"
- Capture — screenshots every 60 seconds, all displays
- Extract — Tesseract OCR pulls text from each screenshot
- Index — ChromaDB stores text as vector embeddings
- Search — semantic search via MCP tools or the CLI
Everything stays local on your machine.
memex status # health check
memex doctor # full diagnostics
memex ask "query" # AI-powered natural language search
memex chat # interactive chat
memex search "query" # direct text search
memex stats # activity statistics
memex start / stop # control the capture daemon
memex watch # live view of captures
memex logs # view service logs (mcp, capture)
memex auth login # configure API keys (Anthropic/OpenAI)Built for Claude Desktop, Cursor, or any MCP-compatible client.
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"memex": {
"command": "$HOME/.memex/.venv/bin/python",
"args": ["-u", "$HOME/.memex/mcp-server/server.py"]
}
}
}Replace $HOME with your full home directory path (e.g. /Users/yourname) and restart Claude Desktop.
Access Memex from claude.ai on any computer by exposing the MCP HTTP server with ngrok.
Start Memex with the MCP server, then expose it:
memex start --mcp
ngrok http 8082In Claude.ai, go to Settings > Connectors and add a new connector with the URL:
https://YOUR_NGROK_URL.ngrok-free.dev/sse
Replace YOUR_NGROK_URL with your actual ngrok URL. No bridge or extra tools required.
Claude Desktop uses stdio-based MCP servers and can't connect to a URL directly. Use mcp-remote to bridge the gap:
memex start --mcp
ngrok http 8082Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"memex": {
"command": "npx",
"args": [
"mcp-remote",
"https://YOUR_NGROK_URL.ngrok-free.dev/sse"
]
}
}
}Replace YOUR_NGROK_URL with your actual ngrok URL and restart Claude Desktop. Requires Node.js.
Start the HTTP server and expose via ngrok, then add to ~/.cursor/mcp.json:
{
"mcpServers": {
"memex": {
"url": "https://YOUR_NGROK_URL.ngrok-free.dev/sse"
}
}
}I realized I didn't have any real history of my work from the last few years. Even in the best of times, I only occasionally take notes and record what I worked on. With vector storage and MCP, it felt like there should be a better solution — one that doesn't require me to always take notes, and lets me extract useful information after the fact.
Open a PR and send me an email at joenewbry@gmail.com with a link to the PR and what the change is. I'll review it.
MIT — see LICENSE for details.
- Issues: GitHub Issues
- Email: joenewbry@gmail.com
