← Back to home

Security & Technical Overview

MemoryLane by SenseFlow, Inc.


Core Principle

You only share what you choose to share.

Your data stays on your device. Screenshots are captured, processed locally or via secure AI, and then cleaned up after processing. A background sweep every 10 minutes removes screenshot files older than 1 hour. The semantic insights extracted are stored only on your machine. Nothing leaves your device unless you explicitly choose to share it, with the following exceptions: (1) if using Scenario A, the app contacts api.trymemorylane.com on startup to validate your subscription using a device identifier; (2) on first use, the local embedding model is downloaded from huggingface.co.


How MemoryLane Works

Screenshot Lifecycle

  1. Capture — Screenshots are taken at approximately 1-second intervals during active activity sessions. Sessions are bounded by application switches, 5-second inactivity gaps, and a 5-minute maximum duration.
  2. Prepare — Depending on the capture mode:
    • Auto mode (default): Attempts video first and falls back to image mode if video processing is unavailable or fails.
    • Video mode: Captured frames are stitched into a 1 FPS video via FFmpeg. The video is sent alongside activity metadata for AI summarization.
    • Image mode: Up to 6 key screenshots are sampled based on visual difference and interaction timing, then fed as images into a vision model.
  3. Process — AI extracts semantic meaning (what you were doing, context). Local OCR (macOS Vision framework / Windows native OCR) also extracts on-screen text. Local embeddings are generated for semantic search using the @huggingface/transformers library with the all-MiniLM-L6-v2 model. On first use, the embedding model (~100 MB) is downloaded from huggingface.co and cached locally for subsequent use.
  4. Store — Semantic data, OCR text, and embeddings are saved to a local SQLite database on your device.
  5. Clean Up — Screenshot and video files are cleaned up after processing. A background sweep runs every 10 minutes and removes any screenshot or video files older than 1 hour.

Local Storage

  • macOS: ~/Library/Application Support/MemoryLane/
  • Windows: %APPDATA%\MemoryLane\
  • Logs (macOS): ~/Library/Logs/MemoryLane/
  • Logs (Windows): %APPDATA%\MemoryLane\logs\
  • Format: SQLite database
  • Ownership: You control your data completely

AI Processing Options

MemoryLane offers three deployment scenarios for AI processing:

Scenario A: OpenRouter (Default)

How it works:

  • Data goes directly from your device to OpenRouter — SenseFlow does not proxy or route your data
  • OpenRouter load-balances and geo-balances across AI providers:
    • Video mode: A stitched 1 FPS video is sent alongside activity metadata to AI models (e.g., Gemini 2.5 Flash Lite, Gemini 3 Flash, Molmo 2 8B) via ZDR-compliant endpoints
    • Image mode: Up to 6 sampled screenshots are fed into AI models (e.g., Mistral Small 3.2, Gemini 2.5 Flash Lite) via ZDR-compliant endpoints
    • Pattern detection (Pro): Kimi K2.5 via ZDR-compliant endpoint — receives activity metadata including text summaries, window titles, app names, domain names, and timestamps (no images or screenshots)
  • Zero Data Retention (ZDR) is enabled at the OpenRouter account level for managed API keys — see ZDR section below
  • Only semantic data (text describing what was on screen) returns to your device
  • Screenshots are cleaned up after processing (background sweep removes files >1 hour old)
  • Local OCR and embeddings are computed entirely on-device

Scenario B: Your Cloud AI Endpoint

How it works:

  • Configure MemoryLane to use your own AI endpoint
  • You control the AI provider and data handling
  • MemoryLane never sends your data to us
  • Self-setup or paid monthly support available

Scenario C: Fully Local Models

How it works:

  • AI model runs entirely on your device
  • No data ever leaves your machine
  • Complete privacy and air-gap capability
  • Self-setup or paid monthly support available

Technical Details

What Installs

ComponentDescription
MemoryLane AppDesktop application (macOS Apple Silicon, Windows x64)
Local SQLite DBStores semantic data, OCR text, and embeddings (unencrypted; protected by OS-level file permissions)
FFmpegBundled for video stitching of screenshot sequences
@huggingface/transformersLocal embedding generation (all-MiniLM-L6-v2 model, downloaded from huggingface.co on first use)
Native sidecar binariesSwift (macOS) and Rust (Windows) binaries for active window detection and browser URL extraction
Config filesUser preferences, AI endpoint settings

What It Captures

  • Screenshots at ~1-second intervals during activity sessions (bounded by app switches, 5-second inactivity gaps, and 5-minute maximum duration)
  • Interaction metadata (used ephemerally for session windowing, not stored in the database): keyboard session durations and key counts, mouse click positions (x, y coordinates), scroll events — no keystroke content is recorded
  • Window context: active window titles, process names, bundle identifiers, and browser URLs (for categorization). Browser URLs are extracted via the macOS Accessibility API or equivalent for supported browsers (Chrome, Safari, Edge, Brave, Arc, Vivaldi, Opera)
  • OCR text: on-screen text extracted locally via macOS Vision framework or Windows native OCR
  • Video clips: screenshot sequences stitched locally via FFmpeg
  • Embeddings: semantic vectors generated locally via @huggingface/transformers (all-MiniLM-L6-v2)
  • User can pause capture anytime directly in the app
  • Screenshots are captured from all visible windows, including incognito/private browser windows, when they are the active window during a capture interval

What Gets Transmitted

ScenarioWhat's SentWhere
A (OpenRouter — Video mode)Stitched 1 FPS MP4 video + activity metadataDirect to OpenRouter → ZDR-compliant provider endpoints
A (OpenRouter — Image mode)Up to 6 compressed screenshotsDirect to OpenRouter → ZDR-compliant provider endpoints
A (Pattern Detection)Activity metadata: text summaries, window titles, app names, domain names, timestampsDirect to OpenRouter → ZDR-compliant provider endpoints
A (Subscription/Auth)Device identifierapi.trymemorylane.com (automatic on startup)
A (Payments)Payment infoStripe (via browser redirect)
First run (all scenarios)Model download requesthuggingface.co (embedding model, ~100 MB, one-time)
B (Your Endpoint)Per your configYour infrastructure
C (Local)NothingStays on device

Network Requirements (Scenario A)

EndpointPortPurpose
api.openrouter.ai443 (HTTPS)AI processing
api.trymemorylane.com443 (HTTPS)Subscription validation, licensing (device ID sent automatically on startup)
github.com443 (HTTPS)Application updates
huggingface.co443 (HTTPS)One-time embedding model download on first use

System Requirements

PlatformMinimum
macOSApple Silicon (ARM64), 4GB RAM, 500MB disk
WindowsWindows 10+ (x64), 4GB RAM, 500MB disk

Security Controls

Encryption

ContextMethod
In transitHTTPS/TLS for all API communications (TLS version negotiated by the OS and server)
Credentials at restAPI keys and device ID encrypted via Electron safeStorage (uses macOS Keychain / Windows DPAPI to derive encryption keys; encrypted data stored in local config files)
Local databaseSQLite — unencrypted; protected by OS-level file permissions and user account access controls. Any process running as the same OS user can access the database.

Zero Data Retention (Scenario A)

When using Scenario A, screenshots and video are sent directly from your device to OpenRouter (SenseFlow never sees or proxies this data). OpenRouter load-balances and geo-balances requests across AI providers.

Managed API keys: SenseFlow provisions OpenRouter API keys with Zero Data Retention (ZDR) enabled at the account level. When ZDR is enabled, OpenRouter only routes requests to endpoints it classifies as ZDR-compliant. Requests that cannot be routed to a ZDR-compliant endpoint will fail rather than fall back to a non-ZDR provider.

Bring Your Own Key (BYOK): If you use your own OpenRouter API key, ZDR depends on your own OpenRouter account settings. You are responsible for enabling ZDR in your OpenRouter account if desired.

OpenRouter's ZDR is a routing-level control — it determines which provider endpoints your requests can be sent to. Individual AI providers may have their own data retention policies independent of OpenRouter. Customers with specific compliance requirements should review provider policies directly.

Interaction Monitoring

MemoryLane monitors user interaction to detect activity sessions and provide productivity context. Here is what is and is not recorded:

Input TypeWhat IS RecordedWhat is NOT Recorded
KeyboardSession duration, key count, active window titleKeystroke content (what you type)
MouseClick position (x, y coordinates)Click count (not persisted), what was clicked on (content)
ScrollCumulative scroll amount, direction (vertical/horizontal)Scroll content
Window focusWindow title, process name, bundle ID, browser URL, previous windowWindow content (captured separately via screenshots)

Interaction data is collected via uiohook-napi (keyboard, mouse, scroll) and native sidecar binaries (window/app changes, browser URLs). Interaction metadata is used ephemerally for session windowing and is not durably stored in the database. It is never transmitted to SenseFlow or any third party.

MCP Server Integration

MemoryLane includes an optional Model Context Protocol (MCP) server that allows compatible AI assistants (e.g., Claude, Cursor) to query your local activity data.

  • Protocol: Local stdio-based MCP server. On first use, the embedding model is downloaded from huggingface.co if not already cached; all subsequent communication is local only
  • Configuration: User must explicitly configure their AI assistant to connect to the MCP server
  • Data scope: AI assistants can query semantic data, activity summaries, raw OCR text, and search your local history
  • No data sent to SenseFlow: The MCP server operates entirely locally. SenseFlow has no access to MCP queries or responses
  • User control: The MCP server can be disabled at any time in app settings

Pattern Detection (Pro Feature)

MemoryLane Pro includes pattern detection that identifies recurring work patterns and provides productivity insights.

  • Input: Activity metadata including text summaries, window titles, app names, domain names, and timestamps for the day's sessions (no images or screenshots)
  • Processing: Activity metadata is sent to Kimi K2.5 via OpenRouter once per day (routed to a ZDR-compliant endpoint)
  • Output: Text-based pattern descriptions and productivity insights
  • Storage: Pattern data stored locally in the SQLite database
  • No images transmitted: Pattern detection receives only text — never screenshots or video

Supported AI Models (Scenario A)

Capture ModeModels UsedInput
Auto mode (default)Attempts video models first, falls back to image modelsSee below
Video modeGemini 2.5 Flash Lite (preview), Gemini 3 Flash (preview), Molmo 2 8B — via OpenRouter ZDR-compliant endpoints1 FPS stitched video + activity metadata
Image modeMistral Small 3.2, Gemini 2.5 Flash Lite — via OpenRouter ZDR-compliant endpointsUp to 6 sampled screenshots (as images)
Pattern detection (Pro)Kimi K2.5 — via OpenRouter ZDR-compliant endpointsActivity metadata: summaries, window titles, app names, domains, timestamps

All models are accessed via OpenRouter API. The specific models used may be updated over time; current defaults are listed above.

User Controls

ControlDescription
PauseStop all capture with one click
View dataSee all semantic data stored locally
Export dataExport the local database as a ZIP file containing the SQLite database
UninstallRemove the application. User data directories must be manually deleted (see Uninstallation section)

Audit Trail

  • Local logs available at:
    • macOS: ~/Library/Logs/MemoryLane/
    • Windows: %APPDATA%\MemoryLane\logs\
  • Logs contain: capture events, AI calls (without content), errors
  • No screenshots or semantic content in logs

Open Source

The MemoryLane desktop client is open source.

  • Repository: [https://github.com/deusXmachina-dev/memorylane]
  • Anyone can audit exactly what code runs on your machine
  • The managed backend service (api.trymemorylane.com) used for subscription validation and key provisioning is proprietary

GDPR / Privacy Regulations

  • Data minimization: Only semantic data retained long-term; screenshots cleaned up after processing
  • Local storage: Data stays on user's device
  • User rights: Access and portability supported via in-app export; deletion requires manual removal of the database file (see Uninstallation section for paths)
  • Lawful basis: Legitimate interest or consent (via employer)

APP (Australian Privacy Principles)

  • APP 5 compliance: Employee notification template provided upon request
  • Sample 'Employee Information Document' provided upon request

Employee Notification

Before deploying MemoryLane, employers must notify employees.


Uninstallation

Application Removal

  1. macOS: Drag MemoryLane to Trash
  2. Windows: Control Panel → Uninstall a program → MemoryLane

Data Deletion

Standard application removal removes the application binary but does not automatically delete user data. To completely remove all data, you must manually delete the following directories:

  • macOS: ~/Library/Application Support/MemoryLane/ and ~/Library/Logs/MemoryLane/
  • Windows: %APPDATA%\MemoryLane\

These directories contain:

  • Local SQLite database (semantic data, OCR text, embeddings)
  • Configuration files (encrypted API keys, device identity)
  • Cached embedding model
  • Application logs

Contact

For security inquiries or audits:

Email: founders@trymemorylane.com

SenseFlow, Inc. 131 Continental Dr, Suite 305 Newark, DE 19713 United States