{"adoption": {"forks": 272, "observed_at": "2026-08-28T04:07:16.622471+00:00", "stars": 2744}, "canonical_url": "https://ross.abutalabs.com/products/spoolman", "card": {"archived": false, "artifact_type": "service", "description": "Keep track of your inventory of 3D-printer filament spools.", "domain": ["self-hosted", "web-development", "developer-tools"], "enriched": true, "function": ["database", "http-server", "websocket", "api-framework", "monitoring"], "health_score": 100, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["Donkie/Spoolman"], "name": "Donkie/Spoolman", "platform": ["self-hosted", "python", "cross-platform"], "pushed_at": "2026-08-26T16:16:46+00:00", "repo": "Donkie/Spoolman", "stars": 2744, "tags": ["3d-printing", "filament-tracking", "inventory-management", "octoprint", "klipper", "moonraker", "rest-api", "spool-management", "automation", "docker", "web-server"], "topics": ["3d-printing", "database", "inventory", "service"], "urls": [], "use_cases": ["track 3d printer filament spool inventory", "automatically log filament usage during prints", "manage filament spools across multiple printers", "print qr code labels for filament spools", "monitor filament consumption history with prometheus", "self-hosted filament database for klipper and octoprint"], "what_it_is": "Spoolman is a self-hosted web service for tracking 3D-printer filament spool inventory and usage. It provides a REST API and web client, and integrates with OctoPrint and Klipper/Moonraker to automatically update spool weights as printing progresses.", "when_to_avoid": ["you need general-purpose inventory management beyond filament spools", "you want a fully hosted/cloud solution without self-hosting", "you don't use any 3D printing software that can integrate with its API"], "when_to_choose": ["you own a 3D printer and want centralized filament inventory tracking", "you run OctoPrint or Klipper/Moonraker and want automatic spool weight updates", "you need a REST API/websocket service that other printing tools can integrate with", "you want multi-printer, multi-database (SQLite/PostgreSQL/MySQL) filament management"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/spoolman", "repo": "Donkie/Spoolman", "role": "main", "score": 96}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:16.622471+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T08:19:05.246817+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7589aad62285b78049c73511b020ec08967f1e018ed37f0c714201ac9b82cedf", "fetched_at": "2026-08-28T04:07:16.622471+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Donkie/Spoolman"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:16.622471+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T08:19:05.246817+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7589aad62285b78049c73511b020ec08967f1e018ed37f0c714201ac9b82cedf", "fetched_at": "2026-08-28T04:07:16.622471+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Donkie/Spoolman"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T08:19:05.246817+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7589aad62285b78049c73511b020ec08967f1e018ed37f0c714201ac9b82cedf", "fetched_at": "2026-08-28T04:07:16.622471+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Donkie/Spoolman"}], "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:07:16.622471+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:16.622471+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:16.622471+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T08:19:05.246817+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7589aad62285b78049c73511b020ec08967f1e018ed37f0c714201ac9b82cedf", "fetched_at": "2026-08-28T04:07:16.622471+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Donkie/Spoolman"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:16.622471+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:16.622471+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T08:19:05.246817+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7589aad62285b78049c73511b020ec08967f1e018ed37f0c714201ac9b82cedf", "fetched_at": "2026-08-28T04:07:16.622471+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Donkie/Spoolman"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:16.622471+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:16.622471+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:16.622471+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T08:19:05.246817+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7589aad62285b78049c73511b020ec08967f1e018ed37f0c714201ac9b82cedf", "fetched_at": "2026-08-28T04:07:16.622471+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Donkie/Spoolman"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:16.622471+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:16.622471+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T08:19:05.246817+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7589aad62285b78049c73511b020ec08967f1e018ed37f0c714201ac9b82cedf", "fetched_at": "2026-08-28T04:07:16.622471+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Donkie/Spoolman"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T08:19:05.246817+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7589aad62285b78049c73511b020ec08967f1e018ed37f0c714201ac9b82cedf", "fetched_at": "2026-08-28T04:07:16.622471+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Donkie/Spoolman"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T08:19:05.246817+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7589aad62285b78049c73511b020ec08967f1e018ed37f0c714201ac9b82cedf", "fetched_at": "2026-08-28T04:07:16.622471+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Donkie/Spoolman"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T08:19:05.246817+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7589aad62285b78049c73511b020ec08967f1e018ed37f0c714201ac9b82cedf", "fetched_at": "2026-08-28T04:07:16.622471+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Donkie/Spoolman"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 89, "rhythm": 96}, "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": 1250, "days_push": 7, "days_rel": 26, "gap_med": 15, "n_releases_24m": 10}, "score": 96, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}