MCPcopy Index your code
hub / github.com/Donkie/Spoolman

github.com/Donkie/Spoolman @v0.23.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.23.1 ↗ · + Follow
774 symbols 2,336 edges 155 files 305 documented · 39%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Icon of a filament spool

Keep track of your inventory of 3D-printer filament spools.

Spoolman is a self-hosted web service designed to help you efficiently manage your 3D printer filament spools and monitor their usage. It acts as a centralized database that seamlessly integrates with popular 3D printing software like OctoPrint and Klipper/Moonraker. When connected, it automatically updates spool weights as printing progresses, giving you real-time insights into filament usage.

Static Badge GitHub Release

Features

  • Filament Management: Keep comprehensive records of filament types, manufacturers, and individual spools.
  • API Integration: The REST API allows easy integration with other software, facilitating automated workflows and data exchange.
  • Real-Time Updates: Stay informed with live spool updates through Websockets, providing immediate feedback during printing operations.
  • Central Filament Database: A community-supported database of manufacturers and filaments simplify adding new spools to your inventory. Contribute by heading to SpoolmanDB.
  • Web-Based Client: Spoolman includes a built-in web client that lets you manage data effortlessly:
  • View, create, edit, and delete filament data.
  • Add custom fields to tailor information to your specific needs.
  • Print labels with QR codes for easy spool identification and tracking.
  • Contribute to its translation into 18 languages via Weblate.
  • Database Support: SQLite, PostgreSQL, MySQL, and CockroachDB.
  • Multi-Printer Management: Handles spool updates from several printers simultaneously.
  • Advanced Monitoring: Integrate with Prometheus for detailed historical analysis of filament usage, helping you track and optimize your printing processes. See the Wiki for instructions on how to set it up.

Spoolman integrates with: * Moonraker and most front-ends (Fluidd, KlipperScreen, Mainsail, ...) * OctoPrint * OctoEverywhere * Home Assistant

Web client preview: image

Installation

Please see the Installation page on the Wiki for details how to install Spoolman.

Extension points exported contracts — how you extend this code

Event (Interface)
* A spoolman websocket event.
client/src/components/liveProvider.ts
ResourcePageProps (Interface)
(no doc)
client/src/App.tsx
LoadablePageProps (Interface)
(no doc)
client/src/App.tsx
Language (Interface)
(no doc)
client/src/i18n.ts
Entity (Interface)
(no doc)
client/src/components/column.tsx

Core symbols most depended-on inside this repo

getAPIURL
called by 27
client/src/utils/url.ts
from_db
called by 20
spoolman/api/v1/models.py
useGetFields
called by 16
client/src/utils/queryFields.ts
NumberColumn
called by 13
client/src/components/column.tsx
connect
called by 13
spoolman/database/database.py
get_extra_fields
called by 12
spoolman/extra_fields.py
Column
called by 11
client/src/components/column.tsx
disconnect
called by 9
spoolman/ws.py

Shape

Function 573
Class 61
Interface 52
Route 47
Method 34
Enum 7

Languages

Python64%
TypeScript36%

Modules by API surface

tests_integration/tests/filament/test_find.py30 symbols
tests_integration/tests/spool/test_find.py29 symbols
spoolman/env.py28 symbols
tests_integration/tests/conftest.py23 symbols
spoolman/api/v1/spool.py23 symbols
spoolman/externaldb.py22 symbols
spoolman/api/v1/models.py21 symbols
tests_integration/tests/fields/test_create.py20 symbols
spoolman/api/v1/filament.py20 symbols
client/src/components/column.tsx20 symbols
spoolman/api/v1/vendor.py17 symbols
spoolman/database/spool.py16 symbols

For agents

$ claude mcp add Spoolman \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page