{"adoption": {"forks": 167, "observed_at": "2026-08-28T04:07:31.003627+00:00", "stars": 2940}, "canonical_url": "https://ross.abutalabs.com/products/runlike", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Given an existing docker container, prints the command line necessary to run a copy of it.", "domain": ["developer-tools"], "enriched": true, "function": ["developer-tools", "cli", "container-runtime", "configuration-management"], "health_score": 79, "homepage": null, "language": "Python", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["lavie/runlike"], "name": "lavie/runlike", "platform": ["python", "cli"], "pushed_at": "2026-04-27T14:03:20+00:00", "repo": "lavie/runlike", "stars": 2940, "tags": ["docker-inspect", "docker-run", "reverse-engineering", "container-migration", "containers", "devops", "command-line", "linux", "macos", "docker"], "topics": ["docker", "docker-container", "python"], "urls": [], "use_cases": ["reconstruct the docker run command for an existing container", "migrate a container to another host without the original launch command", "document how a container deployed by Ansible or Chef was started", "quickly clone a running container with the same options", "convert docker inspect output into a readable docker run command"], "what_it_is": "runlike is a Python CLI tool that inspects an existing Docker container and prints the `docker run` command line needed to recreate a copy of it, including ports, volumes, links, and environment variables. It can also accept `docker inspect` output via stdin and is available as a pip package or a Docker image.", "when_to_avoid": ["you need guaranteed production-grade accuracy - the README warns against production use", "your container uses docker run options not yet supported by the tool", "you manage containers with Compose, Kubernetes, or other declarative tooling that already captures the configuration"], "when_to_choose": ["you lost or never had the original docker run command for a container", "you need to manually re-run a container that was deployed by a configuration management tool", "you want a quick, human-readable summary of a container's run options"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/runlike", "repo": "lavie/runlike", "role": "main", "score": 70}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:31.003627+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:47:37.927894+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ed62e17c6bcaeaa40a739746eddb55597edbb5659ee1b84e6967d77baa27a5cb", "fetched_at": "2026-08-28T04:07:31.003627+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lavie/runlike"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:31.003627+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:47:37.927894+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ed62e17c6bcaeaa40a739746eddb55597edbb5659ee1b84e6967d77baa27a5cb", "fetched_at": "2026-08-28T04:07:31.003627+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lavie/runlike"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:47:37.927894+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ed62e17c6bcaeaa40a739746eddb55597edbb5659ee1b84e6967d77baa27a5cb", "fetched_at": "2026-08-28T04:07:31.003627+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lavie/runlike"}], "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:31.003627+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:31.003627+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:31.003627+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:47:37.927894+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ed62e17c6bcaeaa40a739746eddb55597edbb5659ee1b84e6967d77baa27a5cb", "fetched_at": "2026-08-28T04:07:31.003627+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lavie/runlike"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:31.003627+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:31.003627+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:47:37.927894+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ed62e17c6bcaeaa40a739746eddb55597edbb5659ee1b84e6967d77baa27a5cb", "fetched_at": "2026-08-28T04:07:31.003627+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lavie/runlike"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:31.003627+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:31.003627+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:31.003627+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:47:37.927894+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ed62e17c6bcaeaa40a739746eddb55597edbb5659ee1b84e6967d77baa27a5cb", "fetched_at": "2026-08-28T04:07:31.003627+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lavie/runlike"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:31.003627+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:31.003627+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:47:37.927894+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ed62e17c6bcaeaa40a739746eddb55597edbb5659ee1b84e6967d77baa27a5cb", "fetched_at": "2026-08-28T04:07:31.003627+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lavie/runlike"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:47:37.927894+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ed62e17c6bcaeaa40a739746eddb55597edbb5659ee1b84e6967d77baa27a5cb", "fetched_at": "2026-08-28T04:07:31.003627+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lavie/runlike"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:47:37.927894+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ed62e17c6bcaeaa40a739746eddb55597edbb5659ee1b84e6967d77baa27a5cb", "fetched_at": "2026-08-28T04:07:31.003627+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lavie/runlike"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:47:37.927894+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ed62e17c6bcaeaa40a739746eddb55597edbb5659ee1b84e6967d77baa27a5cb", "fetched_at": "2026-08-28T04:07:31.003627+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lavie/runlike"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 79, "longevity": 100, "rhythm": 40}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4108, "days_push": 128, "days_rel": 554, "gap_med": 9.0, "n_releases_24m": 7}, "score": 70, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}