{"adoption": {"forks": 1267, "observed_at": "2026-08-28T04:11:14.967348+00:00", "stars": 16226}, "canonical_url": "https://ross.abutalabs.com/products/omnivore", "card": {"archived": false, "artifact_type": "application", "description": "Omnivore is a complete, open source read-it-later solution for people who like reading.", "domain": ["developer-tools", "self-hosted", "web-development", "media"], "enriched": true, "function": ["search-engine", "web-scraping", "tts", "pdf", "self-hosted", "chat-interface"], "health_score": 100, "homepage": null, "language": "JavaScript", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "maintenance", "member_repos": ["omnivore-app/omnivore"], "name": "omnivore-app/omnivore", "platform": ["browser-extension", "self-hosted"], "pushed_at": "2026-08-26T13:23:48+00:00", "repo": "omnivore-app/omnivore", "stars": 16226, "tags": ["read-it-later", "bookmarks", "reader-mode", "highlighting", "rss-client", "logseq-plugin", "obsidian-plugin", "offline-reading", "web-server", "ios", "android", "docker", "nodejs"], "topics": ["bookmarks", "logseq", "logseq-plugin", "productivity", "read-it-later", "reader", "reading"], "urls": [], "use_cases": ["save articles to read later with a distraction-free reader", "highlight text and add notes while reading long articles", "self-host a read-it-later service on my own server", "send newsletter articles to my reading queue via email", "read saved PDFs and RSS feeds in one place", "sync highlights to Obsidian or Logseq", "listen to articles with text-to-speech"], "what_it_is": "Omnivore is a complete, open source read-it-later application for saving and reading articles, with highlighting, notes, search, labels, PDF support, and an RSS client. It is now fully self-hosted (the cloud service was deprecated in November 2024) and includes web, iOS, Android, and browser extension clients.", "when_to_avoid": ["you want a managed cloud service with no server maintenance", "you need text-to-speech on platforms other than iOS", "you need a lightweight bookmarking tool without a full server stack", "you require heavy ongoing feature development, since the project is in community maintenance mode"], "when_to_choose": ["you want a fully open source, self-hosted alternative to Pocket or Instapaper", "you need highlighting, notes, labels, and full-text search for saved content", "you want cross-platform clients including browser extensions and mobile apps", "you want to integrate your reading highlights with Obsidian or Logseq"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/omnivore", "repo": "omnivore-app/omnivore", "role": "main", "score": 88}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.967348+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:05:10.986990+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0b1b034f7abcb7aac8e6d4b34736f5aba0ba9da7e24580cdbaa5cc9333a285ef", "fetched_at": "2026-08-28T04:11:14.967348+00:00", "kind": "readme", "missing": false, "url": "https://github.com/omnivore-app/omnivore"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.967348+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:05:10.986990+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0b1b034f7abcb7aac8e6d4b34736f5aba0ba9da7e24580cdbaa5cc9333a285ef", "fetched_at": "2026-08-28T04:11:14.967348+00:00", "kind": "readme", "missing": false, "url": "https://github.com/omnivore-app/omnivore"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:05:10.986990+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0b1b034f7abcb7aac8e6d4b34736f5aba0ba9da7e24580cdbaa5cc9333a285ef", "fetched_at": "2026-08-28T04:11:14.967348+00:00", "kind": "readme", "missing": false, "url": "https://github.com/omnivore-app/omnivore"}], "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:11:14.967348+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.967348+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.967348+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:05:10.986990+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0b1b034f7abcb7aac8e6d4b34736f5aba0ba9da7e24580cdbaa5cc9333a285ef", "fetched_at": "2026-08-28T04:11:14.967348+00:00", "kind": "readme", "missing": false, "url": "https://github.com/omnivore-app/omnivore"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.967348+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.967348+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:05:10.986990+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0b1b034f7abcb7aac8e6d4b34736f5aba0ba9da7e24580cdbaa5cc9333a285ef", "fetched_at": "2026-08-28T04:11:14.967348+00:00", "kind": "readme", "missing": false, "url": "https://github.com/omnivore-app/omnivore"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.967348+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.967348+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.967348+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:05:10.986990+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0b1b034f7abcb7aac8e6d4b34736f5aba0ba9da7e24580cdbaa5cc9333a285ef", "fetched_at": "2026-08-28T04:11:14.967348+00:00", "kind": "readme", "missing": false, "url": "https://github.com/omnivore-app/omnivore"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.967348+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.967348+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:05:10.986990+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0b1b034f7abcb7aac8e6d4b34736f5aba0ba9da7e24580cdbaa5cc9333a285ef", "fetched_at": "2026-08-28T04:11:14.967348+00:00", "kind": "readme", "missing": false, "url": "https://github.com/omnivore-app/omnivore"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:05:10.986990+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0b1b034f7abcb7aac8e6d4b34736f5aba0ba9da7e24580cdbaa5cc9333a285ef", "fetched_at": "2026-08-28T04:11:14.967348+00:00", "kind": "readme", "missing": false, "url": "https://github.com/omnivore-app/omnivore"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:05:10.986990+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0b1b034f7abcb7aac8e6d4b34736f5aba0ba9da7e24580cdbaa5cc9333a285ef", "fetched_at": "2026-08-28T04:11:14.967348+00:00", "kind": "readme", "missing": false, "url": "https://github.com/omnivore-app/omnivore"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:05:10.986990+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0b1b034f7abcb7aac8e6d4b34736f5aba0ba9da7e24580cdbaa5cc9333a285ef", "fetched_at": "2026-08-28T04:11:14.967348+00:00", "kind": "readme", "missing": false, "url": "https://github.com/omnivore-app/omnivore"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 67}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1664, "days_push": 7, "days_rel": 7, "gap_med": null, "n_releases_24m": 1}, "score": 88, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}