{"adoption": {"forks": 180, "observed_at": "2026-08-28T04:08:29.892296+00:00", "stars": 3926}, "canonical_url": "https://ross.abutalabs.com/products/windrecorder", "card": {"archived": false, "artifact_type": "application", "description": "Windrecorder is a memory search app by records everything on your screen in small size, to let you rewind what you have seen, query through OCR text or image description, and get activity statistics, like Microsoft's Windows Recall or Rewind.", "domain": ["developer-tools", "privacy", "self-hosted"], "enriched": true, "function": ["ocr", "search-engine", "nlp", "data-visualization", "image-processing"], "health_score": 45, "homepage": null, "language": "Python", "license": "GPL-2.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["yuka-friends/Windrecorder"], "name": "yuka-friends/Windrecorder", "platform": ["windows", "python", "self-hosted"], "pushed_at": "2025-09-16T15:30:00+00:00", "repo": "yuka-friends/Windrecorder", "stars": 3926, "tags": ["screen-recording", "rewind", "windows-recall-alternative", "local-first", "memory-search", "ffmpeg", "streamlit", "activity-tracking", "natural-language-processing", "desktop"], "topics": ["ffmpeg", "streamlit", "productivity", "rewind", "search", "recall"], "urls": [], "use_cases": ["search everything I've seen on my screen", "rewind and find a page I read earlier", "local alternative to Windows Recall or Rewind.ai", "track my screen activity statistics and timelines", "OCR text search across screen recordings", "record screen continuously with low disk usage"], "what_it_is": "Windrecorder is a local-first screen recording and memory search app for Windows, an open-source alternative to Rewind.ai and Microsoft Recall. It continuously captures your screen, indexes it with OCR and image descriptions, and lets you search your past activity through a web UI with activity statistics.", "when_to_avoid": ["you need a mature, polished production tool - the project is in early development", "you're on macOS or Linux - it targets Windows", "you can't afford continuous screen recording's disk and CPU overhead", "you need multi-device or cloud sync of recordings"], "when_to_choose": ["you want a fully local, private screen memory search tool on Windows", "you need OCR search over everything displayed on your screen", "you want activity analytics like word clouds and timelines from screen data", "you prefer owning your data with no cloud upload"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/windrecorder", "repo": "yuka-friends/Windrecorder", "role": "main", "score": 47}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:29.892296+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:24:43.716243+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d025e1a17e5c966efecca89bc41341e8e71e98bdfa40f8e1230875fe86f95f86", "fetched_at": "2026-08-28T04:08:29.892296+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yuka-friends/Windrecorder"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:29.892296+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:24:43.716243+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d025e1a17e5c966efecca89bc41341e8e71e98bdfa40f8e1230875fe86f95f86", "fetched_at": "2026-08-28T04:08:29.892296+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yuka-friends/Windrecorder"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:24:43.716243+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d025e1a17e5c966efecca89bc41341e8e71e98bdfa40f8e1230875fe86f95f86", "fetched_at": "2026-08-28T04:08:29.892296+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yuka-friends/Windrecorder"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:08:29.892296+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:29.892296+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:29.892296+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:24:43.716243+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d025e1a17e5c966efecca89bc41341e8e71e98bdfa40f8e1230875fe86f95f86", "fetched_at": "2026-08-28T04:08:29.892296+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yuka-friends/Windrecorder"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:29.892296+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:29.892296+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:24:43.716243+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d025e1a17e5c966efecca89bc41341e8e71e98bdfa40f8e1230875fe86f95f86", "fetched_at": "2026-08-28T04:08:29.892296+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yuka-friends/Windrecorder"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:29.892296+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:29.892296+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:29.892296+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:24:43.716243+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d025e1a17e5c966efecca89bc41341e8e71e98bdfa40f8e1230875fe86f95f86", "fetched_at": "2026-08-28T04:08:29.892296+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yuka-friends/Windrecorder"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:29.892296+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:29.892296+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:24:43.716243+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d025e1a17e5c966efecca89bc41341e8e71e98bdfa40f8e1230875fe86f95f86", "fetched_at": "2026-08-28T04:08:29.892296+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yuka-friends/Windrecorder"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:24:43.716243+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d025e1a17e5c966efecca89bc41341e8e71e98bdfa40f8e1230875fe86f95f86", "fetched_at": "2026-08-28T04:08:29.892296+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yuka-friends/Windrecorder"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:24:43.716243+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d025e1a17e5c966efecca89bc41341e8e71e98bdfa40f8e1230875fe86f95f86", "fetched_at": "2026-08-28T04:08:29.892296+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yuka-friends/Windrecorder"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:24:43.716243+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d025e1a17e5c966efecca89bc41341e8e71e98bdfa40f8e1230875fe86f95f86", "fetched_at": "2026-08-28T04:08:29.892296+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yuka-friends/Windrecorder"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 42, "longevity": 80, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1130, "days_push": 351, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 47, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}