{"adoption": {"forks": 74, "observed_at": "2026-08-28T04:07:15.548736+00:00", "stars": 2721}, "canonical_url": "https://ross.abutalabs.com/products/spyglass", "card": {"archived": true, "artifact_type": "application", "description": "A personal search engine:  Create a searchable library from your personal documents, interests, and more!", "domain": ["self-hosted", "privacy", "developer-tools"], "enriched": true, "function": ["search-engine", "web-scraping"], "health_score": 10, "homepage": "https://docs.spyglass.fyi", "language": "Rust", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "abandoned", "member_repos": ["spyglass-search/spyglass"], "name": "spyglass-search/spyglass", "platform": ["windows", "cross-platform", "rust"], "pushed_at": "2025-06-27T20:37:53+00:00", "repo": "spyglass-search/spyglass", "stars": 2721, "tags": ["personal-search-engine", "local-first", "tantivy", "tauri", "desktop-app", "full-text-search", "lenses", "indexing", "search", "macos", "linux"], "topics": ["rust", "rust-lang", "search-engine", "tauri-app", "cross-platform", "tantivy"], "urls": [], "use_cases": ["search my personal documents locally", "build a private search index of websites I care about", "avoid SEO spam when searching the web", "search my GitHub stars and Reddit saves", "index my Google Drive docs for offline search", "create a personal wiki and docs search library"], "what_it_is": "Spyglass is a cross-platform desktop personal search engine that crawls and indexes your local documents, saved web content, and connected services (GitHub, Google Drive, Reddit, Calendar) into a fast, private searchable library. It is built in Rust with Tauri and the Tantivy search library.", "when_to_avoid": ["you need actively maintained software - the project is no longer in active development", "you need a hosted or multi-user search solution", "you need Gmail or YouTube indexing, which were never completed"], "when_to_choose": ["you want a private, local-first search index of your own files and saved web content", "you want to cut through SEO spam by searching curated sources", "you want a cross-platform desktop app with no cloud dependency"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/spyglass", "repo": "spyglass-search/spyglass", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:15.548736+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:15:12.910300+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73e76e75ed7e963917b24d6195c4c1c874fd2935c67b5d579c9b67c25849ba3a", "fetched_at": "2026-08-28T04:07:15.548736+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spyglass-search/spyglass"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:15.548736+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:15:12.910300+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73e76e75ed7e963917b24d6195c4c1c874fd2935c67b5d579c9b67c25849ba3a", "fetched_at": "2026-08-28T04:07:15.548736+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spyglass-search/spyglass"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:15:12.910300+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73e76e75ed7e963917b24d6195c4c1c874fd2935c67b5d579c9b67c25849ba3a", "fetched_at": "2026-08-28T04:07:15.548736+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spyglass-search/spyglass"}], "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:07:15.548736+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:15.548736+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:15.548736+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:15:12.910300+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73e76e75ed7e963917b24d6195c4c1c874fd2935c67b5d579c9b67c25849ba3a", "fetched_at": "2026-08-28T04:07:15.548736+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spyglass-search/spyglass"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:15.548736+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:15.548736+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:15:12.910300+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73e76e75ed7e963917b24d6195c4c1c874fd2935c67b5d579c9b67c25849ba3a", "fetched_at": "2026-08-28T04:07:15.548736+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spyglass-search/spyglass"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:15.548736+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:15.548736+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:15.548736+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:15:12.910300+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73e76e75ed7e963917b24d6195c4c1c874fd2935c67b5d579c9b67c25849ba3a", "fetched_at": "2026-08-28T04:07:15.548736+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spyglass-search/spyglass"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:15.548736+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:15.548736+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:15:12.910300+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73e76e75ed7e963917b24d6195c4c1c874fd2935c67b5d579c9b67c25849ba3a", "fetched_at": "2026-08-28T04:07:15.548736+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spyglass-search/spyglass"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:15:12.910300+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73e76e75ed7e963917b24d6195c4c1c874fd2935c67b5d579c9b67c25849ba3a", "fetched_at": "2026-08-28T04:07:15.548736+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spyglass-search/spyglass"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:15:12.910300+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73e76e75ed7e963917b24d6195c4c1c874fd2935c67b5d579c9b67c25849ba3a", "fetched_at": "2026-08-28T04:07:15.548736+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spyglass-search/spyglass"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:15:12.910300+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73e76e75ed7e963917b24d6195c4c1c874fd2935c67b5d579c9b67c25849ba3a", "fetched_at": "2026-08-28T04:07:15.548736+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spyglass-search/spyglass"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 28, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1750, "days_push": 432, "days_rel": 653, "gap_med": null, "n_releases_24m": 1}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}