{"adoption": {"forks": 50, "observed_at": "2026-08-28T04:04:27.720447+00:00", "stars": 1348}, "canonical_url": "https://ross.abutalabs.com/products/dip", "card": {"archived": false, "artifact_type": "cli-tool", "description": "The dip is a CLI dev–tool that provides native-like interaction with a Dockerized application.", "domain": ["developer-tools"], "enriched": true, "function": ["cli", "developer-tools", "container-runtime", "configuration-management"], "health_score": 89, "homepage": null, "language": "Ruby", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["bibendi/dip"], "name": "bibendi/dip", "platform": ["cli"], "pushed_at": "2026-05-23T20:20:31+00:00", "repo": "bibendi/dip", "stars": 1348, "tags": ["docker-compose", "shell-integration", "development-environment", "ruby-gem", "zsh", "bash", "devops", "containers", "command-line", "linux", "macos", "docker"], "topics": ["docker", "docker-compose", "cli", "gem", "ruby", "zsh", "bash", "thor"], "urls": [], "use_cases": ["run dockerized app commands without typing docker-compose", "set up consistent local dev environment across a team", "run rails commands inside containers as if local", "manage docker compose services with short aliases", "share project-specific dev commands via a dip.yml file", "avoid installing local toolchains by running everything in docker"], "what_it_is": "Dip is a Ruby-based CLI tool that provides native-like interaction with Dockerized applications, letting developers run container commands without typing verbose docker-compose invocations. It integrates with Zsh and Bash shells so commands defined in a dip.yml manifest can be run directly, with aliases automatically scoped to directories containing a dip.yml.", "when_to_avoid": ["you run some tools locally and some in Docker, risking command collisions", "you don't use Docker or Docker Compose in your workflow", "you need orchestration beyond local development environments"], "when_to_choose": ["your team develops apps fully inside Docker Compose and wants ergonomic commands", "you want per-project shell aliases that activate on entering a directory", "you maintain a dockerized Rails or Node.js codebase with many recurring commands"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/dip", "repo": "bibendi/dip", "role": "main", "score": 87}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.720447+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:42:24.779207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d7fbe08aa1c860ae4a8004e87e9b4df218caa117ce045c44e38493e72eb7afd", "fetched_at": "2026-08-28T04:04:27.720447+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bibendi/dip"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.720447+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:42:24.779207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d7fbe08aa1c860ae4a8004e87e9b4df218caa117ce045c44e38493e72eb7afd", "fetched_at": "2026-08-28T04:04:27.720447+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bibendi/dip"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:42:24.779207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d7fbe08aa1c860ae4a8004e87e9b4df218caa117ce045c44e38493e72eb7afd", "fetched_at": "2026-08-28T04:04:27.720447+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bibendi/dip"}], "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:27.720447+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.720447+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.720447+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:42:24.779207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d7fbe08aa1c860ae4a8004e87e9b4df218caa117ce045c44e38493e72eb7afd", "fetched_at": "2026-08-28T04:04:27.720447+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bibendi/dip"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.720447+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.720447+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:42:24.779207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d7fbe08aa1c860ae4a8004e87e9b4df218caa117ce045c44e38493e72eb7afd", "fetched_at": "2026-08-28T04:04:27.720447+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bibendi/dip"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.720447+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.720447+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.720447+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:42:24.779207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d7fbe08aa1c860ae4a8004e87e9b4df218caa117ce045c44e38493e72eb7afd", "fetched_at": "2026-08-28T04:04:27.720447+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bibendi/dip"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.720447+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.720447+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:42:24.779207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d7fbe08aa1c860ae4a8004e87e9b4df218caa117ce045c44e38493e72eb7afd", "fetched_at": "2026-08-28T04:04:27.720447+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bibendi/dip"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:42:24.779207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d7fbe08aa1c860ae4a8004e87e9b4df218caa117ce045c44e38493e72eb7afd", "fetched_at": "2026-08-28T04:04:27.720447+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bibendi/dip"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:42:24.779207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d7fbe08aa1c860ae4a8004e87e9b4df218caa117ce045c44e38493e72eb7afd", "fetched_at": "2026-08-28T04:04:27.720447+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bibendi/dip"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:42:24.779207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d7fbe08aa1c860ae4a8004e87e9b4df218caa117ce045c44e38493e72eb7afd", "fetched_at": "2026-08-28T04:04:27.720447+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bibendi/dip"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 83, "longevity": 100, "rhythm": 85}, "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": 3618, "days_push": 102, "days_rel": 102, "gap_med": 1.0, "n_releases_24m": 7}, "score": 87, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}