Docs
Pages

Printers

Spoolman

Reads your filament inventory from a Spoolman server (materials, colors, remaining grams) and can subtract used filament from a spool.

For users

On the server

  1. Run Spoolman (Docker or a standalone install) on a machine on your network. It listens on port 7912 by default.
  2. Add your spools in its web page.
  3. Note the server address, for example http://192.168.1.50:7912.

In SlicerX

Add Spoolman under service plugins and enter the address. It must start with http:// and point at a machine on your local network; https:// addresses are refused for now.

What SlicerX does with it: lists spools by material, shows remaining weight, and lets you (or Pilot, after you approve) record filament used by a print. Reading needs no approval. Subtracting filament asks first, and each approval covers one spool and one amount.

Common problems

Message or symptom Cause and fix
"is unreachable" Wrong address or port, or the server is off.
"URLs must start with http://" Use the plain http:// address of a server on your network.
A spool is missing Archived spools are hidden unless requested.
The approval for recording use is refused The approval covers exactly one spool and gram amount; ask again with the amount you want.

Untested on hardware

Checked against a simulator of the Spoolman API, not a server. First thing to check: the use endpoint on your Spoolman version.

For integrators

Plugin id spoolman (kind inventory). Tools: spoolman.list_spools (read; material, includeArchived), spoolman.get_spool (read; id), spoolman.record_usage (permission profile; id, grams; needs a plugin.call approval bound to {pluginId, tool, input} with the tool name record_usage). Network: lan:7912, lan:8000.

Spools are normalized from Spoolman's shape to {id, material, vendor, name, color, remainingG, initialG} with color as #rrggbb. Filament slots in printer status can carry a spoolmanId so a slot links to a spool.

Requests: GET /api/v1/spool?allow_archived=false, GET /api/v1/spool/{id} and PUT /api/v1/spool/{id}/use with {"use_weight": grams}. Nothing is cached and there is no rate limit beyond your server's.

Testing

tests/services.rs runs the plugin against a Spoolman fake. @slicerx/fleet-sim serves the same tools from demo-fleet.json (nine spools) through callTool('spoolman', ...).

Sources

Spoolman: https://donkie.github.io/Spoolman/ (OpenAPI at /api/v1/docs on your server).