{"adoption": {"forks": 381, "observed_at": "2026-08-28T04:07:25.768771+00:00", "stars": 2856}, "canonical_url": "https://ross.abutalabs.com/products/bambuddy", "card": {"archived": false, "artifact_type": "application", "description": "Your Bambu Lab. No Cloud. Your Rules.  Self-hosted command center for Bambu Lab — from one A1 to an entire print farm. ", "domain": ["self-hosted", "analytics", "hardware", "web-development"], "enriched": true, "function": ["monitoring", "self-hosted", "http-server", "scheduling", "analytics", "file-upload", "developer-tools"], "health_score": 100, "homepage": "http://bambuddy.cool/", "language": "Python", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["maziggy/bambuddy"], "name": "maziggy/bambuddy", "platform": ["windows", "self-hosted", "python"], "pushed_at": "2026-08-26T16:15:37+00:00", "repo": "maziggy/bambuddy", "stars": 2856, "tags": ["3d-printing", "bambu-lab", "print-farm", "mqtt", "filament-management", "slicing", "orcaslicer", "no-cloud", "printer-fleet-management", "nfc", "automation", "docker", "linux", "macos"], "topics": ["3d-printing", "3mf-files", "bambu", "bambu-studio", "bambulab", "3d-printer", "3dprinting", "filament", "filamentadmin", "gcode", "self-hosted", "selfhosted", "bambu-lab"], "urls": [], "use_cases": ["manage a Bambu Lab print farm without the vendor cloud", "monitor multiple 3D printers in real time from a self-hosted dashboard", "queue print jobs across a fleet of printers", "archive every print with 3MF files, previews, and cost tracking", "slice STL and 3MF files server-side without a desktop slicer", "track filament spool inventory and remaining weight", "print remotely without Bambu Cloud, port forwarding, or a VPN", "analyze print costs, energy usage, and failure rates"], "what_it_is": "Bambuddy is a self-hosted web application that acts as a command center for Bambu Lab 3D printers, from a single printer to an entire print farm. It provides real-time fleet monitoring, automatic print archiving, job queueing, server-side slicing via a headless OrcaSlicer/Bambu Studio sidecar, filament inventory tracking, and cloud-free remote printing through a virtual printer proxy.", "when_to_avoid": ["you use non-Bambu printers exclusively, since it targets Bambu Lab hardware", "you want a fully managed cloud service rather than self-hosting", "you need a slicer itself rather than a management layer (it wraps OrcaSlicer/Bambu Studio)", "you are unwilling to run a server, Docker, or a Windows service"], "when_to_choose": ["you own one or more Bambu Lab printers and want to avoid Bambu Cloud entirely", "you run a print farm and need queueing, archiving, and cost analytics in one place", "you want everything local on your own hardware (Docker, Pi, NAS, mini-PC, or Windows)", "you need remote printing without port forwarding, optionally via Tailscale", "you want integrated slicing and filament/AMS management"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/bambuddy", "repo": "maziggy/bambuddy", "role": "main", "score": 78}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.768771+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:36:43.375118+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f26388898aed839a72a048e96bf11428509164fea94940994b40011968a169d9", "fetched_at": "2026-08-28T04:07:25.768771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/maziggy/bambuddy"}, {"content_hash": "4f8af8b64e62784ae7edef30e8b6e3cebea3a91f5aa28a96c858f8bf53f6e52c", "fetched_at": "2026-08-29T09:52:19.751482+00:00", "kind": "homepage", "missing": false, "url": "http://bambuddy.cool/"}, {"content_hash": "ae00d3540910ad4eef4c085fd048a4f79cd60b55bd3b212e23123cc58e268f28", "fetched_at": "2026-08-29T09:52:19.760770+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/features.html"}, {"content_hash": "b15d3b8db370a1c9668dfd6af5fe7bf06358234fd7f9caf60fe7e7db28ba5a6e", "fetched_at": "2026-08-29T09:52:19.764895+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/installation.html"}, {"content_hash": "1146d27c621a557be8cc3183f35e90f81ca0a54b1ef198830c63b3e5cc1d0932", "fetched_at": "2026-08-29T09:52:19.766831+00:00", "kind": "site_page", "missing": false, "url": "http://wiki.bambuddy.cool"}, {"content_hash": "38bc25262cf64b0c37252f2207aa547a13eff2637d4aab7df253a21d900b6290", "fetched_at": "2026-08-29T09:52:19.768539+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/spoolbuddy.html"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.768771+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:36:43.375118+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f26388898aed839a72a048e96bf11428509164fea94940994b40011968a169d9", "fetched_at": "2026-08-28T04:07:25.768771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/maziggy/bambuddy"}, {"content_hash": "4f8af8b64e62784ae7edef30e8b6e3cebea3a91f5aa28a96c858f8bf53f6e52c", "fetched_at": "2026-08-29T09:52:19.751482+00:00", "kind": "homepage", "missing": false, "url": "http://bambuddy.cool/"}, {"content_hash": "ae00d3540910ad4eef4c085fd048a4f79cd60b55bd3b212e23123cc58e268f28", "fetched_at": "2026-08-29T09:52:19.760770+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/features.html"}, {"content_hash": "b15d3b8db370a1c9668dfd6af5fe7bf06358234fd7f9caf60fe7e7db28ba5a6e", "fetched_at": "2026-08-29T09:52:19.764895+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/installation.html"}, {"content_hash": "1146d27c621a557be8cc3183f35e90f81ca0a54b1ef198830c63b3e5cc1d0932", "fetched_at": "2026-08-29T09:52:19.766831+00:00", "kind": "site_page", "missing": false, "url": "http://wiki.bambuddy.cool"}, {"content_hash": "38bc25262cf64b0c37252f2207aa547a13eff2637d4aab7df253a21d900b6290", "fetched_at": "2026-08-29T09:52:19.768539+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/spoolbuddy.html"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:36:43.375118+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f26388898aed839a72a048e96bf11428509164fea94940994b40011968a169d9", "fetched_at": "2026-08-28T04:07:25.768771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/maziggy/bambuddy"}, {"content_hash": "4f8af8b64e62784ae7edef30e8b6e3cebea3a91f5aa28a96c858f8bf53f6e52c", "fetched_at": "2026-08-29T09:52:19.751482+00:00", "kind": "homepage", "missing": false, "url": "http://bambuddy.cool/"}, {"content_hash": "ae00d3540910ad4eef4c085fd048a4f79cd60b55bd3b212e23123cc58e268f28", "fetched_at": "2026-08-29T09:52:19.760770+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/features.html"}, {"content_hash": "b15d3b8db370a1c9668dfd6af5fe7bf06358234fd7f9caf60fe7e7db28ba5a6e", "fetched_at": "2026-08-29T09:52:19.764895+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/installation.html"}, {"content_hash": "1146d27c621a557be8cc3183f35e90f81ca0a54b1ef198830c63b3e5cc1d0932", "fetched_at": "2026-08-29T09:52:19.766831+00:00", "kind": "site_page", "missing": false, "url": "http://wiki.bambuddy.cool"}, {"content_hash": "38bc25262cf64b0c37252f2207aa547a13eff2637d4aab7df253a21d900b6290", "fetched_at": "2026-08-29T09:52:19.768539+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/spoolbuddy.html"}], "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:25.768771+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.768771+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.768771+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:36:43.375118+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f26388898aed839a72a048e96bf11428509164fea94940994b40011968a169d9", "fetched_at": "2026-08-28T04:07:25.768771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/maziggy/bambuddy"}, {"content_hash": "4f8af8b64e62784ae7edef30e8b6e3cebea3a91f5aa28a96c858f8bf53f6e52c", "fetched_at": "2026-08-29T09:52:19.751482+00:00", "kind": "homepage", "missing": false, "url": "http://bambuddy.cool/"}, {"content_hash": "ae00d3540910ad4eef4c085fd048a4f79cd60b55bd3b212e23123cc58e268f28", "fetched_at": "2026-08-29T09:52:19.760770+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/features.html"}, {"content_hash": "b15d3b8db370a1c9668dfd6af5fe7bf06358234fd7f9caf60fe7e7db28ba5a6e", "fetched_at": "2026-08-29T09:52:19.764895+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/installation.html"}, {"content_hash": "1146d27c621a557be8cc3183f35e90f81ca0a54b1ef198830c63b3e5cc1d0932", "fetched_at": "2026-08-29T09:52:19.766831+00:00", "kind": "site_page", "missing": false, "url": "http://wiki.bambuddy.cool"}, {"content_hash": "38bc25262cf64b0c37252f2207aa547a13eff2637d4aab7df253a21d900b6290", "fetched_at": "2026-08-29T09:52:19.768539+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/spoolbuddy.html"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.768771+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.768771+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:36:43.375118+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f26388898aed839a72a048e96bf11428509164fea94940994b40011968a169d9", "fetched_at": "2026-08-28T04:07:25.768771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/maziggy/bambuddy"}, {"content_hash": "4f8af8b64e62784ae7edef30e8b6e3cebea3a91f5aa28a96c858f8bf53f6e52c", "fetched_at": "2026-08-29T09:52:19.751482+00:00", "kind": "homepage", "missing": false, "url": "http://bambuddy.cool/"}, {"content_hash": "ae00d3540910ad4eef4c085fd048a4f79cd60b55bd3b212e23123cc58e268f28", "fetched_at": "2026-08-29T09:52:19.760770+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/features.html"}, {"content_hash": "b15d3b8db370a1c9668dfd6af5fe7bf06358234fd7f9caf60fe7e7db28ba5a6e", "fetched_at": "2026-08-29T09:52:19.764895+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/installation.html"}, {"content_hash": "1146d27c621a557be8cc3183f35e90f81ca0a54b1ef198830c63b3e5cc1d0932", "fetched_at": "2026-08-29T09:52:19.766831+00:00", "kind": "site_page", "missing": false, "url": "http://wiki.bambuddy.cool"}, {"content_hash": "38bc25262cf64b0c37252f2207aa547a13eff2637d4aab7df253a21d900b6290", "fetched_at": "2026-08-29T09:52:19.768539+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/spoolbuddy.html"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.768771+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.768771+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.768771+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:36:43.375118+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f26388898aed839a72a048e96bf11428509164fea94940994b40011968a169d9", "fetched_at": "2026-08-28T04:07:25.768771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/maziggy/bambuddy"}, {"content_hash": "4f8af8b64e62784ae7edef30e8b6e3cebea3a91f5aa28a96c858f8bf53f6e52c", "fetched_at": "2026-08-29T09:52:19.751482+00:00", "kind": "homepage", "missing": false, "url": "http://bambuddy.cool/"}, {"content_hash": "ae00d3540910ad4eef4c085fd048a4f79cd60b55bd3b212e23123cc58e268f28", "fetched_at": "2026-08-29T09:52:19.760770+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/features.html"}, {"content_hash": "b15d3b8db370a1c9668dfd6af5fe7bf06358234fd7f9caf60fe7e7db28ba5a6e", "fetched_at": "2026-08-29T09:52:19.764895+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/installation.html"}, {"content_hash": "1146d27c621a557be8cc3183f35e90f81ca0a54b1ef198830c63b3e5cc1d0932", "fetched_at": "2026-08-29T09:52:19.766831+00:00", "kind": "site_page", "missing": false, "url": "http://wiki.bambuddy.cool"}, {"content_hash": "38bc25262cf64b0c37252f2207aa547a13eff2637d4aab7df253a21d900b6290", "fetched_at": "2026-08-29T09:52:19.768539+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/spoolbuddy.html"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.768771+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.768771+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:36:43.375118+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f26388898aed839a72a048e96bf11428509164fea94940994b40011968a169d9", "fetched_at": "2026-08-28T04:07:25.768771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/maziggy/bambuddy"}, {"content_hash": "4f8af8b64e62784ae7edef30e8b6e3cebea3a91f5aa28a96c858f8bf53f6e52c", "fetched_at": "2026-08-29T09:52:19.751482+00:00", "kind": "homepage", "missing": false, "url": "http://bambuddy.cool/"}, {"content_hash": "ae00d3540910ad4eef4c085fd048a4f79cd60b55bd3b212e23123cc58e268f28", "fetched_at": "2026-08-29T09:52:19.760770+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/features.html"}, {"content_hash": "b15d3b8db370a1c9668dfd6af5fe7bf06358234fd7f9caf60fe7e7db28ba5a6e", "fetched_at": "2026-08-29T09:52:19.764895+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/installation.html"}, {"content_hash": "1146d27c621a557be8cc3183f35e90f81ca0a54b1ef198830c63b3e5cc1d0932", "fetched_at": "2026-08-29T09:52:19.766831+00:00", "kind": "site_page", "missing": false, "url": "http://wiki.bambuddy.cool"}, {"content_hash": "38bc25262cf64b0c37252f2207aa547a13eff2637d4aab7df253a21d900b6290", "fetched_at": "2026-08-29T09:52:19.768539+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/spoolbuddy.html"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:36:43.375118+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f26388898aed839a72a048e96bf11428509164fea94940994b40011968a169d9", "fetched_at": "2026-08-28T04:07:25.768771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/maziggy/bambuddy"}, {"content_hash": "4f8af8b64e62784ae7edef30e8b6e3cebea3a91f5aa28a96c858f8bf53f6e52c", "fetched_at": "2026-08-29T09:52:19.751482+00:00", "kind": "homepage", "missing": false, "url": "http://bambuddy.cool/"}, {"content_hash": "ae00d3540910ad4eef4c085fd048a4f79cd60b55bd3b212e23123cc58e268f28", "fetched_at": "2026-08-29T09:52:19.760770+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/features.html"}, {"content_hash": "b15d3b8db370a1c9668dfd6af5fe7bf06358234fd7f9caf60fe7e7db28ba5a6e", "fetched_at": "2026-08-29T09:52:19.764895+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/installation.html"}, {"content_hash": "1146d27c621a557be8cc3183f35e90f81ca0a54b1ef198830c63b3e5cc1d0932", "fetched_at": "2026-08-29T09:52:19.766831+00:00", "kind": "site_page", "missing": false, "url": "http://wiki.bambuddy.cool"}, {"content_hash": "38bc25262cf64b0c37252f2207aa547a13eff2637d4aab7df253a21d900b6290", "fetched_at": "2026-08-29T09:52:19.768539+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/spoolbuddy.html"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:36:43.375118+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f26388898aed839a72a048e96bf11428509164fea94940994b40011968a169d9", "fetched_at": "2026-08-28T04:07:25.768771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/maziggy/bambuddy"}, {"content_hash": "4f8af8b64e62784ae7edef30e8b6e3cebea3a91f5aa28a96c858f8bf53f6e52c", "fetched_at": "2026-08-29T09:52:19.751482+00:00", "kind": "homepage", "missing": false, "url": "http://bambuddy.cool/"}, {"content_hash": "ae00d3540910ad4eef4c085fd048a4f79cd60b55bd3b212e23123cc58e268f28", "fetched_at": "2026-08-29T09:52:19.760770+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/features.html"}, {"content_hash": "b15d3b8db370a1c9668dfd6af5fe7bf06358234fd7f9caf60fe7e7db28ba5a6e", "fetched_at": "2026-08-29T09:52:19.764895+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/installation.html"}, {"content_hash": "1146d27c621a557be8cc3183f35e90f81ca0a54b1ef198830c63b3e5cc1d0932", "fetched_at": "2026-08-29T09:52:19.766831+00:00", "kind": "site_page", "missing": false, "url": "http://wiki.bambuddy.cool"}, {"content_hash": "38bc25262cf64b0c37252f2207aa547a13eff2637d4aab7df253a21d900b6290", "fetched_at": "2026-08-29T09:52:19.768539+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/spoolbuddy.html"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:36:43.375118+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f26388898aed839a72a048e96bf11428509164fea94940994b40011968a169d9", "fetched_at": "2026-08-28T04:07:25.768771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/maziggy/bambuddy"}, {"content_hash": "4f8af8b64e62784ae7edef30e8b6e3cebea3a91f5aa28a96c858f8bf53f6e52c", "fetched_at": "2026-08-29T09:52:19.751482+00:00", "kind": "homepage", "missing": false, "url": "http://bambuddy.cool/"}, {"content_hash": "ae00d3540910ad4eef4c085fd048a4f79cd60b55bd3b212e23123cc58e268f28", "fetched_at": "2026-08-29T09:52:19.760770+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/features.html"}, {"content_hash": "b15d3b8db370a1c9668dfd6af5fe7bf06358234fd7f9caf60fe7e7db28ba5a6e", "fetched_at": "2026-08-29T09:52:19.764895+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/installation.html"}, {"content_hash": "1146d27c621a557be8cc3183f35e90f81ca0a54b1ef198830c63b3e5cc1d0932", "fetched_at": "2026-08-29T09:52:19.766831+00:00", "kind": "site_page", "missing": false, "url": "http://wiki.bambuddy.cool"}, {"content_hash": "38bc25262cf64b0c37252f2207aa547a13eff2637d4aab7df253a21d900b6290", "fetched_at": "2026-08-29T09:52:19.768539+00:00", "kind": "site_page", "missing": false, "url": "https://bambuddy.cool/spoolbuddy.html"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 19, "rhythm": 86}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 278, "days_push": 7, "days_rel": 18, "gap_med": 3, "n_releases_24m": 66}, "score": 78, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}