{"adoption": {"forks": 66, "observed_at": "2026-08-28T04:03:29.836537+00:00", "stars": 1078}, "canonical_url": "https://ross.abutalabs.com/products/pipedash", "card": {"archived": false, "artifact_type": "application", "description": "Manage CI/CD pipelines from multiple providers (self hosted, desktop app and ios app ) ", "domain": ["developer-tools", "monitoring", "self-hosted"], "enriched": true, "function": ["ci-cd", "monitoring", "plugin-system", "developer-tools", "gui", "secrets-management"], "health_score": 92, "homepage": null, "language": "Rust", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["hcavarsan/pipedash"], "name": "hcavarsan/pipedash", "platform": ["cross-platform", "self-hosted", "rust"], "pushed_at": "2026-07-15T23:20:38+00:00", "repo": "hcavarsan/pipedash", "stars": 1078, "tags": ["ci-cd-dashboard", "pipeline-monitoring", "multi-provider", "tauri", "github-actions", "gitlab", "jenkins", "buildkite", "tekton", "argocd", "devops", "desktop", "ios"], "topics": ["buildkite", "cicd", "devops", "devtools", "gitlab", "jenkins", "sre", "tekton"], "urls": [], "use_cases": ["monitor all my CI/CD pipelines in one dashboard", "view GitHub Actions and GitLab CI status together", "trigger workflows with parameters from a desktop app", "check Jenkins and Buildkite builds without opening multiple tabs", "track Tekton and ArgoCD pipeline runs locally", "get notified when pipeline status changes", "manage pipelines from multiple CI providers on iOS"], "what_it_is": "Pipedash is a desktop, self-hosted, and iOS app that aggregates CI/CD pipeline status from multiple providers like GitHub Actions, GitLab CI, Buildkite, Jenkins, Tekton, and ArgoCD into a single dashboard. Built with Tauri, Rust, React, and TypeScript, it supports triggering, re-running, and canceling workflows with local-only token storage.", "when_to_avoid": ["you only use a single CI provider with a good native dashboard", "you need deep pipeline configuration or YAML editing rather than monitoring", "you require team-wide shared dashboards with centralized hosting and access control"], "when_to_choose": ["your team uses multiple CI/CD providers and wants a unified view", "you want a privacy-focused, local-only pipeline monitor with no telemetry", "you need to trigger, re-run, or cancel builds across providers from one place", "you want an extensible plugin system to add custom providers"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pipedash", "repo": "hcavarsan/pipedash", "role": "main", "score": 68}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:29.836537+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:53:09.147089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e99115f6511115b172df49ea2717fae8975bd9fdd7a46a263606c5791fcfd844", "fetched_at": "2026-08-28T04:03:29.836537+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hcavarsan/pipedash"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:29.836537+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:53:09.147089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e99115f6511115b172df49ea2717fae8975bd9fdd7a46a263606c5791fcfd844", "fetched_at": "2026-08-28T04:03:29.836537+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hcavarsan/pipedash"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:53:09.147089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e99115f6511115b172df49ea2717fae8975bd9fdd7a46a263606c5791fcfd844", "fetched_at": "2026-08-28T04:03:29.836537+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hcavarsan/pipedash"}], "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:03:29.836537+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:29.836537+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:29.836537+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:53:09.147089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e99115f6511115b172df49ea2717fae8975bd9fdd7a46a263606c5791fcfd844", "fetched_at": "2026-08-28T04:03:29.836537+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hcavarsan/pipedash"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:29.836537+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:29.836537+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:53:09.147089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e99115f6511115b172df49ea2717fae8975bd9fdd7a46a263606c5791fcfd844", "fetched_at": "2026-08-28T04:03:29.836537+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hcavarsan/pipedash"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:29.836537+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:29.836537+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:29.836537+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:53:09.147089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e99115f6511115b172df49ea2717fae8975bd9fdd7a46a263606c5791fcfd844", "fetched_at": "2026-08-28T04:03:29.836537+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hcavarsan/pipedash"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:29.836537+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:29.836537+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:53:09.147089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e99115f6511115b172df49ea2717fae8975bd9fdd7a46a263606c5791fcfd844", "fetched_at": "2026-08-28T04:03:29.836537+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hcavarsan/pipedash"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:53:09.147089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e99115f6511115b172df49ea2717fae8975bd9fdd7a46a263606c5791fcfd844", "fetched_at": "2026-08-28T04:03:29.836537+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hcavarsan/pipedash"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:53:09.147089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e99115f6511115b172df49ea2717fae8975bd9fdd7a46a263606c5791fcfd844", "fetched_at": "2026-08-28T04:03:29.836537+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hcavarsan/pipedash"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:53:09.147089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e99115f6511115b172df49ea2717fae8975bd9fdd7a46a263606c5791fcfd844", "fetched_at": "2026-08-28T04:03:29.836537+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hcavarsan/pipedash"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 92, "longevity": 21, "rhythm": 63}, "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": 307, "days_push": 49, "days_rel": 245, "gap_med": 1.0, "n_releases_24m": 11}, "score": 68, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}