{"adoption": {"forks": 35, "observed_at": "2026-08-28T04:05:18.241561+00:00", "stars": 1658}, "canonical_url": "https://ross.abutalabs.com/products/httm", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Interactive, file-level Time Machine-like tool for ZFS/btrfs/nilfs2 (and even Time Machine and Restic backups!)", "domain": ["files", "self-hosted"], "enriched": true, "function": ["backup", "file-system", "cli", "search-engine"], "health_score": 98, "homepage": "https://crates.io/crates/httm", "language": "Rust", "license": "MPL-2.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["kimono-koans/httm"], "name": "kimono-koans/httm", "platform": ["bsd", "cli", "rust"], "pushed_at": "2026-08-21T08:04:11+00:00", "repo": "kimono-koans/httm", "stars": 1658, "tags": ["zfs", "btrfs", "nilfs2", "snapshots", "file-restore", "time-machine", "restic", "terminal-ui", "interactive", "command-line", "backup", "linux", "macos"], "topics": ["zfs", "rust", "unix-shell", "unix", "unix-command", "zsh", "zfs-snapshots", "zfsonroot", "command-line-tool", "shell", "freebsd", "linux", "btrfs", "btrfs-snapshots", "cli", "command-line", "terminal", "nilfs", "homelab", "restic"], "urls": [], "use_cases": ["find and restore previous versions of files from zfs snapshots", "browse deleted files hidden in btrfs snapshots", "recover a file from a time machine backup from the command line", "list unique versions of a file across all local zfs pools", "prune snapshots that contain a specific file", "preview snapshot file versions with diff before restoring", "roll forward to a previous snapshot without destroying interstitial snapshots"], "what_it_is": "httm is a fast, interactive CLI tool for browsing, listing, and restoring file versions stored in ZFS, btrfs, and nilfs2 snapshots, as well as Time Machine and Restic backups. It deduplicates file versions by modify time and size, supports recursive search for deleted files, and offers interactive browse/select/prune/restore modes.", "when_to_avoid": ["you need full-disk or full-dataset backup creation rather than file-version browsing", "your filesystem has no snapshot support and you don't use rsync-ed backups", "you want a GUI backup solution"], "when_to_choose": ["you use ZFS, btrfs, or nilfs2 and want Time Machine-like file-level restore", "you need to search snapshots for deleted or historical file versions quickly", "you want an interactive terminal workflow for snapshot browsing and restoration", "you manage Restic or Time Machine backups and need CLI file-version lookup"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/httm", "repo": "kimono-koans/httm", "role": "main", "score": 96}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.241561+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:44:44.906855+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a83a34427abfc2eb02f02f115495841f47ff1249cbf0a5c3013c52bbdb34531", "fetched_at": "2026-08-28T04:05:18.241561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kimono-koans/httm"}, {"content_hash": "4f29d388d7360d990527cbb069be68e13713759bb6064f2b5f464519eae24831", "fetched_at": "2026-08-29T11:17:17.808021+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/httm"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.241561+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:44:44.906855+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a83a34427abfc2eb02f02f115495841f47ff1249cbf0a5c3013c52bbdb34531", "fetched_at": "2026-08-28T04:05:18.241561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kimono-koans/httm"}, {"content_hash": "4f29d388d7360d990527cbb069be68e13713759bb6064f2b5f464519eae24831", "fetched_at": "2026-08-29T11:17:17.808021+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/httm"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:44:44.906855+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a83a34427abfc2eb02f02f115495841f47ff1249cbf0a5c3013c52bbdb34531", "fetched_at": "2026-08-28T04:05:18.241561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kimono-koans/httm"}, {"content_hash": "4f29d388d7360d990527cbb069be68e13713759bb6064f2b5f464519eae24831", "fetched_at": "2026-08-29T11:17:17.808021+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/httm"}], "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:18.241561+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.241561+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.241561+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:44:44.906855+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a83a34427abfc2eb02f02f115495841f47ff1249cbf0a5c3013c52bbdb34531", "fetched_at": "2026-08-28T04:05:18.241561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kimono-koans/httm"}, {"content_hash": "4f29d388d7360d990527cbb069be68e13713759bb6064f2b5f464519eae24831", "fetched_at": "2026-08-29T11:17:17.808021+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/httm"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.241561+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.241561+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:44:44.906855+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a83a34427abfc2eb02f02f115495841f47ff1249cbf0a5c3013c52bbdb34531", "fetched_at": "2026-08-28T04:05:18.241561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kimono-koans/httm"}, {"content_hash": "4f29d388d7360d990527cbb069be68e13713759bb6064f2b5f464519eae24831", "fetched_at": "2026-08-29T11:17:17.808021+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/httm"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.241561+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.241561+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.241561+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:44:44.906855+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a83a34427abfc2eb02f02f115495841f47ff1249cbf0a5c3013c52bbdb34531", "fetched_at": "2026-08-28T04:05:18.241561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kimono-koans/httm"}, {"content_hash": "4f29d388d7360d990527cbb069be68e13713759bb6064f2b5f464519eae24831", "fetched_at": "2026-08-29T11:17:17.808021+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/httm"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.241561+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.241561+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:44:44.906855+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a83a34427abfc2eb02f02f115495841f47ff1249cbf0a5c3013c52bbdb34531", "fetched_at": "2026-08-28T04:05:18.241561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kimono-koans/httm"}, {"content_hash": "4f29d388d7360d990527cbb069be68e13713759bb6064f2b5f464519eae24831", "fetched_at": "2026-08-29T11:17:17.808021+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/httm"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:44:44.906855+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a83a34427abfc2eb02f02f115495841f47ff1249cbf0a5c3013c52bbdb34531", "fetched_at": "2026-08-28T04:05:18.241561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kimono-koans/httm"}, {"content_hash": "4f29d388d7360d990527cbb069be68e13713759bb6064f2b5f464519eae24831", "fetched_at": "2026-08-29T11:17:17.808021+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/httm"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:44:44.906855+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a83a34427abfc2eb02f02f115495841f47ff1249cbf0a5c3013c52bbdb34531", "fetched_at": "2026-08-28T04:05:18.241561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kimono-koans/httm"}, {"content_hash": "4f29d388d7360d990527cbb069be68e13713759bb6064f2b5f464519eae24831", "fetched_at": "2026-08-29T11:17:17.808021+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/httm"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:44:44.906855+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a83a34427abfc2eb02f02f115495841f47ff1249cbf0a5c3013c52bbdb34531", "fetched_at": "2026-08-28T04:05:18.241561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kimono-koans/httm"}, {"content_hash": "4f29d388d7360d990527cbb069be68e13713759bb6064f2b5f464519eae24831", "fetched_at": "2026-08-29T11:17:17.808021+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/httm"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 90}, "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": 1640, "days_push": 12, "days_rel": 64, "gap_med": 2, "n_releases_24m": 48}, "score": 96, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}