Skip to content

jaypopat/rewindos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

386 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RewindOS

Perfect memory for your Linux desktop.

A private, open-source alternative to Windows Recall and Rewind.ai. Everything you've ever seen on your screen, instantly searchable — no cloud, no account, no telemetry, 100% on your machine.

License: MIT Latest release AUR: coming soon Platform: Linux Wayland Stars

RewindOS — your day at a glance
Search

Search — full-text + semantic across everything you've seen

Ask

Ask — chat your history with cited screenshots

Why RewindOS

  • Truly local. Capture, OCR, search, and AI all run on your machine. No cloud, no account, no telemetry — it works fully offline.
  • Open source. MIT-licensed. Read every line, audit what it stores, fork it.
  • Built for Linux. Native Wayland capture via xdg-desktop-portal + PipeWire — works on KDE, GNOME, and wlroots compositors. No competitor ships here.
  • Fast. SQLite FTS5 gives sub-100ms full-text search across weeks of screen history.
RewindOS Windows Recall Rewind.ai
Linux / Wayland
Open source
Local-only, no cloud 1
No subscription
Bring-your-own AI (local or API)
Independent — not shut down / acqui-hired 2

1 on-device, but closed-source and Windows-only.   2 Rewind → Limitless → acquired by Meta; the Mac app's capture was disabled Dec 19, 2025, and EU/UK data deleted.

Rewind got the privacy model right — it stored everything locally too — but it was macOS-only, proprietary, and is now gone. RewindOS is the open-source, Linux-native version that no acquisition can switch off.

Also open source: omi — but macOS-only and cloud-backed. RewindOS stays fully local and Linux-native.

Features

🔎 Search & Recall Full-text search across everything on your screen in under 100ms. Optional hybrid search fuses keyword + semantic results (Ollama embeddings, Reciprocal Rank Fusion). Perceptual hashing skips near-identical frames, and scene grouping keeps results clean.

🎞️ Browse & Replay Scroll your screen history chronologically with hourly grouping, or scrub through it as a timelapse with speed controls and keyboard navigation. A dashboard surfaces app-usage stats, daily/hourly activity charts, and a heatmap calendar.

🤖 Ask AI Ask questions about your screen history and get answers with inline citations, a Sources card, and click-through to the exact screenshots. Backed by Claude Code (opus / sonnet / haiku) or local Ollama via a per-chat model picker. Pin screenshots as context; copy, regenerate, and follow-up.

🔌 Works with Claude Code & any MCP client The daemon ships an MCP server, so you can query your screen history straight from Claude Code (or any MCP-capable agent) — "what was that doc I had open yesterday?" — without leaving your terminal. Exposes tools for search, timeline, recent activity, app usage, per-screenshot detail, and meeting transcripts; all local, same database the app uses.

🗂️ Organize A rich-text journal (Tiptap) with tags, templates, screenshot attachments, and AI summaries. Bookmarks & collections to save what matters. Vault export writes daily memory notes (journal, recap, meetings, key moments, stats) straight into your Obsidian or Logseq vault.

🔒 Privacy Exclude specific apps or window-title patterns (password managers, private browsing). Global hotkey Ctrl+Shift+Space opens search instantly; the app runs quietly in the system tray.

RewindOS reaches the network on its own for one thing: a daily check-in (the app's update check and the capture daemon's heartbeat) via a small Cloudflare Worker (open source, in this repo). The worker hashes your IP with a daily, server-only salt to count distinct active devices, then discards it — no IP, no identifier, no payload is ever stored. All it keeps is an anonymous daily count, bucketed by app version and desktop environment (so the project can see release adoption and KDE-vs-GNOME mix); both are aggregate counts, never tied to you. The full dataset is published live. Opt out entirely with usage_heartbeat = false under [privacy] in ~/.rewindos/config.toml. (The update check also falls back to GitHub directly if the worker is down.)

Rewind

Rewind — replay your day as a timelapse

History

History — daily digest, app distribution, task breakdown

Install

Arch Linux (AUR package coming soon)

yay -S rewindos-bin     # or: paru -S rewindos-bin
systemctl --user enable --now rewindos-daemon.service

Other distros

RewindOS is local-first and privacy-focused, so the recommended install is download, read, then run:

curl -fsSL https://raw.githubusercontent.com/jaypopat/rewindos/master/scripts/install.sh -o install.sh
less install.sh          # read what it does
bash install.sh

Prefer a one-liner? (Same script, run directly.)

curl -fsSL https://raw.githubusercontent.com/jaypopat/rewindos/master/scripts/install.sh | bash

The installer detects your distro, installs the system dependencies (Tesseract, PipeWire, the webview, and the right desktop portal), downloads and checksum-verifies the latest release, and enables the capture daemon as a systemd user service.

Options

bash install.sh --with-paddleocr   # higher-accuracy OCR (heavier Python deps)
bash install.sh --update           # update to the latest release
bash install.sh --uninstall        # remove RewindOS (asks before deleting your data)

Requirements: x86_64, a modern Wayland desktop (KDE, GNOME, Hyprland, Sway), and a current distro. The prebuilt binary targets recent glibc + webkit2gtk-4.1; on older distros, build from source.

Optional: AI features

These are off by default; RewindOS works fully without them.

  • Ollama — local semantic search, chat, and journal summaries (everything stays on-device).
  • Claude Code CLI — higher-quality chat; once installed and registered with MCP, the Ask view's model picker exposes its tiers (opus / sonnet / haiku).

How it works

A background daemon captures screenshots every 5 seconds, deduplicates them with perceptual hashing, runs OCR via Tesseract, and indexes the extracted text into SQLite FTS5. A Tauri desktop app provides search, browsing, journaling, and analytics.

Timer (5s) → Screen Capture → Hash & Dedupe → OCR → SQLite FTS5

Platform support

Linux on Wayland. Capture uses xdg-desktop-portal + PipeWire, so it works on any compositor that implements the ScreenCast portal.

Desktop Status
KDE Plasma 6+ ✅ Tested
GNOME 46+ ✅ Tested — install the "Window Calls Extended" extension for app/window names
Hyprland · Sway · other wlroots ⚠️ Should work via the portal — not yet verified

x86_64 only for prebuilt binaries. X11-only sessions aren't supported.

Usage

After installation, the daemon starts automatically. The UI autostarts minimized to the system tray.

  • Open search: Ctrl+Shift+Space
  • View logs: journalctl --user -u rewindos-daemon -f
  • Restart daemon: systemctl --user restart rewindos-daemon
  • Launch UI manually: rewindos
  • Daemon CLI: rewindos-daemon pause | resume | status | backfill

Storage

At default settings (~5s interval, 8h/day):

Metric Estimate
Frames/day (after dedup) ~2,880
Storage/day ~210 MB
90-day retention ~19 GB

Screenshots are stored as WebP in ~/.rewindos/. Retention is configurable.

Build from source

The install.sh path above installs system dependencies for you — this section is only if you'd rather build it yourself.

sudo apt install \
  libpipewire-0.3-dev \
  tesseract-ocr tesseract-ocr-eng \
  libclang-dev libsqlite3-dev \
  libdbus-1-dev pkg-config build-essential

Tasks are run with just (cargo install just):

just install

This builds the Rust workspace and frontend, installs the daemon as a systemd user service, and sets up the desktop app to autostart minimized to tray on login.

Manual / dev build

cargo build --workspace       # Rust crates
bun install                   # Frontend deps
bun run tauri dev             # Run in dev mode
Configuration

Config lives at ~/.rewindos/config.toml. Key options:

  • Capture interval and change sensitivity threshold
  • Excluded apps and window title patterns (e.g. password managers, private browsing)
  • Retention period and storage limits
  • OCR language and worker count
  • Ollama endpoint for AI features (semantic search, chat, summaries)
  • App categories — custom app→category rules for the activity breakdown (Settings → General)
Project layout
crates/rewindos-core/     Shared lib (DB, OCR, hashing, config, embedding, chat)
crates/rewindos-daemon/   Capture daemon (PipeWire, pipeline, D-Bus, window info)
src-tauri/                Tauri app (commands, D-Bus client, AI chat)
src/                      React frontend
  components/             Reusable UI components (search, charts, shared)
  features/               Feature views (ask, dashboard, history, journal, rewind, saved, settings)
  hooks/                  Custom React hooks
  context/                React context providers
  lib/                    API wrappers, utilities, query keys
docs/                     Architecture & design docs
systemd/                  Service files and desktop entries

License

MIT

About

A private, open-source alternative to Windows Recall — for Linux. Captures your screen, OCRs it, and makes everything you've seen instantly searchable. 100% local, no cloud.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors