{"adoption": {"forks": 32, "observed_at": "2026-08-28T04:05:21.069372+00:00", "stars": 1679}, "canonical_url": "https://ross.abutalabs.com/products/cafe-hass", "card": {"archived": false, "artifact_type": "plugin", "description": "The \"Third Way\" for Home Assistant Automations.", "domain": ["self-hosted", "iot"], "enriched": true, "function": ["workflow-automation", "developer-tools", "gui"], "health_score": 100, "homepage": "https://fezvrasta.github.io/cafe", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["FezVrasta/cafe-hass"], "name": "FezVrasta/cafe-hass", "platform": ["self-hosted", "cross-platform"], "pushed_at": "2026-08-25T08:15:21+00:00", "repo": "FezVrasta/cafe-hass", "stars": 1679, "tags": ["home-assistant", "hacs", "visual-editor", "node-red-alternative", "yaml-generation", "flow-editor", "no-vendor-lock-in", "automation", "web-server"], "topics": ["hacs", "home-assistant"], "urls": [], "use_cases": ["design home assistant automations visually instead of writing yaml", "replace node-red without running an external engine or docker container", "edit complex automation logic with loops using a state-machine pattern", "debug visual flows through the home assistant trace view", "avoid vendor lock-in by keeping automations as standard yaml", "switch between the native HA editor and a visual editor on the same automations"], "what_it_is": "C.A.F.E. is a visual flow editor for Home Assistant that transpiles Node-RED-style diagrams into native, fully compliant Home Assistant YAML automations. It runs as a HACS custom integration with no external engine, storing all logic directly in Home Assistant core with zero runtime overhead.", "when_to_avoid": ["you need a guaranteed-stable tool, since the project is still in beta", "you prefer writing YAML by hand or use Node-RED's full node ecosystem", "you don't use Home Assistant or install custom integrations via HACS"], "when_to_choose": ["you want Node-RED-style visual automation editing but pure native Home Assistant YAML output", "you want zero extra runtime overhead or side files in your Home Assistant setup", "you want to be able to uninstall the editor and keep your automations working unchanged"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/cafe-hass", "repo": "FezVrasta/cafe-hass", "role": "main", "score": 82}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.069372+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:41:30.479183+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d917b13e7a9f2b5fde94d705429b8a31f1c091a037b46fb9e987845bd9264f3f", "fetched_at": "2026-08-28T04:05:21.069372+00:00", "kind": "readme", "missing": false, "url": "https://github.com/FezVrasta/cafe-hass"}, {"content_hash": "dbcca43088f9f52f38f6d74780ac7d76b3cd1f072bff35cea33e9e3f6e1f7bb1", "fetched_at": "2026-08-29T11:15:01.054981+00:00", "kind": "homepage", "missing": false, "url": "https://fezvrasta.github.io/cafe"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.069372+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:41:30.479183+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d917b13e7a9f2b5fde94d705429b8a31f1c091a037b46fb9e987845bd9264f3f", "fetched_at": "2026-08-28T04:05:21.069372+00:00", "kind": "readme", "missing": false, "url": "https://github.com/FezVrasta/cafe-hass"}, {"content_hash": "dbcca43088f9f52f38f6d74780ac7d76b3cd1f072bff35cea33e9e3f6e1f7bb1", "fetched_at": "2026-08-29T11:15:01.054981+00:00", "kind": "homepage", "missing": false, "url": "https://fezvrasta.github.io/cafe"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:41:30.479183+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d917b13e7a9f2b5fde94d705429b8a31f1c091a037b46fb9e987845bd9264f3f", "fetched_at": "2026-08-28T04:05:21.069372+00:00", "kind": "readme", "missing": false, "url": "https://github.com/FezVrasta/cafe-hass"}, {"content_hash": "dbcca43088f9f52f38f6d74780ac7d76b3cd1f072bff35cea33e9e3f6e1f7bb1", "fetched_at": "2026-08-29T11:15:01.054981+00:00", "kind": "homepage", "missing": false, "url": "https://fezvrasta.github.io/cafe"}], "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:21.069372+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.069372+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.069372+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:41:30.479183+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d917b13e7a9f2b5fde94d705429b8a31f1c091a037b46fb9e987845bd9264f3f", "fetched_at": "2026-08-28T04:05:21.069372+00:00", "kind": "readme", "missing": false, "url": "https://github.com/FezVrasta/cafe-hass"}, {"content_hash": "dbcca43088f9f52f38f6d74780ac7d76b3cd1f072bff35cea33e9e3f6e1f7bb1", "fetched_at": "2026-08-29T11:15:01.054981+00:00", "kind": "homepage", "missing": false, "url": "https://fezvrasta.github.io/cafe"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.069372+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.069372+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:41:30.479183+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d917b13e7a9f2b5fde94d705429b8a31f1c091a037b46fb9e987845bd9264f3f", "fetched_at": "2026-08-28T04:05:21.069372+00:00", "kind": "readme", "missing": false, "url": "https://github.com/FezVrasta/cafe-hass"}, {"content_hash": "dbcca43088f9f52f38f6d74780ac7d76b3cd1f072bff35cea33e9e3f6e1f7bb1", "fetched_at": "2026-08-29T11:15:01.054981+00:00", "kind": "homepage", "missing": false, "url": "https://fezvrasta.github.io/cafe"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.069372+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.069372+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.069372+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:41:30.479183+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d917b13e7a9f2b5fde94d705429b8a31f1c091a037b46fb9e987845bd9264f3f", "fetched_at": "2026-08-28T04:05:21.069372+00:00", "kind": "readme", "missing": false, "url": "https://github.com/FezVrasta/cafe-hass"}, {"content_hash": "dbcca43088f9f52f38f6d74780ac7d76b3cd1f072bff35cea33e9e3f6e1f7bb1", "fetched_at": "2026-08-29T11:15:01.054981+00:00", "kind": "homepage", "missing": false, "url": "https://fezvrasta.github.io/cafe"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.069372+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.069372+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:41:30.479183+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d917b13e7a9f2b5fde94d705429b8a31f1c091a037b46fb9e987845bd9264f3f", "fetched_at": "2026-08-28T04:05:21.069372+00:00", "kind": "readme", "missing": false, "url": "https://github.com/FezVrasta/cafe-hass"}, {"content_hash": "dbcca43088f9f52f38f6d74780ac7d76b3cd1f072bff35cea33e9e3f6e1f7bb1", "fetched_at": "2026-08-29T11:15:01.054981+00:00", "kind": "homepage", "missing": false, "url": "https://fezvrasta.github.io/cafe"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:41:30.479183+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d917b13e7a9f2b5fde94d705429b8a31f1c091a037b46fb9e987845bd9264f3f", "fetched_at": "2026-08-28T04:05:21.069372+00:00", "kind": "readme", "missing": false, "url": "https://github.com/FezVrasta/cafe-hass"}, {"content_hash": "dbcca43088f9f52f38f6d74780ac7d76b3cd1f072bff35cea33e9e3f6e1f7bb1", "fetched_at": "2026-08-29T11:15:01.054981+00:00", "kind": "homepage", "missing": false, "url": "https://fezvrasta.github.io/cafe"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:41:30.479183+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d917b13e7a9f2b5fde94d705429b8a31f1c091a037b46fb9e987845bd9264f3f", "fetched_at": "2026-08-28T04:05:21.069372+00:00", "kind": "readme", "missing": false, "url": "https://github.com/FezVrasta/cafe-hass"}, {"content_hash": "dbcca43088f9f52f38f6d74780ac7d76b3cd1f072bff35cea33e9e3f6e1f7bb1", "fetched_at": "2026-08-29T11:15:01.054981+00:00", "kind": "homepage", "missing": false, "url": "https://fezvrasta.github.io/cafe"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:41:30.479183+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d917b13e7a9f2b5fde94d705429b8a31f1c091a037b46fb9e987845bd9264f3f", "fetched_at": "2026-08-28T04:05:21.069372+00:00", "kind": "readme", "missing": false, "url": "https://github.com/FezVrasta/cafe-hass"}, {"content_hash": "dbcca43088f9f52f38f6d74780ac7d76b3cd1f072bff35cea33e9e3f6e1f7bb1", "fetched_at": "2026-08-29T11:15:01.054981+00:00", "kind": "homepage", "missing": false, "url": "https://fezvrasta.github.io/cafe"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 16, "rhythm": 98}, "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": 236, "days_push": 8, "days_rel": 18, "gap_med": 0.0, "n_releases_24m": 29}, "score": 82, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}