Tutorials
Spoolman without the server: what to use if you don't want to self-host
October 10, 2026 · Kartzy Studio · 1 min read

Spoolman is free and good. It also needs a machine that stays on. Here's who should keep it, where it stops, and how to bring your spools with you.
The short version
- If you like running your own server, keep Spoolman. It's free, open source, and its printer integrations are excellent, especially with Klipper.
- If you don't want to keep a box running, you need something hosted. That's the whole reason this page exists.
- Spoolman tracks grams. It doesn't tell you what a finished item cost. The sellers I talked to keep that in a spreadsheet next to it.
- Your data isn't stuck. A Spoolman export imports directly.
What Spoolman does well
I'm going to be fair here, because it earned it.
- It's free and open source.
- It has a real API, and other tools build on it.
- Your data stays on your own machine.
It's a good tool. It's clean, and it keeps track of your spools well. The trouble starts when you're away from home: you're at a supplier's sale wondering whether you already own that color, and the old laptop that runs Spoolman is sitting in the basement.
Who should keep using it
- You already run a home server or a Pi and you enjoy it.
- Your printers run Klipper and the automatic deduction already works for you.
- You're one person and nobody else needs to log in.
If that's you, you don't need me.
Where it stops
It has to live somewhere. Spoolman is software you install and keep running. If that machine is off, or you're away from your network without a VPN, you can't check what's on the shelf.
There are no user accounts. Spoolman's own security page says it has no authentication: anyone who can reach it on your network can read and change your whole inventory. That's a deliberate choice for a tool meant to sit on a trusted home network. It also means you can't give a helper their own login, and if you want to reach it from outside, the docs tell you to put it behind a reverse proxy with its own login, never to open a port straight to it.
It knows grams, not money. An operator running ten Klipper printers on Spoolman told me where his costs live:
"I use a dedicated spreadsheet with a formula that factors in Amortization, Electricity, Filament, Materials, Labor, failure rate (10%), and Markup."
That's a real gap. The filament is tracked in one place, the cost is worked out in another, and nothing joins them.
What I built instead
I run a print farm and I built the tool I wanted. It's hosted, so there's nothing to install, and it works on a phone next to the printer.
- Every spool tracked, with QR labels and a location down to the shelf.
- Log a print and the filament comes off the loaded spools.
- Each logged print shows what it cost: filament, electricity, machine wear, labour.
What it doesn't do: it's not open source, and you can't self-host it. It doesn't talk to your printers yet, so for now you log a print yourself instead of Klipper deducting it for you. And you can't change the QR label layout yet.
Bringing your Spoolman data over
It takes four steps, and it works with any spreadsheet of spools, not only Spoolman's. A Spoolman export is recognized and its columns are matched for you; with any other file you match the columns by hand.
First, get the CSV out of Spoolman
Spoolman exports through its API, so it's one command. You only need the spools export: Spoolman puts each spool's filament and brand in the same file.
Run this on the computer Spoolman runs on. If you're on a different device, replace
localhost with the address you open Spoolman at, for example 192.168.1.50. 7912 is Spoolman's default port; use yours if you changed it.Mac or Linux (Terminal):
curl -o spools.csv "http://localhost:7912/api/v1/export/spools?fmt=csv"Windows (PowerShell or Command Prompt):
curl.exe -o spools.csv "http://localhost:7912/api/v1/export/spools?fmt=csv"On Windows, type
curl.exe, not curl: in PowerShell, plain curl runs a different command. Either way, you'll find spools.csv in the folder the terminal was open in.Archived spools are left out by default. To include them, add
&allow_archived=true to the end of the address, inside the quotes.No terminal? Paste the same address into your browser on a device on your home network. The browser downloads
spools.csv for you.Then, import it
You'll find the import under Filament → Import spools.

1. File. Drag and drop your CSV. Nothing is uploaded yet: the file is read in your browser, and nothing is written to your inventory until the last screen.

Name where the spools came from, for example "Spoolman". Every import is filed under its source, so a spool ID from Spoolman can't clash with one from another file, and importing the same file again skips the spools you already have.

2. Columns. Check the matches and map any column the import couldn't match on its own. A preview on the right shows exactly how a row will come in.

3. Rows. Check each spool. Untick any you don't want, add empty-reel weights the file doesn't have, and answer the color questions when a color could match more than one catalog entry. Anything you skip comes in as a custom filament.

4. Confirm. Check the totals (spools, kilograms and value) and import.

Reels, locations and custom filaments come across with the spools. A row that can't be imported isn't dropped silently: it's listed, and you can download it with the reason, fix it and import it again. In my test, 20 rows became 19 spools, and the one left out needed a fix in the file.


From a Spoolman export, the whole thing took me under five minutes.
We're building software for people who sell 3D prints. Join the waitlist and you'll be first in.
The cost calculator is live and free, no signup.
K
Written by
Kartzy Studio

