Inspiration

Every student and professional suffers from a massive "digital context gap." We consume vast amounts of research articles, educational videos, documentation, and tools daily, but because human memory is finite, over 90% of our personal digital history is lost forever.

Standard assistants like Claude cannot help because they start from zero every conversation. I built Daylens to solve this—not as another screen-time dashboard, but as a true Personal Digital Memory System. Your device witnesses everything you learn. Daylens makes it searchable on demand.

What it does

Daylens operates quietly as a local-first desktop application that:

  1. Reconstructs Timeline Blocks: Logs foreground window sessions and intelligently clusters them into logical, coherent "work blocks" rather than raw, fragmented minutes.
  2. Enriches Consumed Content: Features a background Content Indexer that automatically extracts page content from visited learning, research, or documentation URLs (Coursera, YouTube, arXiv, blogs) and uses the Claude API to write structured, topic-tagged summaries.
  3. Synthesizes via AI Chat: Provides a local AI chat surface to ask natural language questions ("What did I study about machine learning this week?") and outputs precise, grounded summaries backed by time and domain citations.
  4. Bridges Context via MCP: Integrates a built-in Model Context Protocol (MCP) server that exposes your entire digital past as retrievable context inside Cursor, Claude Code, or Claude Desktop.

How we built it

  • Desktop Shell & UI: Built with Electron, TypeScript, React 19, and TailwindCSS v4.
  • Data Storage: Backed by a high-performance local SQLite database (better-sqlite3) to guarantee that 100% of user data remains private on-device.
  • Native Capture Layer: Developed a custom macOS Swift native capture probe to capture foreground application windows cleanly.
  • AI Integration: Powered by the Anthropic SDK (Claude API) for semantic content summarizing, a hybrid query router, and multi-model tool-calling.

Challenges we ran into

  • Heuristic Context Splitting: Grouping hyper-fragmented window switches (especially context-switching between code, terminal, and browser documentation) into single, logical "work blocks" without timeline noise.
  • Native C++ & Swift Compilation: Compiling native system bindings (like better-sqlite3 and our custom Swift capture helper) across different platforms to ensure the Electron app runs cleanly.
  • Zero-Cloud Privacy Constraints: Designing an AI retrieval system that provides rich answers while respecting absolute user privacy, avoiding sending raw capture history to external clouds. ## Accomplishments that we're proud of
  • Absolute Privacy: Achieving a zero-cloud architecture where privacy is the core design constraint, not a tradeoff. The user owns every byte.
  • The Content Indexer: Seamlessly turning raw web history into rich, semantic, topic-tagged learning modules. You query the concepts you studied, not the app names you had open.
  • MCP Server Integration: Exposing a local desktop app's telemetry to Cursor and Claude Desktop, transforming your entire activity history into active prompt context.

What we learned

  • How to build highly efficient background jobs and Inter-Process Communication (IPC) loops within Electron.
  • How to coordinate deterministic routing with generative LLM tool-calling to build a highly responsive and reliable search taxonomy.
  • How to build deep integration layers (like MCP) that turn local desktop databases into powerful external context layers.

What's next for Daylens

  • Local Document Indexing: Watch and index specific local directories (markdown notes, code folders, sheets) to retrieve file-level modifications.
  • iMessage and Local DB Integrations: Secure, opt-in local access to communication channels (e.g., ~/Library/Messages/chat.db) to reconstruct communication blocks.
  • Calendar & Email Integrations: Secure OAuth connectors for Google and Outlook platforms.

Built With

Share this project:

Updates