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:
- Reconstructs Timeline Blocks: Logs foreground window sessions and intelligently clusters them into logical, coherent "work blocks" rather than raw, fragmented minutes.
- 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.
- 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.
- 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-sqlite3and 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
- claude-api
- electron
- keytar
- react-19
- recharts
- sqlite
- swift
- tailwindcss-v4
- typescript

Log in or sign up for Devpost to join the conversation.