{"adoption": {"forks": 1248, "observed_at": "2026-08-28T04:10:23.629546+00:00", "stars": 8576}, "canonical_url": "https://ross.abutalabs.com/products/crouton", "card": {"archived": true, "artifact_type": "cli-tool", "description": "Chromium OS Universal Chroot Environment (EOL)", "domain": ["operating-systems", "developer-tools"], "enriched": true, "function": ["cli", "developer-tools", "file-system"], "health_score": 10, "homepage": "https://git.io/JZEs0", "language": "Shell", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "abandoned", "member_repos": ["dnschneid/crouton"], "name": "dnschneid/crouton", "platform": ["cli"], "pushed_at": "2025-03-30T01:56:01+00:00", "repo": "dnschneid/crouton", "stars": 8576, "tags": ["chroot", "chromeos", "chromebook", "debootstrap", "ubuntu", "debian", "kali", "end-of-life", "command-line", "linux", "shell"], "topics": ["chroot", "shell", "crouton", "minecraft", "ubuntu", "debian", "kali", "linux", "chromeos"], "urls": [], "use_cases": ["run a full Linux desktop on a Chromebook", "install Ubuntu on a Chromebook via chroot", "use Debian or Kali tools on a ChromeOS device", "breathe new life into an EOL Chromebook", "switch between ChromeOS and Linux without dual-booting", "run Linux command-line tools on a Chromebook"], "what_it_is": "crouton is a set of shell scripts that generate and manage chroot environments on Chromium OS devices, letting users run full Linux distributions like Ubuntu, Debian, and Kali alongside ChromeOS. It is now end-of-life, with the repo locked and archived due to Chromium OS security changes.", "when_to_avoid": ["your Chromebook runs Chromium OS 111 or later, where audio, extension, and xiwi support is broken", "you want a supported, actively maintained Linux-on-ChromeOS solution (use Crostini/Linux dev environment instead)", "you need ongoing updates or new distro releases", "your device has been replaced by Android-based ChromeOS"], "when_to_choose": ["you have an EOL Chromebook running Chromium OS 110 or earlier", "you want a chroot-based Linux environment on an older ChromeOS device", "you need to repurpose an old Chromebook as a Linux machine"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/crouton", "repo": "dnschneid/crouton", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:23.629546+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:26:16.009593+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81d565eb391e3dd10ae80fdcea8cd62e7ab5c7e31acf13c72443f727ed1c5fda", "fetched_at": "2026-08-28T04:10:23.629546+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dnschneid/crouton"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:23.629546+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:26:16.009593+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81d565eb391e3dd10ae80fdcea8cd62e7ab5c7e31acf13c72443f727ed1c5fda", "fetched_at": "2026-08-28T04:10:23.629546+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dnschneid/crouton"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:26:16.009593+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81d565eb391e3dd10ae80fdcea8cd62e7ab5c7e31acf13c72443f727ed1c5fda", "fetched_at": "2026-08-28T04:10:23.629546+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dnschneid/crouton"}], "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:10:23.629546+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:23.629546+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:23.629546+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:26:16.009593+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81d565eb391e3dd10ae80fdcea8cd62e7ab5c7e31acf13c72443f727ed1c5fda", "fetched_at": "2026-08-28T04:10:23.629546+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dnschneid/crouton"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:23.629546+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:23.629546+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:26:16.009593+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81d565eb391e3dd10ae80fdcea8cd62e7ab5c7e31acf13c72443f727ed1c5fda", "fetched_at": "2026-08-28T04:10:23.629546+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dnschneid/crouton"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:23.629546+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:23.629546+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:23.629546+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:26:16.009593+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81d565eb391e3dd10ae80fdcea8cd62e7ab5c7e31acf13c72443f727ed1c5fda", "fetched_at": "2026-08-28T04:10:23.629546+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dnschneid/crouton"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:23.629546+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:23.629546+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:26:16.009593+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81d565eb391e3dd10ae80fdcea8cd62e7ab5c7e31acf13c72443f727ed1c5fda", "fetched_at": "2026-08-28T04:10:23.629546+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dnschneid/crouton"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:26:16.009593+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81d565eb391e3dd10ae80fdcea8cd62e7ab5c7e31acf13c72443f727ed1c5fda", "fetched_at": "2026-08-28T04:10:23.629546+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dnschneid/crouton"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:26:16.009593+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81d565eb391e3dd10ae80fdcea8cd62e7ab5c7e31acf13c72443f727ed1c5fda", "fetched_at": "2026-08-28T04:10:23.629546+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dnschneid/crouton"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:26:16.009593+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81d565eb391e3dd10ae80fdcea8cd62e7ab5c7e31acf13c72443f727ed1c5fda", "fetched_at": "2026-08-28T04:10:23.629546+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dnschneid/crouton"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 13, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5006, "days_push": 522, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}