{"adoption": {"forks": 137, "observed_at": "2026-08-28T04:09:31.590787+00:00", "stars": 5848}, "canonical_url": "https://ross.abutalabs.com/products/themer", "card": {"archived": false, "artifact_type": "cli-tool", "description": "🎨 themer takes a set of colors and outputs themes for your apps (editors, terminals, wallpapers, and more).", "domain": ["developer-tools", "text-editors"], "enriched": true, "function": ["cli", "theme", "developer-tools", "templating"], "health_score": 78, "homepage": "https://themer.dev", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["mjswensen/themer"], "name": "mjswensen/themer", "platform": ["cli", "cross-platform"], "pushed_at": "2026-06-27T21:59:06+00:00", "repo": "mjswensen/themer", "stars": 5848, "tags": ["color-schemes", "editor-themes", "terminal-themes", "wallpapers", "dotfiles", "syntax-highlighting", "pwa", "command-line", "nodejs", "web"], "topics": ["wallpapers", "themer", "vim", "hyper", "sublime-text", "iterm", "theme", "vscode", "xcode", "alfred", "chrome", "lightline", "slack", "terminal", "conemu", "cmd", "sketch", "hacktoberfest"], "urls": [], "use_cases": ["generate a consistent color theme across my editor and terminal", "create vscode and iterm themes from one color palette", "generate matching wallpapers for my color scheme", "integrate theme generation into my dotfiles", "create a custom syntax theme for vim and sublime text", "use base16 color schemes to generate app themes"], "what_it_is": "Themer is a theme generator that takes a set of colors and outputs themes for editors, terminals, and many other apps, plus matching desktop wallpapers. It is available as a CLI, a JavaScript/TypeScript API, and a web-based progressive web app at themer.dev.", "when_to_avoid": ["you only need a theme for a single app with its own built-in theme editor", "you need a GUI theme designer with live preview for one specific editor", "you are not comfortable with Node.js tooling for CLI/API use"], "when_to_choose": ["you want one color palette to drive themes across many editors, terminals, and apps", "you want to automate theme generation in dotfiles via CLI or API", "you want matching wallpapers generated from your theme colors"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/themer", "repo": "mjswensen/themer", "role": "main", "score": 63}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:31.590787+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:51:54.499655+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "610d12730405e531d0c8b220710c58ce0f702ede6d9d23501a8f079f13f4186f", "fetched_at": "2026-08-28T04:09:31.590787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mjswensen/themer"}, {"content_hash": "6dc662e05d99718083fd9ef830f4bd39197e1b3e8ff670d947cab5216aeb71a9", "fetched_at": "2026-08-29T08:47:37.395963+00:00", "kind": "homepage", "missing": false, "url": "https://themer.dev"}, {"content_hash": "40d0db9fdc16b025feb7b878d5b35d93d736e6508d4df78e4342e07dd782e145", "fetched_at": "2026-08-29T08:47:37.404785+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/themer"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:31.590787+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:51:54.499655+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "610d12730405e531d0c8b220710c58ce0f702ede6d9d23501a8f079f13f4186f", "fetched_at": "2026-08-28T04:09:31.590787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mjswensen/themer"}, {"content_hash": "6dc662e05d99718083fd9ef830f4bd39197e1b3e8ff670d947cab5216aeb71a9", "fetched_at": "2026-08-29T08:47:37.395963+00:00", "kind": "homepage", "missing": false, "url": "https://themer.dev"}, {"content_hash": "40d0db9fdc16b025feb7b878d5b35d93d736e6508d4df78e4342e07dd782e145", "fetched_at": "2026-08-29T08:47:37.404785+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/themer"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:51:54.499655+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "610d12730405e531d0c8b220710c58ce0f702ede6d9d23501a8f079f13f4186f", "fetched_at": "2026-08-28T04:09:31.590787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mjswensen/themer"}, {"content_hash": "6dc662e05d99718083fd9ef830f4bd39197e1b3e8ff670d947cab5216aeb71a9", "fetched_at": "2026-08-29T08:47:37.395963+00:00", "kind": "homepage", "missing": false, "url": "https://themer.dev"}, {"content_hash": "40d0db9fdc16b025feb7b878d5b35d93d736e6508d4df78e4342e07dd782e145", "fetched_at": "2026-08-29T08:47:37.404785+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/themer"}], "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:09:31.590787+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:31.590787+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:31.590787+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:51:54.499655+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "610d12730405e531d0c8b220710c58ce0f702ede6d9d23501a8f079f13f4186f", "fetched_at": "2026-08-28T04:09:31.590787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mjswensen/themer"}, {"content_hash": "6dc662e05d99718083fd9ef830f4bd39197e1b3e8ff670d947cab5216aeb71a9", "fetched_at": "2026-08-29T08:47:37.395963+00:00", "kind": "homepage", "missing": false, "url": "https://themer.dev"}, {"content_hash": "40d0db9fdc16b025feb7b878d5b35d93d736e6508d4df78e4342e07dd782e145", "fetched_at": "2026-08-29T08:47:37.404785+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/themer"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:31.590787+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:31.590787+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:51:54.499655+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "610d12730405e531d0c8b220710c58ce0f702ede6d9d23501a8f079f13f4186f", "fetched_at": "2026-08-28T04:09:31.590787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mjswensen/themer"}, {"content_hash": "6dc662e05d99718083fd9ef830f4bd39197e1b3e8ff670d947cab5216aeb71a9", "fetched_at": "2026-08-29T08:47:37.395963+00:00", "kind": "homepage", "missing": false, "url": "https://themer.dev"}, {"content_hash": "40d0db9fdc16b025feb7b878d5b35d93d736e6508d4df78e4342e07dd782e145", "fetched_at": "2026-08-29T08:47:37.404785+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/themer"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:31.590787+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:31.590787+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:31.590787+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:51:54.499655+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "610d12730405e531d0c8b220710c58ce0f702ede6d9d23501a8f079f13f4186f", "fetched_at": "2026-08-28T04:09:31.590787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mjswensen/themer"}, {"content_hash": "6dc662e05d99718083fd9ef830f4bd39197e1b3e8ff670d947cab5216aeb71a9", "fetched_at": "2026-08-29T08:47:37.395963+00:00", "kind": "homepage", "missing": false, "url": "https://themer.dev"}, {"content_hash": "40d0db9fdc16b025feb7b878d5b35d93d736e6508d4df78e4342e07dd782e145", "fetched_at": "2026-08-29T08:47:37.404785+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/themer"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:31.590787+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:31.590787+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:51:54.499655+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "610d12730405e531d0c8b220710c58ce0f702ede6d9d23501a8f079f13f4186f", "fetched_at": "2026-08-28T04:09:31.590787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mjswensen/themer"}, {"content_hash": "6dc662e05d99718083fd9ef830f4bd39197e1b3e8ff670d947cab5216aeb71a9", "fetched_at": "2026-08-29T08:47:37.395963+00:00", "kind": "homepage", "missing": false, "url": "https://themer.dev"}, {"content_hash": "40d0db9fdc16b025feb7b878d5b35d93d736e6508d4df78e4342e07dd782e145", "fetched_at": "2026-08-29T08:47:37.404785+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/themer"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:51:54.499655+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "610d12730405e531d0c8b220710c58ce0f702ede6d9d23501a8f079f13f4186f", "fetched_at": "2026-08-28T04:09:31.590787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mjswensen/themer"}, {"content_hash": "6dc662e05d99718083fd9ef830f4bd39197e1b3e8ff670d947cab5216aeb71a9", "fetched_at": "2026-08-29T08:47:37.395963+00:00", "kind": "homepage", "missing": false, "url": "https://themer.dev"}, {"content_hash": "40d0db9fdc16b025feb7b878d5b35d93d736e6508d4df78e4342e07dd782e145", "fetched_at": "2026-08-29T08:47:37.404785+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/themer"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:51:54.499655+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "610d12730405e531d0c8b220710c58ce0f702ede6d9d23501a8f079f13f4186f", "fetched_at": "2026-08-28T04:09:31.590787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mjswensen/themer"}, {"content_hash": "6dc662e05d99718083fd9ef830f4bd39197e1b3e8ff670d947cab5216aeb71a9", "fetched_at": "2026-08-29T08:47:37.395963+00:00", "kind": "homepage", "missing": false, "url": "https://themer.dev"}, {"content_hash": "40d0db9fdc16b025feb7b878d5b35d93d736e6508d4df78e4342e07dd782e145", "fetched_at": "2026-08-29T08:47:37.404785+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/themer"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:51:54.499655+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "610d12730405e531d0c8b220710c58ce0f702ede6d9d23501a8f079f13f4186f", "fetched_at": "2026-08-28T04:09:31.590787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mjswensen/themer"}, {"content_hash": "6dc662e05d99718083fd9ef830f4bd39197e1b3e8ff670d947cab5216aeb71a9", "fetched_at": "2026-08-29T08:47:37.395963+00:00", "kind": "homepage", "missing": false, "url": "https://themer.dev"}, {"content_hash": "40d0db9fdc16b025feb7b878d5b35d93d736e6508d4df78e4342e07dd782e145", "fetched_at": "2026-08-29T08:47:37.404785+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/themer"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 89, "longevity": 100, "rhythm": 8}, "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": 3572, "days_push": 67, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 63, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}