◉ Pulse
snackbit avatar
#44 today ▲ 40

snackbit/daydream

Rust App

Local-first desktop recall assistant that turns screen, audio, activity, and window context into a searchable timeline of your day.

Created Jul 23, 2026
Stars
22
Today
+5
Forks
0
Quality
100/100
Momentum
41

README

Fetched from GitHub on Oct 30, 2026, 9:23 PM UTC · README.md

View original on GitHub

Third-party content — Open Source Pulse is not the owner of this repository.

This README belongs to snackbit/daydream and its contributors. We fetch it directly from the project’s public GitHub repository and display it for reference only. All text, code, images and trademarks remain the property of their respective authors. See the repository for its license terms. Copyright / takedown policy.

Daydream

Daydream is a local-first desktop recall assistant for answering one question: what did I do today?

It records screen, audio, activity, and window context on hardware you control, then turns that evidence into a timeline you can review and process locally.

Daydream recording studio showing playback, redacted spans, audio waveforms, and activity lanes

Warning

Daydream is a Linux-first developer alpha. There are no stable packaged releases yet, and several product areas are still under active development.

What works today

  • Multi-monitor capture through the Linux desktop portal and PipeWire.
  • A scene editor for arranging selected displays on one recording canvas.
  • Separate desktop and microphone audio streams in local MKV segments.
  • Explicit start, pause, resume, and stop controls.
  • Local Library playback with thumbnails, waveforms, track lanes, and source timestamps.
  • Timeline redactions that exclude or invalidate overlapping derived results.
  • Protected-window rules that can pause capture or create automatic redactions.
  • Mouse, keyboard, frame-change, and window activity lanes without recording typed text or pointer coordinates.
  • Resumable processing jobs for transcription, OCR, visual observations, and activity analysis.
  • Local transcription through vendored whisper.cpp.
  • Tesseract OCR using system or managed language data.
  • Optional OpenAI-compatible remote transcription and vision endpoints.
  • Rust-owned SQLite storage with embedded migrations.

Recorded by Daydream

The demonstration below was recorded by Daydream itself. The animation is silent; the original desktop and microphone tracks were not added to this repository.

Daydream recording its own Diagnostics, Settings, Notifications, and Capture screens

Privacy model

Daydream handles screen recordings, audio, OCR, transcripts, window titles, activity patterns, and generated observations. The default architecture keeps that data on the local machine.

  • Captured content is not uploaded by default.
  • Remote AI providers require explicit configuration.
  • API keys are stored through the backend rather than exposed to React.
  • Raw frames, audio, OCR text, transcripts, prompts, and window titles are not written to normal logs.
  • Redacted ranges are excluded from later processing and hidden or invalidated in derived results.
  • Input activity records timing and state, not key values, typed text, pointer coordinates, or clicked content.
  • Recording state stays visible and user-controlled.

The codebase treats deletion and redaction as data-model concerns, not visual filters. Work is still ongoing to make physical media deletion and every downstream cleanup path equally complete.

Current limits

  • Development and real capture testing currently focus on Linux, especially KDE Plasma on Wayland. Windows and macOS capture adapters are not implemented.
  • The searchable day index, semantic search, daily digest, task extraction, and cited question answering are planned work.
  • There is no stable installer, automatic updater, or supported release channel.
  • Some Linux capabilities depend on desktop portal, PipeWire, GStreamer, Tesseract, input-device permissions, and compositor support.
  • Full GPU composition and hardware encoding remain future work.
  • Optional remote model endpoints can receive private content when the user enables and configures them.

Architecture

Daydream is a Yarn 4 monorepo:

  • apps/desktop: Tauri 2, React, Vite, Tailwind, shadcn components, TanStack Router, and Zustand.
  • apps/desktop/src-tauri: Rust capture, playback, processing, settings, diagnostics, and SQLite ownership.
  • packages/shared: TypeScript contracts shared across the desktop boundary.
  • packages/ffmpeg: development FFmpeg resolution through ffmpeg-static.
  • packages/eslint-config and packages/tsconfig: shared project tooling.

The Linux recorder uses xdg-desktop-portal and PipeWire for screen sources, GStreamer for segmented media writing, and separate desktop and microphone audio tracks. Processing runs after capture in deterministic, resumable chunks.

capture
  -> local MKV segments and activity metadata
  -> redaction-aware chunk planning
  -> transcription, OCR, activity, and optional vision processing
  -> SQLite-backed timeline results
  -> local playback and review

React does not access SQLite, native capture APIs, media writers, or model runtimes directly. Typed Tauri commands own those boundaries.

Development

Prerequisites

  • Node.js 22 or newer
  • Corepack
  • Rust and Cargo
  • Linux Tauri development libraries for WebKitGTK 4.1
  • PipeWire and xdg-desktop-portal
  • GStreamer development headers and the base, good, bad, ugly, and PulseAudio plugin sets
  • CMake, Clang, and libclang for the vendored whisper.cpp build
  • Tesseract for local OCR

On Debian or Ubuntu, the native development packages include:

sudo apt install \
  libwebkit2gtk-4.1-dev \
  build-essential \
  curl \
  wget \
  file \
  libxdo-dev \
  libssl-dev \
  libayatana-appindicator3-dev \
  librsvg2-dev \
  libpipewire-0.3-dev \
  libpulse-dev \
  libgstreamer1.0-dev \
  libgstreamer-plugins-base1.0-dev \
  libgstreamer-plugins-bad1.0-dev \
  gstreamer1.0-plugins-base \
  gstreamer1.0-plugins-good \
  gstreamer1.0-plugins-bad \
  gstreamer1.0-plugins-ugly \
  gstreamer1.0-libav \
  gstreamer1.0-tools \
  gstreamer1.0-pulseaudio \
  cmake \
  clang \
  libclang-dev \
  tesseract-ocr

Package names vary by distribution.

Install and run

COREPACK_HOME=/tmp/corepack corepack yarn install
COREPACK_HOME=/tmp/corepack corepack yarn dev

On Linux Wayland, the development launcher sets WEBKIT_DISABLE_DMABUF_RENDERER=1 by default to avoid known WebKitGTK DMA-BUF protocol failures.

Quality gates

COREPACK_HOME=/tmp/corepack corepack yarn lint:fix
COREPACK_HOME=/tmp/corepack corepack yarn check
cargo test --manifest-path apps/desktop/src-tauri/Cargo.toml

Some Rust transcription tests bind temporary loopback ports.

Project documents

Detailed design decisions and implementation history live under docs/milestones:

Contributing and security

Read CONTRIBUTING.md before opening a change.

Do not attach real recordings, screenshots, transcripts, OCR output, window titles, or unredacted logs to public issues. Report security problems privately as described in SECURITY.md.

License

Daydream is licensed under the GNU Affero General Public License v3.0 or later.

Copyright © 2026 Felix Faust.

Third-party code, tools, models, and runtime components retain their own licenses. See THIRD_PARTY_NOTICES.md.

Rendered by GitHub from the repository’s README. Scroll to read the full file.
First trending

Jul 24, 2026

first spotted on the list

Best rank

#14

highest position reached

Appearances

3

times on the trending list

Quality score

100

out of 100

Momentum

41

trend strength indicator

Star velocity

0.22

stars per day since creation

Activity — last 60 days

daily counts, collected every 6 hours
  • Stars
  • Forks
  • Merged PRs
  • Issues
  • Closed issues

Collecting activity data since launch — check back in a few days.

Star history

total stars per snapshot
1012141618202224snackbit/daydream · Jul 24, 2 AM UTC: 13 starssnackbit/daydream · Jul 24, 8 AM UTC: 17 starssnackbit/daydream · Jul 24, 1 PM UTC: 22 stars2 AM8 AM1 PM

Rank history

position on trending · lower is better
#1#10#20#30#40#50#60Jul 24, 2 AM UTC: rank #14Jul 24, 8 AM UTC: rank #52Jul 24, 1 PM UTC: rank #442 AM8 AM1 PM

3D card for your website

Live HTML card with a glass surface and pointer tilt. Paste the iframe on any website.

<iframe src="https://www.notionpulse.cc/embed/snackbit/daydream" width="420" height="240" style="border:0;max-width:100%;background:transparent" loading="lazy" title="snackbit/daydream — trending on Open Source Pulse"></iframe>

Stars badge

Show current stars in your README or profile. Auto-updates every 6 hours.

snackbit/daydream stars badge
Markdown
[![snackbit/daydream](https://www.notionpulse.cc/api/badge/snackbit/daydream.svg)](https://www.notionpulse.cc/repo/snackbit/daydream)
HTML
<a href="https://www.notionpulse.cc/repo/snackbit/daydream"><img src="https://www.notionpulse.cc/api/badge/snackbit/daydream.svg" alt="snackbit/daydream stars badge" /></a>

Repository of the Day

#14 Repository of the Day

Repository of the Week

#14 Repository of the Week

Repository of the Month

#14 Repository of the Month