{"adoption": {"forks": 76, "observed_at": "2026-08-28T04:07:37.818367+00:00", "stars": 3012}, "canonical_url": "https://ross.abutalabs.com/products/exodus", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Painless relocation of Linux binaries–and all of their dependencies–without containers.", "domain": ["developer-tools", "operating-systems"], "enriched": true, "function": ["cli", "package-manager", "developer-tools", "file-system"], "health_score": 20, "homepage": null, "language": "Python", "license": "NOASSERTION", "license_family": "other", "maturity": "maintenance", "member_repos": ["intoli/exodus"], "name": "intoli/exodus", "platform": ["python", "cli"], "pushed_at": "2023-11-05T00:02:14+00:00", "repo": "intoli/exodus", "stars": 3012, "tags": ["elf-binaries", "binary-relocation", "portable-executables", "dependency-bundling", "no-containers", "command-line", "packaging", "linux"], "topics": ["python", "linux", "elf", "binary", "packaging", "portable", "linker", "relocation", "exodus"], "urls": [], "use_cases": ["copy a binary and all its dependencies to a remote server over ssh", "install software on a Linux distro that has no package for it", "run a program on a machine without root access", "make Linux executables portable across distributions", "bundle an ELF binary so it runs on older or newer glibc systems", "transfer a tool from a laptop to a server without containers"], "what_it_is": "Exodus is a Python CLI tool that relocates Linux ELF binaries by bundling them with all of their shared library dependencies, without using containers. It lets you transfer working software from one Linux system to another, even without root access or a distribution package.", "when_to_avoid": ["you need cross-platform (Windows/macOS) packaging", "you want a full application sandbox or containerized environment", "the binary is statically linked or already portable", "you need actively maintained tooling with recent releases"], "when_to_choose": ["you need to move a working Linux binary to a machine lacking the package or libraries", "you have no root access and can't install dependencies system-wide", "you want portability without the overhead of Docker or AppImage"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/exodus", "repo": "intoli/exodus", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.818367+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:47:02.208241+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "23bdc7e90e7119b7e0cc4e621d081733f0bd4b68abc169651ad180e0f3b894fa", "fetched_at": "2026-08-28T04:07:37.818367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/intoli/exodus"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.818367+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:47:02.208241+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "23bdc7e90e7119b7e0cc4e621d081733f0bd4b68abc169651ad180e0f3b894fa", "fetched_at": "2026-08-28T04:07:37.818367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/intoli/exodus"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:47:02.208241+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "23bdc7e90e7119b7e0cc4e621d081733f0bd4b68abc169651ad180e0f3b894fa", "fetched_at": "2026-08-28T04:07:37.818367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/intoli/exodus"}], "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:37.818367+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.818367+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.818367+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:47:02.208241+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "23bdc7e90e7119b7e0cc4e621d081733f0bd4b68abc169651ad180e0f3b894fa", "fetched_at": "2026-08-28T04:07:37.818367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/intoli/exodus"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.818367+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.818367+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:47:02.208241+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "23bdc7e90e7119b7e0cc4e621d081733f0bd4b68abc169651ad180e0f3b894fa", "fetched_at": "2026-08-28T04:07:37.818367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/intoli/exodus"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.818367+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.818367+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.818367+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:47:02.208241+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "23bdc7e90e7119b7e0cc4e621d081733f0bd4b68abc169651ad180e0f3b894fa", "fetched_at": "2026-08-28T04:07:37.818367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/intoli/exodus"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.818367+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.818367+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:47:02.208241+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "23bdc7e90e7119b7e0cc4e621d081733f0bd4b68abc169651ad180e0f3b894fa", "fetched_at": "2026-08-28T04:07:37.818367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/intoli/exodus"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:47:02.208241+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "23bdc7e90e7119b7e0cc4e621d081733f0bd4b68abc169651ad180e0f3b894fa", "fetched_at": "2026-08-28T04:07:37.818367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/intoli/exodus"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:47:02.208241+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "23bdc7e90e7119b7e0cc4e621d081733f0bd4b68abc169651ad180e0f3b894fa", "fetched_at": "2026-08-28T04:07:37.818367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/intoli/exodus"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:47:02.208241+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "23bdc7e90e7119b7e0cc4e621d081733f0bd4b68abc169651ad180e0f3b894fa", "fetched_at": "2026-08-28T04:07:37.818367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/intoli/exodus"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3141, "days_push": 1033, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}