# RewindOS – Searchable screen history for Linux local

> Source: <https://github.com/jaypopat/rewindos>
> Published: 2026-06-16 11:16:40+00:00

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.**

|
|

**Ask** — chat your history with cited screenshots

**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.

**🔎 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](https://modelcontextprotocol.io) 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](/jaypopat/rewindos/blob/master/workers/update-proxy) (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](https://rewindos-updates.incident-agent.workers.dev/stats). 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.)

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

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.

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

[Ollama](https://ollama.com)— 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).

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
```

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 |

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

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`

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](https://github.com/casey/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
```

MIT
