{"adoption": {"forks": 454, "observed_at": "2026-08-28T04:08:24.017667+00:00", "stars": 3842}, "canonical_url": "https://ross.abutalabs.com/products/gmailjs", "card": {"archived": false, "artifact_type": "library", "description": "Gmail JavaScript API", "domain": ["email", "browser-extensions", "web-development", "developer-tools"], "enriched": true, "function": ["sdk", "browser-extension", "email", "web-scraping"], "health_score": 78, "homepage": null, "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["KartikTalwar/gmail.js"], "name": "KartikTalwar/gmail.js", "platform": ["browser", "browser-extension"], "pushed_at": "2026-08-04T09:31:47+00:00", "repo": "KartikTalwar/gmail.js", "stars": 3842, "tags": ["gmail", "webextension", "content-script", "dom-scraping", "jquery", "unofficial-api", "javascript", "nodejs"], "topics": ["javascript", "chrome-extension", "gmail"], "urls": [], "use_cases": ["build a chrome extension that reads gmail emails", "observe when user composes or sends email in gmail", "extract email metadata from gmail web ui", "automate actions inside gmail via browser extension", "add custom toolbar buttons to gmail interface", "react to gmail events without oauth"], "what_it_is": "Gmail.js is a JavaScript library that provides an unofficial API for interacting with Gmail's web interface from browser extensions. It lets WebExtension developers read email data and observe Gmail events by injecting into the Gmail DOM, without needing OAuth.", "when_to_avoid": ["you need server-side access to Gmail from Node.js", "you are building a standalone web app talking to Gmail", "you need an official, Google-supported API with stability guarantees"], "when_to_choose": ["you are building a WebExtension (Chrome/Firefox) that enhances Gmail", "you want email data or event hooks without OAuth setup", "you need DOM and data access to the Gmail web client"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/gmailjs", "repo": "KartikTalwar/gmail.js", "role": "main", "score": 75}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:24.017667+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:26:12.910596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ea7b184c2e2a1c2d2c6a668ac2e6a5605720618b4cf6e8d2a5361f1c07f06d0", "fetched_at": "2026-08-28T04:08:24.017667+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KartikTalwar/gmail.js"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:24.017667+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:26:12.910596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ea7b184c2e2a1c2d2c6a668ac2e6a5605720618b4cf6e8d2a5361f1c07f06d0", "fetched_at": "2026-08-28T04:08:24.017667+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KartikTalwar/gmail.js"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:26:12.910596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ea7b184c2e2a1c2d2c6a668ac2e6a5605720618b4cf6e8d2a5361f1c07f06d0", "fetched_at": "2026-08-28T04:08:24.017667+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KartikTalwar/gmail.js"}], "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:08:24.017667+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:24.017667+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:24.017667+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:26:12.910596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ea7b184c2e2a1c2d2c6a668ac2e6a5605720618b4cf6e8d2a5361f1c07f06d0", "fetched_at": "2026-08-28T04:08:24.017667+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KartikTalwar/gmail.js"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:24.017667+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:24.017667+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:26:12.910596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ea7b184c2e2a1c2d2c6a668ac2e6a5605720618b4cf6e8d2a5361f1c07f06d0", "fetched_at": "2026-08-28T04:08:24.017667+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KartikTalwar/gmail.js"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:24.017667+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:24.017667+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:24.017667+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:26:12.910596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ea7b184c2e2a1c2d2c6a668ac2e6a5605720618b4cf6e8d2a5361f1c07f06d0", "fetched_at": "2026-08-28T04:08:24.017667+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KartikTalwar/gmail.js"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:24.017667+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:24.017667+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:26:12.910596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ea7b184c2e2a1c2d2c6a668ac2e6a5605720618b4cf6e8d2a5361f1c07f06d0", "fetched_at": "2026-08-28T04:08:24.017667+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KartikTalwar/gmail.js"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:26:12.910596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ea7b184c2e2a1c2d2c6a668ac2e6a5605720618b4cf6e8d2a5361f1c07f06d0", "fetched_at": "2026-08-28T04:08:24.017667+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KartikTalwar/gmail.js"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:26:12.910596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ea7b184c2e2a1c2d2c6a668ac2e6a5605720618b4cf6e8d2a5361f1c07f06d0", "fetched_at": "2026-08-28T04:08:24.017667+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KartikTalwar/gmail.js"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:26:12.910596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ea7b184c2e2a1c2d2c6a668ac2e6a5605720618b4cf6e8d2a5361f1c07f06d0", "fetched_at": "2026-08-28T04:08:24.017667+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KartikTalwar/gmail.js"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4733, "days_push": 29, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 75, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}