Filament inventory and print cost, for 3D printing.
Add a spool, and the app tracks what is left as you use it. There are three ways to record usage, and you can mix them freely:
Share a sliced file. From your slicer, share the .gcode, .bgcode or .3mf file into Filament Log. It reads how much filament the print used and deducts it. This works with every printer and needs no setup at all.
Connect a Klipper printer. Under Settings › Printers, add the address of the machine running Moonraker. Finished prints then deduct themselves with no action from you.
Weigh the spool. Put it on a kitchen scale and enter the gross weight. The app works backwards to what is left, which corrects any drift.
Weigh to correct needs the empty spool weight — the tare. Without it, a gross reading cannot be turned into a filament weight, so the app asks for the tare first rather than guessing.
The tare is usually printed on the spool itself, or listed on the vendor's product page. Common values are around 200 g for plastic spools and 130–250 g for cardboard. Once entered it is remembered for that spool, and for other spools of the same filament.
Cura writes only the length of filament used, not the weight. The app converts length to grams using the spool's diameter and density, which is accurate but depends on those two values being right. PrusaSlicer, OrcaSlicer and Bambu Studio write the weight directly, so those imports are not estimates.
Moonraker reports what the printer actually extruded, including purge, priming and any filament used before a failure. The slicer reports what it planned. The printer's figure is the true one.
Small errors accumulate — purge towers, retraction, a spool that was not quite full when new. Weigh the spool and the app resets to the measured truth.
Klipper printers running Moonraker are supported. OctoPrint, PrusaLink and Bambu Lab in LAN mode are listed in the app as not yet supported, and sharing a sliced file works with all of them in the meantime.
When you add a printer, the app starts from that moment. A machine with months of history will not retroactively empty every spool.
If a print finishes and no spool is set as loaded on that printer — or the run ended early, or automatic deduction is off — the app holds it under Needs a decision instead of guessing which spool it came off. Pick a spool and it is logged. Nothing is lost, and a held print survives closing the app.
Then the app deliberately does not deduct. Moonraker's own Spoolman component is already doing it, and deducting here as well would count every print twice. The printer's screen in the app says so when it detects this.
If you run Spoolman, Filament Log syncs with it two ways: your spools, filaments and vendors stay in step, and usage recorded in the app is pushed to the server.
Version 0.18.0 or later is required — earlier versions lack the endpoints the app relies on. Enter the address exactly as you reach it on your network, including the port, which is 7912 by default.
Changes made while the server is unreachable are queued on the device and sent when it comes back, so working offline in a garage with no signal is fine.
Filament Log reads and writes open-format OpenSpool tags, so a tag written here can be read by other tools that use the same format.
Use NTAG215 or NTAG216 tags. NTAG213 holds 144 bytes, which is not enough for the payload, and the app will say so rather than writing a truncated tag.
Low-stock alerts are scheduled on your device. Permission is asked for the first time a spool actually runs low, not when you open Settings — so if you have never seen the prompt, no spool has crossed its threshold yet.
Each spool can override the default threshold in its own settings.
Spools, prints and history sync through your own iCloud account, so signing in to the same Apple Account brings everything across. Printers are deliberately not synced: they hold a network address and a key that belong to one device.
Settings › Restore purchases. Purchases are tied to your Apple Account, so there is nothing to pay again on a new device.
It is still there. Deleting a spool does not delete the prints made from it — each print keeps the name and material of what it was made from, and the spool shows as "since deleted".
It should not, and does not. Spools of the same product share one filament record so your Spoolman library does not fill with duplicates, but editing product details on one spool gives that spool its own copy instead of changing the others.
Settings › Delete all local data removes every spool, print and log on the device. Anything on your own Spoolman server is left alone — delete it there if you want it gone.
Email filamentlog@frekvens.ai. Include your iOS version and, if it is about a specific print or spool, what you expected the number to be — it makes the answer much faster.