{"adoption": {"forks": 411, "observed_at": "2026-08-28T04:04:43.189854+00:00", "stars": 1432}, "canonical_url": "https://ross.abutalabs.com/products/cli-microsoft365", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Manage Microsoft 365 and SharePoint Framework projects on any platform", "domain": ["developer-tools", "cloud-computing"], "enriched": true, "function": ["cli", "developer-tools", "configuration-management", "auth", "workflow-automation"], "health_score": 80, "homepage": "https://aka.ms/cli-m365", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["pnp/cli-microsoft365"], "name": "pnp/cli-microsoft365", "platform": ["cli", "cross-platform", "windows"], "pushed_at": "2026-08-25T22:39:46+00:00", "repo": "pnp/cli-microsoft365", "stars": 1432, "tags": ["microsoft-365", "sharepoint", "sharepoint-framework", "spfx", "microsoft-teams", "entra-id", "microsoft-graph", "power-platform", "office-365", "tenant-administration", "command-line", "automation", "nodejs", "linux", "macos"], "topics": ["office365", "sharepoint", "sharepoint-online", "sharepoint-framework", "spfx", "microsoft-graph", "microsoft-teams", "azure-active-directory", "azure", "microsoft", "microsoft-power-automate", "microsoft-power-apps", "cli", "microsoft-planner", "microsoft-365", "microsoft365", "office-365", "hacktoberfest", "microsoft-viva", "entra-id"], "urls": [], "use_cases": ["manage microsoft 365 tenant from the command line", "automate sharepoint online administration", "manage sharepoint framework projects", "script microsoft teams configuration", "manage entra id users and apps via cli", "automate power platform tasks", "run m365 admin tasks on linux or mac"], "what_it_is": "A cross-platform command-line interface for managing Microsoft 365 tenants and SharePoint Framework projects. It provides unified login and commands covering workloads like Teams, SharePoint Online, Entra ID, Planner, Power Platform, and more.", "when_to_avoid": ["you only need the official Azure CLI for Azure resources", "you prefer GUI-based Microsoft 365 admin center tooling", "you need deep management of non-Microsoft clouds"], "when_to_choose": ["you need a unified CLI across many Microsoft 365 workloads on any OS", "you want to script or automate tenant administration tasks", "you work with SharePoint Framework projects and want tooling support"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/cli-microsoft365", "repo": "pnp/cli-microsoft365", "role": "main", "score": 77}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.189854+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:37:02.850111+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25f93151a489dd2d6ee6a53b7a0ca57bf9a9619d74f3e444305908f32e156077", "fetched_at": "2026-08-28T04:04:43.189854+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pnp/cli-microsoft365"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.189854+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:37:02.850111+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25f93151a489dd2d6ee6a53b7a0ca57bf9a9619d74f3e444305908f32e156077", "fetched_at": "2026-08-28T04:04:43.189854+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pnp/cli-microsoft365"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:37:02.850111+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25f93151a489dd2d6ee6a53b7a0ca57bf9a9619d74f3e444305908f32e156077", "fetched_at": "2026-08-28T04:04:43.189854+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pnp/cli-microsoft365"}], "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:43.189854+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.189854+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.189854+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:37:02.850111+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25f93151a489dd2d6ee6a53b7a0ca57bf9a9619d74f3e444305908f32e156077", "fetched_at": "2026-08-28T04:04:43.189854+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pnp/cli-microsoft365"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.189854+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.189854+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:37:02.850111+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25f93151a489dd2d6ee6a53b7a0ca57bf9a9619d74f3e444305908f32e156077", "fetched_at": "2026-08-28T04:04:43.189854+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pnp/cli-microsoft365"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.189854+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.189854+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.189854+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:37:02.850111+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25f93151a489dd2d6ee6a53b7a0ca57bf9a9619d74f3e444305908f32e156077", "fetched_at": "2026-08-28T04:04:43.189854+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pnp/cli-microsoft365"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.189854+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.189854+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:37:02.850111+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25f93151a489dd2d6ee6a53b7a0ca57bf9a9619d74f3e444305908f32e156077", "fetched_at": "2026-08-28T04:04:43.189854+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pnp/cli-microsoft365"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:37:02.850111+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25f93151a489dd2d6ee6a53b7a0ca57bf9a9619d74f3e444305908f32e156077", "fetched_at": "2026-08-28T04:04:43.189854+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pnp/cli-microsoft365"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:37:02.850111+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25f93151a489dd2d6ee6a53b7a0ca57bf9a9619d74f3e444305908f32e156077", "fetched_at": "2026-08-28T04:04:43.189854+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pnp/cli-microsoft365"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:37:02.850111+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25f93151a489dd2d6ee6a53b7a0ca57bf9a9619d74f3e444305908f32e156077", "fetched_at": "2026-08-28T04:04:43.189854+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pnp/cli-microsoft365"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "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": 3247, "days_push": 8, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 77, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}