⚡ NanoRecall: 100% Private Desktop Memory & Screen Search
A high-performance, open-source, 100% private alternative to Microsoft Windows Recall.
Engineered with pure C99/SIMD, native Win32 capture, and zero cloud telemetry. Search anything you saw on your screen by natural language in milliseconds.
📦 Multi-Platform Installation
| Platform / Manager | Installation Command |
|---|---|
| PyPI (pip) | pip install nanorecall |
| PyPI (uv) | uv add nanorecall |
| Conda-Forge | conda install -c conda-forge nanorecall |
| Ubuntu / Debian (APT PPA) | curl -sS https://eminsk.github.io/ppa/setup.sh | sudo bashsudo apt install python3-nanorecall |
| Ubuntu / Debian (.deb) | sudo dpkg -i python3-nanorecall_0.1.3-1_all.deb |
🧩 Universal Compatibility Matrix
| Runtime / Implementation | Supported Versions | Execution Mode | Status |
|---|---|---|---|
| CPython (Standard) | 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, 3.14, 3.15, 3.16 (Alpha) | Standard bytecode + GIL | ✅ Fully Supported |
| CPython (Free-Threaded) | 3.13t, 3.14t, 3.15t | Multi-core No-GIL (PEP 703) | ✅ Fully Supported |
| PyPy (JIT Accelerated) | 3.8, 3.9, 3.10, 3.11, 3.12 | High-speed JIT tracing | ✅ Fully Supported |
| Operating Systems | Windows (7, 8, 10, 11), Linux, macOS (Intel & Apple Silicon) | x86_64, ARM64 | ✅ Fully Supported |
⚡ The Problem with Microsoft Recall
| Feature | Microsoft Windows Recall | NanoRecall (This Project) |
|---|---|---|
| Privacy & Cloud | Unencrypted storage, telemetry risks | 100% Local & Encrypted (Zero bytes leave your PC) |
| Hardware Lock-in | Requires expensive Copilot+ PC ($1500+) with 40+ TOPS NPU | Runs on any standard Intel / AMD / ARM CPU |
| Vector Engine | Heavy proprietary runtime | NanoVector (Pure C99 + AVX2, <120KB footprint) |
| Search Latency | Variable (Cloud / NPU overhead) | 0.28 ms (Sub-millisecond exact semantic search) |
| Password Protection | Records sensitive credentials and cards | Privacy Shield: Auto-ignores 1Password, Bitwarden, KeePass, Incognito |
| Storage Footprint | Tens of gigabytes of raw frames | Smart Frame Differencing: Suppresses static frames (30–60 KB/frame) |
| Code Footprint | Gigabytes of OS bloatware | <200 KB pure codebase, <25MB RAM idle, 0.1% CPU |
🌟 Key Highlights
- 100% Private & Offline: All frame embeddings and OCR snippets are stored in a single, local
.nvecbinary file. No accounts, no API keys, no internet required. - Powered by NanoVector: Directly uses NanoVector's C99 AVX2/NEON vector search engine for instant 90-microsecond semantic retrieval.
- Intelligent Perceptual Frame Differencing: Continuously monitors your display; if the screen hasn't changed by >1.5% (reading, idle, away from desk), capture is skipped to conserve disk space and battery.
- Built-in Privacy Shield: Automatically detects active foreground windows and terminates recording whenever password managers (
1Password,Bitwarden,KeePass), private browsing windows (Incognito,InPrivate), or crypto wallets are active. - Dual Interface: Instant lightning-fast terminal CLI (
nanorecall search ...) and a sleek dark-mode local web dashboard (nanorecall ui).
🏛️ Architecture
┌────────────────────────────────┐
│ Windows Desktop Display │
└───────────────┬────────────────┘
│
(Perceptual Diffing / 0.1% CPU)
│
┌───────────────▼────────────────┐
│ Native Win32 Screen Capture │
│ (GDI / BitBlt / DirectMemory) │
└───────────────┬────────────────┘
│
┌───────────────▼────────────────┐
│ Offline Text Extraction │
│ (Windows.Media.Ocr / Local) │
└───────────────┬────────────────┘
│
├───────────────────────────────┐
│ Text + Embeddings │ Compressed Frame
▼ ▼
┌────────────────────────────────┐ ┌───────────────────────┐
│ NanoVector Core │ │ Local Image Store │
│ (C99 AVX2 + .nvec persistence)│ │ (WebP / 30-60 KB) │
└───────────────┬────────────────┘ └───────────┬───────────┘
│ │
└───────────────┬───────────────┘
▼
┌────────────────────────────────┐
│ Search & Recall Engine │
│ (CLI + Dark-Mode Dashboard) │
└────────────────────────────────┘
🚀 Interactive Google Colab Demo
Test NanoRecall interactively in your browser with zero local installation:
The Interactive Colab Notebook demonstrates:
- Backend & SIMD Detection: Verifying NanoRecall and NanoVector AVX2/NEON.
- Privacy Shield: Live simulation blocking 1Password/Incognito windows and redacting API keys.
- Desktop Memory & Search: Ingesting sample desktop screens and querying via natural language in <0.3 ms.
- Single-File
.nvecPersistence: Saving and restoring the entire screen memory index. - Colab CPU Benchmark: Benchmarking search latency (15–300 µs) and QPS over 10,000 frames.
🚀 Quickstart
1. Installation
pip install nanorecall
# or with uv
uv add nanorecall
(Requires Python 3.9+ on Windows, Linux, or macOS)
2. Capture Your Screen
Capture and index your current desktop state:
nanorecall capture
Output:
📸 Capturing desktop screen...
🔍 Extracting offline OCR text...
🧠 Indexing into NanoVector (Window: Active Window)...
✅ Indexed frame 2026-09-11_142315 (342 words, 98.4% change)
3. Natural Language Search (CLI)
Search for anything you saw hours, days, or weeks ago:
nanorecall search "github pull request sqlfluff"
Output:
🔍 Search Query: 'github pull request sqlfluff' (1 results found in 0.28 ms)
#1 [98% Match] Google Chrome — sqlfluff pull request 8449 github
🕒 Captured: 2026-09-11_142315
📝 Text: merged upstream/main to pull in CI fix and added StarRocks test cases...
🖼️ File: C:\Users\M_N_N\.nanorecall\frames\2026-09-11_142315.webp
4. Interactive Web Dashboard
Launch the local dark-mode dashboard with visual timeline scrubber:
nanorecall ui
Then open http://127.0.0.1:8765 in your browser.
- Interactive daily timeline scrubber (scrub your day hour-by-hour).
- Instant search bar with live autocomplete and semantic similarity badges.
- Click any memory card to inspect the full-resolution screenshot with OCR highlights.
5. Background Daemon
Run NanoRecall silently in the background:
nanorecall daemon --interval 3.0
6. Model Context Protocol (MCP) Server
NanoRecall features a native Model Context Protocol (MCP) Server over JSON-RPC 2.0 stdio, exposing private desktop memory and real-time screen capture to Claude Desktop, Cursor, Windsurf, and Google Antigravity.
Quickstart
Run directly via CLI:
nanorecall mcp
# or using the dedicated entry point:
nanorecall-mcp
Client Configuration
Add to your claude_desktop_config.json, .cursor/mcp.json, or Antigravity MCP settings:
{
"mcpServers": {
"nanorecall": {
"command": "nanorecall-mcp"
}
}
}
Or zero-install with uvx:
{
"mcpServers": {
"nanorecall": {
"command": "uvx",
"args": ["nanorecall", "mcp"]
}
}
}
Available MCP Tools
| Tool | Purpose | Annotations |
|---|---|---|
recall_search |
Semantic vector search across screen history, OCR text, and past app windows. | readOnlyHint: true |
recall_capture_now |
Capture and index current desktop screen in real-time with privacy shielding. | readOnlyHint: false |
recall_remember |
Manually persist custom text facts, notes, or preferences into episodic vector memory. | readOnlyHint: false |
recall_get_stats |
Inspect total indexed frames, vector dimension, database size in KB, and storage path. | readOnlyHint: true |
🛡️ Privacy Shield Rules
NanoRecall includes out-of-the-box protection rules. The following windows and sensitive tokens are automatically shielded from being recorded:
- Password Managers: 1Password, Bitwarden, KeePass, KeePassXC, LastPass, Dashlane, NordPass, Enpass.
- Private Browsing: Chrome Incognito, Edge InPrivate, Firefox Private Browsing, Tor Browser.
- Crypto Wallets: MetaMask, Phantom, Ledger Live, Trezor Suite, Exodus, Rabby.
- Credentials & Tokens: Credit card numbers, OpenAI API keys (
sk-...), GitHub personal access tokens (ghp_...), and SSH/RSA private keys are automatically redacted.
📊 Telemetry & Benchmark
nanorecall stats
⚡ NanoRecall Engine Telemetry:
----------------------------------------
Total Indexed Frames: 1,420
Vector Dimension: 128D
Active Backend: NanoVector (AVX2)
Local Database Size: 1.24 MB
Search Latency: 0.28 ms
Idle CPU Usage: < 0.1%
🧪 Testing & Verification
Run the full pytest suite covering screen capture, memory persistence, OCR pipelines, CLI commands, and privacy redaction filters:
uv run --extra dev pytest -v
# or with standard pytest
pytest -v
All 13 tests pass with 100% success rate across Python 3.8 through 3.16 (including No-GIL free-threaded 3.13t–3.16t) and PyPy 3.8 through 3.12.
🌐 High-Performance Systems Ecosystem
nanorecall is developed by @eminsk as part of an open-source AI & systems engineering ecosystem:
- ⚡ NanoVector — Bare-metal C99/AVX2 vector search & episodic memory engine (~120KB) with Native MCP Server (
pip install nanovector). - 🧠 AgentJIT — Just-In-Time Compiler for AI Agent Trajectories with speculative de-optimization guards (
pip install agentjit). - ⚡ NanoGEMM — Bare-metal AVX2+FMA SIMD matrix multiplication engine in ~100KB for sub-microsecond CPU inference (
pip install nanogemm). - 🛒 avito-sdk — Headless Avito scraping & data extraction SDK with price drop tracking, Playwright cookies, Telegram/VK bots, and Native MCP Server (
pip install avito-sdk). - 📊 xlsx_vievers — Headless Excel formula engine (129+ functions), desktop spreadsheet viewer, SIMD SSE2 math, and Native MCP Server (
pip install xlsx-viewer-pro). - 📈 yfinance-ta-patterns — Candlestick & chart pattern scanner with AI Confluence Scoring, Backtesting, and Native MCP Server (
pip install yfinance-ta-patterns).
🤝 Contributing
Contributions are warmly welcomed! Please submit issues or pull requests to improve OCR backends, UI features, or compression optimizations.
📜 License
Distributed under the MIT License. Created by eminsk.
Metadata
Release files for nanorecall 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nanorecall-0.1.4.tar.gz | 39.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nanorecall-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 73.1 kB
Release files / nanorecall-0.1.4.tar.gz
| Download URL | nanorecall-0.1.4.tar.gz |
|---|---|
| Size | 39.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c245561d20c6ac5e3ebe5b20c0c2e819e2064f2c03c34868bba49ad2b9d0ce74
|
|
BLAKE2b-256 checksum How to use checksums |
0fac2aa76c1ad0c2b309090bee835ce4b194bdc5c1e7accd0683af5743acf640
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / nanorecall-0.1.4-py3-none-any.whl
| Download URL | nanorecall-0.1.4-py3-none-any.whl |
|---|---|
| Size | 33.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3643cef61a5276a713e3b545a75159678c00e6ec91215103d09ed4cd28bbcaad
|
|
BLAKE2b-256 checksum How to use checksums |
8f5074ff0c7a57aaccf94185cece9473ea36cfb87d816fd6a17d3007a1ea9ce2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|