{"adoption": {"forks": 76, "observed_at": "2026-08-28T04:05:21.644950+00:00", "stars": 1681}, "canonical_url": "https://ross.abutalabs.com/products/keepsake", "card": {"archived": false, "artifact_type": "library", "description": "Version control for machine learning", "domain": ["machine-learning", "developer-tools", "version-control", "data-science"], "enriched": true, "function": ["version-control", "machine-learning", "cli", "logging"], "health_score": 25, "homepage": "https://keepsake.ai", "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "abandoned", "member_repos": ["replicate/keepsake"], "name": "replicate/keepsake", "platform": ["python", "cli", "cross-platform"], "pushed_at": "2025-02-25T23:52:42+00:00", "repo": "replicate/keepsake", "stars": 1681, "tags": ["experiment-tracking", "model-versioning", "mlops", "s3", "google-cloud-storage", "checkpoints"], "topics": ["version-control", "machine-learning"], "urls": [], "use_cases": ["track machine learning experiments with code, params, and metrics", "version model weights in my own S3 bucket", "compare and diff training runs", "restore checkpoints from past experiments", "analyze experiment results in a notebook", "replace a spreadsheet of ML experiment results"], "what_it_is": "Keepsake is a Python library and CLI for version control of machine learning experiments, tracking code, hyperparameters, weights, and metrics to your own Amazon S3 or Google Cloud Storage buckets. It lets you list, filter, diff, and restore experiments and model checkpoints from the command line or notebooks.", "when_to_avoid": ["you need actively maintained software with ongoing support", "you want a hosted experiment tracking dashboard with a web UI", "you don't use Amazon S3 or Google Cloud Storage"], "when_to_choose": ["you want experiment tracking with data stored on your own cloud storage with no server", "you need to version model weights alongside code and hyperparameters", "you work in Python with PyTorch, TensorFlow, or scikit-learn and want minimal integration code"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/keepsake", "repo": "replicate/keepsake", "role": "main", "score": 26}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.644950+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:41:26.547996+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3ff216c756bd3153f6045cd93c52e041880d9ab2ea3aad5fe9004a2e51085a8f", "fetched_at": "2026-08-28T04:05:21.644950+00:00", "kind": "readme", "missing": false, "url": "https://github.com/replicate/keepsake"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.644950+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:41:26.547996+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3ff216c756bd3153f6045cd93c52e041880d9ab2ea3aad5fe9004a2e51085a8f", "fetched_at": "2026-08-28T04:05:21.644950+00:00", "kind": "readme", "missing": false, "url": "https://github.com/replicate/keepsake"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:41:26.547996+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3ff216c756bd3153f6045cd93c52e041880d9ab2ea3aad5fe9004a2e51085a8f", "fetched_at": "2026-08-28T04:05:21.644950+00:00", "kind": "readme", "missing": false, "url": "https://github.com/replicate/keepsake"}], "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:05:21.644950+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.644950+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.644950+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:41:26.547996+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3ff216c756bd3153f6045cd93c52e041880d9ab2ea3aad5fe9004a2e51085a8f", "fetched_at": "2026-08-28T04:05:21.644950+00:00", "kind": "readme", "missing": false, "url": "https://github.com/replicate/keepsake"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.644950+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.644950+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:41:26.547996+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3ff216c756bd3153f6045cd93c52e041880d9ab2ea3aad5fe9004a2e51085a8f", "fetched_at": "2026-08-28T04:05:21.644950+00:00", "kind": "readme", "missing": false, "url": "https://github.com/replicate/keepsake"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.644950+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.644950+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.644950+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:41:26.547996+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3ff216c756bd3153f6045cd93c52e041880d9ab2ea3aad5fe9004a2e51085a8f", "fetched_at": "2026-08-28T04:05:21.644950+00:00", "kind": "readme", "missing": false, "url": "https://github.com/replicate/keepsake"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.644950+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.644950+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:41:26.547996+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3ff216c756bd3153f6045cd93c52e041880d9ab2ea3aad5fe9004a2e51085a8f", "fetched_at": "2026-08-28T04:05:21.644950+00:00", "kind": "readme", "missing": false, "url": "https://github.com/replicate/keepsake"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:41:26.547996+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3ff216c756bd3153f6045cd93c52e041880d9ab2ea3aad5fe9004a2e51085a8f", "fetched_at": "2026-08-28T04:05:21.644950+00:00", "kind": "readme", "missing": false, "url": "https://github.com/replicate/keepsake"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:41:26.547996+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3ff216c756bd3153f6045cd93c52e041880d9ab2ea3aad5fe9004a2e51085a8f", "fetched_at": "2026-08-28T04:05:21.644950+00:00", "kind": "readme", "missing": false, "url": "https://github.com/replicate/keepsake"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:41:26.547996+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3ff216c756bd3153f6045cd93c52e041880d9ab2ea3aad5fe9004a2e51085a8f", "fetched_at": "2026-08-28T04:05:21.644950+00:00", "kind": "readme", "missing": false, "url": "https://github.com/replicate/keepsake"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 8, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2254, "days_push": 554, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 26, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}