{"adoption": {"forks": 1398, "observed_at": "2026-08-28T04:11:32.506359+00:00", "stars": 22251}, "canonical_url": "https://ross.abutalabs.com/products/singlefile", "card": {"archived": false, "artifact_type": "plugin", "description": "Web Extension for saving a faithful copy of a complete web page in a single HTML file", "domain": ["browser-extensions", "osint", "developer-tools"], "enriched": true, "function": ["cli", "web-scraping"], "health_score": 86, "homepage": "https://getsinglefile.com", "language": "JavaScript", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "stable", "member_repos": ["gildas-lormeau/SingleFile", "gildas-lormeau/single-file-cli"], "name": "SingleFile", "platform": ["browser-extension", "browser", "cli", "windows", "cross-platform"], "pushed_at": "2026-08-26T20:32:32+00:00", "repo": "gildas-lormeau/SingleFile", "stars": 22251, "tags": ["web-archiver", "single-file-html", "offline-reading", "web-clipper", "page-snapshot", "screenshot", "auto-save", "annotations", "self-extracting-zip", "puppeteer", "selenium", "chrome-extension", "firefox-addon", "safari-extension", "edge-extension", "headless-archiving", "osint", "web-preservation", "command-line", "macos", "linux"], "topics": ["browser", "archive", "auto-save", "chrome", "firefox", "offline-reading", "osint", "chrome-extension", "firefox-addon", "puppeteer", "selenium", "snapshot", "screenshot", "javascript", "cli", "annotations", "archiver", "web-clipper", "self-extracting-zip", "self-extracting"], "urls": [{"kind": "homepage", "url": "https://getsinglefile.com"}], "use_cases": ["save a web page as a single html file for offline reading", "archive complete web pages with images and css intact", "capture web page snapshots for osint research or evidence", "batch save a list of urls as offline html files", "automatically save pages as i browse", "store page snapshots to github, s3, or google drive", "archival of urls from the command line without launching a browser", "annotate pages i saved for later reference"], "what_it_is": "SingleFile is an open-source browser extension for Chrome, Edge, Firefox, and Safari that saves an entire web page - including images, stylesheets, fonts, and frames - into a single self-contained HTML file that can be viewed offline in any browser. A companion CLI built on the same core archives pages headlessly from the command line on Windows, macOS, and Linux, with Puppeteer and Selenium support and upload targets like GitHub, Amazon S3, Google Drive, and WebDAV.", "when_to_avoid": ["You need to crawl and archive entire websites with working link structures (use wget or HTTrack)", "You want a full web archiving system with WARC output and full-text search across a collection (use ArchiveBox)", "You only need a URL list or bookmark manager rather than full-page captures"], "when_to_choose": ["You need faithful, self-contained offline copies of individual pages that open in any browser without extensions", "You want to snapshot pages headlessly at scale via a CLI with Puppeteer or Selenium", "You are doing OSINT or research and need to preserve pages with annotations before they change or disappear"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/repos/gildas-lormeau/SingleFile", "repo": "gildas-lormeau/SingleFile", "role": "main", "score": 67}, {"path": "/repos/gildas-lormeau/single-file-cli", "repo": "gildas-lormeau/single-file-cli", "role": "plugin", "score": 99}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.506359+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T16:57:40.991058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99c84f2e29813e583e5ae9b8833ed95464a805046797da1a77e00e1d558e69a7", "fetched_at": "2026-08-29T07:56:26.405654+00:00", "kind": "homepage", "missing": false, "url": "https://getsinglefile.com"}, {"content_hash": "1b6fb0d4e46efd3f13ea25ac6131c24a70c806b76e355307ee0343c0dbb89c98", "fetched_at": "2026-08-29T07:56:26.408372+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/single-file-cli"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.506359+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T16:57:40.991058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99c84f2e29813e583e5ae9b8833ed95464a805046797da1a77e00e1d558e69a7", "fetched_at": "2026-08-29T07:56:26.405654+00:00", "kind": "homepage", "missing": false, "url": "https://getsinglefile.com"}, {"content_hash": "1b6fb0d4e46efd3f13ea25ac6131c24a70c806b76e355307ee0343c0dbb89c98", "fetched_at": "2026-08-29T07:56:26.408372+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/single-file-cli"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T16:57:40.991058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99c84f2e29813e583e5ae9b8833ed95464a805046797da1a77e00e1d558e69a7", "fetched_at": "2026-08-29T07:56:26.405654+00:00", "kind": "homepage", "missing": false, "url": "https://getsinglefile.com"}, {"content_hash": "1b6fb0d4e46efd3f13ea25ac6131c24a70c806b76e355307ee0343c0dbb89c98", "fetched_at": "2026-08-29T07:56:26.408372+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/single-file-cli"}], "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:32.506359+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.506359+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.506359+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T16:57:40.991058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99c84f2e29813e583e5ae9b8833ed95464a805046797da1a77e00e1d558e69a7", "fetched_at": "2026-08-29T07:56:26.405654+00:00", "kind": "homepage", "missing": false, "url": "https://getsinglefile.com"}, {"content_hash": "1b6fb0d4e46efd3f13ea25ac6131c24a70c806b76e355307ee0343c0dbb89c98", "fetched_at": "2026-08-29T07:56:26.408372+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/single-file-cli"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.506359+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.506359+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T16:57:40.991058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99c84f2e29813e583e5ae9b8833ed95464a805046797da1a77e00e1d558e69a7", "fetched_at": "2026-08-29T07:56:26.405654+00:00", "kind": "homepage", "missing": false, "url": "https://getsinglefile.com"}, {"content_hash": "1b6fb0d4e46efd3f13ea25ac6131c24a70c806b76e355307ee0343c0dbb89c98", "fetched_at": "2026-08-29T07:56:26.408372+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/single-file-cli"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.506359+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.506359+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.506359+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T16:57:40.991058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99c84f2e29813e583e5ae9b8833ed95464a805046797da1a77e00e1d558e69a7", "fetched_at": "2026-08-29T07:56:26.405654+00:00", "kind": "homepage", "missing": false, "url": "https://getsinglefile.com"}, {"content_hash": "1b6fb0d4e46efd3f13ea25ac6131c24a70c806b76e355307ee0343c0dbb89c98", "fetched_at": "2026-08-29T07:56:26.408372+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/single-file-cli"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.506359+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.506359+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T16:57:40.991058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99c84f2e29813e583e5ae9b8833ed95464a805046797da1a77e00e1d558e69a7", "fetched_at": "2026-08-29T07:56:26.405654+00:00", "kind": "homepage", "missing": false, "url": "https://getsinglefile.com"}, {"content_hash": "1b6fb0d4e46efd3f13ea25ac6131c24a70c806b76e355307ee0343c0dbb89c98", "fetched_at": "2026-08-29T07:56:26.408372+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/single-file-cli"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T16:57:40.991058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99c84f2e29813e583e5ae9b8833ed95464a805046797da1a77e00e1d558e69a7", "fetched_at": "2026-08-29T07:56:26.405654+00:00", "kind": "homepage", "missing": false, "url": "https://getsinglefile.com"}, {"content_hash": "1b6fb0d4e46efd3f13ea25ac6131c24a70c806b76e355307ee0343c0dbb89c98", "fetched_at": "2026-08-29T07:56:26.408372+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/single-file-cli"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T16:57:40.991058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99c84f2e29813e583e5ae9b8833ed95464a805046797da1a77e00e1d558e69a7", "fetched_at": "2026-08-29T07:56:26.405654+00:00", "kind": "homepage", "missing": false, "url": "https://getsinglefile.com"}, {"content_hash": "1b6fb0d4e46efd3f13ea25ac6131c24a70c806b76e355307ee0343c0dbb89c98", "fetched_at": "2026-08-29T07:56:26.408372+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/single-file-cli"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T16:57:40.991058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99c84f2e29813e583e5ae9b8833ed95464a805046797da1a77e00e1d558e69a7", "fetched_at": "2026-08-29T07:56:26.405654+00:00", "kind": "homepage", "missing": false, "url": "https://getsinglefile.com"}, {"content_hash": "1b6fb0d4e46efd3f13ea25ac6131c24a70c806b76e355307ee0343c0dbb89c98", "fetched_at": "2026-08-29T07:56:26.408372+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/single-file-cli"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_readme"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5834, "days_push": 7, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 67, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}