spoolr / download
v0.4.0 Released May 26, 2026 · release notes →

Connect your printers
to spoolr.io.

Spoolr Connect is the lightweight, open-source agent that runs on your network and bridges your 3D printers to the Spoolr cloud — so you can monitor and control them from anywhere. Outbound-only: no open ports, no port-forwarding, no VPN.

MIT licensed Outbound-only Klipper · Moonraker · Bambu (beta)
MACOS BUILD
macOS · universal (Apple Silicon + Intel)
Spoolr Connect.app · menu-bar agent · ~11 MB
First-launch security prompt is expected. Spoolr is open-source and ad-hoc signed (not notarized — Spoolr has no paid Apple account). Downloading the .zip in a browser quarantines it, so you'll click Open Anyway in System Settings › Privacy & Security. The one-line Terminal install (right) avoids the quarantine entirely. Per-OS steps →
install · macOS / Linux / Raspberry Pi open source
$curl -fsSL raw.githubusercontent.com/kurenn/printer-connector/main/install-macos.sh | bash
▸ detected: darwin/arm64 (macOS 14.5)
▸ fetching Spoolr Connect v0.4.0…[ok]
▸ installing Spoolr Connect.app → /Applications[ok]
▸ launching menu-bar agent[ok]
# scanning your LAN for printers…
moonraker · voron-01.lan:7125
bambu · 192.168.1.84 (X1C — LAN mode)
# paste your pairing token from spoolr.io to finish
paired with workspace "Dotworks" · 2 printers online
$
≈ 10s on a Raspberry Pi 4

Three steps from sign-in to live fleet.

Pairing happens once per machine that runs Connect. The dashboard issues a single-use token; Connect trades it for a per-installation secret over an outbound TLS connection — your printer never accepts inbound traffic.

01

Get a pairing token

Sign in to spoolr.io and add a connector. You'll get a single-use token that expires in 10 minutes.

spr_4kZ9qT…r7Qz2Xv
SINGLE-USE · EXPIRES IN 10:00
02

Install Connect

On a machine that sits on the same network as your printers — your laptop, a Raspberry Pi, the Klipper host, or the K1's onboard Linux. One binary, no dependencies.

macOS · Linux · Pi · K1 · Windows
03

Paste the token

Drop the token into Connect's menu-bar app or the installer prompt (or run printer-connector register --token <token>). Your printers light up in the dashboard within seconds.

OUTBOUND TLS · HANDSHAKE

Pick your platform.

Three supported hosts today. All builds come from the same Go source — verify by cloning github.com/kurenn/printer-connector and running go build ./cmd/connector if you'd rather not trust our binaries.

Linux · Raspberry Pi · Creality K1
arm64 · armv7 · x86_64
One-line installer that picks the right binary, installs it, and runs it as a background service (systemd on Linux / Pi, the K1's init system on Creality firmware).
Linux / Raspberry Pi
$ wget -qO- raw.githubusercontent.com/kurenn/printer-connector/main/install-klipper.sh | sudo bash
Creality K1 / K1 Max
$ wget -qO- raw.githubusercontent.com/kurenn/printer-connector/main/install-k1.sh | sh
# ssh as root@<printer-ip> first
Klipper / Moonraker required Manual install ›
NEW · BETA
Windows
x64 · GUI installer + Windows Service
A small GUI installer sets up Connect as a background Windows Service, scans for printers, and prompts for your pairing token. Newly shipped and still being validated across the printer matrix — tell us what works.
download
Not signed with a paid Authenticode cert. SmartScreen will warn on first run — click More info → Run anyway. Code-signing is on the roadmap.
Windows 10 / 11 · x64 Checksums ›

What Connect talks to.

Connect speaks each printer's native protocol — Moonraker's HTTP API, Bambu's MQTT + FTPS in LAN mode — so you don't run a separate plugin or expose anything to the internet. Auto-discovery sweeps your LAN on first launch.

FULLY SUPPORTED

Klipper · Moonraker

Raspberry Pi · BTT Pad · mini PC · Creality K1 / K1 Max
The primary path. Real-time telemetry, remote control, MJPEG webcam, and file management all work out of the box.
Moonraker HTTP WebSocket Auto-discover
BETA

Bambu Lab — LAN mode

X1 / X1 Carbon · P1S / P1P · A1 / A1 mini
Supported, but not yet validated on every real Bambu in the wild. If you run one, please pair it and tell us what breaks — we triage Bambu reports first.
MQTT FTPS LAN-only
COMING SOON

PrusaLink · Elegoo SDCP

Prusa MK4 / XL · Elegoo Centauri · Anycubic Kobra (SDCP)
On the roadmap, not yet available. Watch the changelog to know when these go live.
Roadmap

Everything you'd want to do remotely.

Connect mirrors the controls your printer already offers — nothing more. If a printer doesn't expose pause-mid-print, neither will the dashboard. Capabilities listed below are live today.

Real-time monitoring

Printer state, job progress, layer count, and hotend / bed / chamber temperatures stream to the dashboard.

TELEMETRY ~30s · HEARTBEAT ~10s

Remote print control

Pause, resume, cancel, home, and start prints. Only the controls a given printer actually exposes are shown.

CAPABILITY-NEGOTIATED

Live webcam

Smooth MJPEG stream when you open a printer, plus on-demand snapshots for notifications and timelapses.

MJPEG · JPEG SNAPSHOT

Live G-code view

The running print's G-code streamed to the dashboard's in-browser viewer, with the current layer highlighted.

WEBGL · IN-BROWSER

File management

List, upload, delete, and start G-code files. Drag-and-drop from the dashboard or push via the API.

LIST · UPLOAD · DELETE · START

Auto-discovery

On first launch Connect sweeps your subnet for Moonraker and Bambu printers and presents the list — one click to adopt.

LAN SWEEP · SSDP

Config backups

Snapshot a printer's config and database from the dashboard or on a schedule — restorable to the same printer when something goes sideways.

ON-DEMAND · SCHEDULED

Job history

Every print's outcome, duration, and filament usage feeds the fleet analytics view — success rate, utilization, throughput.

FUELS FLEET ANALYTICS

Simple updates

Re-run the one-line installer (or update.sh) to move to the latest release. No auto-update daemon — you decide when it changes.

MANUAL · update.sh

Safe to run at home.

Connect was designed for makers and small farms who don't want to think about networking. The model is deliberately one-directional: your printer never accepts a connection from the internet, and Spoolr's cloud only ever talks back over a channel you opened.

What we don't do

No open ports on your network. No port-forwarding. No VPN. No inbound access of any kind. Connect only ever initiates connections; if your router blocks inbound, you're fine.

Outbound TLS, port 443
Same channel a browser uses. Nothing else to configure.
Single-use pairing tokens
A leaked token expires in 10 minutes or after one successful pair, whichever comes first.
Per-installation secret
Stored on disk on the machine running Connect. Remove the connector from the dashboard to revoke it.

Open by default

MIT licensed. Read every line of the agent that's sitting on your network. Build it yourself if you don't want to trust our binaries — the same go build our CI runs.

Source on GitHub
github.com/kurenn/printer-connector — issues, PRs, releases.
Build from source
Go 1.22+ and go build ./cmd/connector. The CI workflow (.github/workflows/ci.yml) is the same gofmt → vet → build → test we ship from.
Runs entirely on your hardware
No cloud component on the printer side. Remove Connect any time and the printer keeps printing.

Tiny by design.

Connect is a single Go binary. No interpreter, no runtime, no surprise dependencies. It happily shares a Pi with Klipper, Moonraker, and a webcam.

CPU
Anything · 1 core
x86_64, ARM64 or ARMv7. A single core is enough alongside Klipper.
Memory
~64 MB resident
A bit more when relaying a webcam stream to the cloud.
Network
Outbound 443 only
TLS to www.spoolr.io. No inbound rules required.
Disk
~50 MB
Binary, config, and rotated logs. G-code cache is configurable.

What's new.

Tagging a vX.Y.Z release publishes the cross-compiled binaries and the macOS app. The full history lives in CHANGELOG.md.

v0.4.0latest
May 26, 2026

Added

+
macOS app distribution ($0, no Apple account). Universal, ad-hoc-signed Spoolr Connect.app + a one-line install-macos.sh and a published SpoolrConnect-macos.zip.
+
Project guide and substantially expanded Go + Swift test coverage.

Fixed

Menu-bar app now persists its pairing across restarts — no more re-pairing.
Network-scan "Pair" runs the real pairing flow instead of a mock; a rescan hides already-linked printers.

Security

!
Stopped committing a dev config that held a secret; gitignored real configs and scrubbed LAN IPs from examples.
v0.1.0 – v0.3.0
Dec 2025 – May 2026

Earlier

+
v0.1.0 — Creality K1 / K1 Max support.
+
v0.2.0 – v0.3.0 — LAN auto-discovery, Bambu Lab (beta) over MQTT + FTPS, and the install-from-releases flow.
~
Heartbeat cadence tightened to ~10s so "offline" shows within seconds; macOS app shipped universal.

Full history

Open source · MIT
Read the code, file issues, send PRs. Bambu validation reports and Windows install logs are especially appreciated right now.