{"adoption": {"forks": 80, "observed_at": "2026-08-28T04:04:37.162322+00:00", "stars": 1400}, "canonical_url": "https://ross.abutalabs.com/products/habitus", "card": {"archived": false, "artifact_type": "cli-tool", "description": "A build flow tool for Docker.", "domain": ["developer-tools"], "enriched": true, "function": ["build-tool", "ci-cd", "secrets-management", "container-runtime", "deployment"], "health_score": 20, "homepage": "https://help.cloud66.com/habitus/", "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["cloud66-oss/habitus"], "name": "cloud66-oss/habitus", "platform": ["windows", "cli", "go"], "pushed_at": "2020-02-05T17:10:30+00:00", "repo": "cloud66-oss/habitus", "stars": 1400, "tags": ["docker-build", "multi-stage-build", "build-workflow", "dockerfile", "build-secrets", "image-squashing", "containers", "devops", "linux", "macos", "docker"], "topics": ["ci-cd", "containers", "docker", "dockerfile", "kubernetes"], "urls": [], "use_cases": ["chain multiple docker builds into a workflow", "use ssh keys as secrets during docker build without leaving traces", "build compiled go or java apps into minimal docker images", "copy build artifacts between docker build steps", "squash docker image layers after build", "combine multiple dockerfiles into one build pipeline"], "what_it_is": "Habitus is a standalone command-line build flow tool for Docker that orchestrates chained, multi-step Docker image builds defined in a build.yml file. It supports secrets handling during builds, artifact copying between steps, and image squashing to produce minimal final images.", "when_to_avoid": ["you use modern Docker BuildKit which supports multi-stage builds and build secrets natively", "you want an actively maintained tool - the last release was in 2020", "you only need simple single-Dockerfile builds"], "when_to_choose": ["you need multi-step docker build workflows with secrets before buildkit secrets were available", "you want to chain builds and pass artifacts between images", "you need to squash final images to remove build layers"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/habitus", "repo": "cloud66-oss/habitus", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:37.162322+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:39:05.988073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7e9a8d6e44d104f29c120dce068db031638987fc9d72accaf488fd9ad173e86e", "fetched_at": "2026-08-28T04:04:37.162322+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloud66-oss/habitus"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:37.162322+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:39:05.988073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7e9a8d6e44d104f29c120dce068db031638987fc9d72accaf488fd9ad173e86e", "fetched_at": "2026-08-28T04:04:37.162322+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloud66-oss/habitus"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:39:05.988073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7e9a8d6e44d104f29c120dce068db031638987fc9d72accaf488fd9ad173e86e", "fetched_at": "2026-08-28T04:04:37.162322+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloud66-oss/habitus"}], "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:04:37.162322+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:37.162322+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:37.162322+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:39:05.988073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7e9a8d6e44d104f29c120dce068db031638987fc9d72accaf488fd9ad173e86e", "fetched_at": "2026-08-28T04:04:37.162322+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloud66-oss/habitus"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:37.162322+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:37.162322+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:39:05.988073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7e9a8d6e44d104f29c120dce068db031638987fc9d72accaf488fd9ad173e86e", "fetched_at": "2026-08-28T04:04:37.162322+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloud66-oss/habitus"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:37.162322+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:37.162322+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:37.162322+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:39:05.988073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7e9a8d6e44d104f29c120dce068db031638987fc9d72accaf488fd9ad173e86e", "fetched_at": "2026-08-28T04:04:37.162322+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloud66-oss/habitus"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:37.162322+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:37.162322+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:39:05.988073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7e9a8d6e44d104f29c120dce068db031638987fc9d72accaf488fd9ad173e86e", "fetched_at": "2026-08-28T04:04:37.162322+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloud66-oss/habitus"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:39:05.988073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7e9a8d6e44d104f29c120dce068db031638987fc9d72accaf488fd9ad173e86e", "fetched_at": "2026-08-28T04:04:37.162322+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloud66-oss/habitus"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:39:05.988073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7e9a8d6e44d104f29c120dce068db031638987fc9d72accaf488fd9ad173e86e", "fetched_at": "2026-08-28T04:04:37.162322+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloud66-oss/habitus"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:39:05.988073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7e9a8d6e44d104f29c120dce068db031638987fc9d72accaf488fd9ad173e86e", "fetched_at": "2026-08-28T04:04:37.162322+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloud66-oss/habitus"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3933, "days_push": 2401, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}