-
-
Notifications
You must be signed in to change notification settings - Fork 0
Plugins
Plugins are self-contained packages that add capabilities to your printer — camera streaming, filament tracking, remote screen, and more. Each plugin installs into a dedicated directory on the printer and integrates with Klipper, Moonraker, and the web interface without touching the factory firmware.
The plugin catalog is the main view in the app. When you have at least one printer configured, it shows all available plugins. You can:
- Search by name, identifier, or description
- Filter by category — Camera, Filament, Screen; or view all grouped by section
- Filter by trust tier — Project, Community, or any
- Switch between grid and list view using the layout toggle in the toolbar
- Adjust density — Compact, Comfortable, or Spacious (set in Settings → General)
Click any plugin card to open its detail panel, which shows the full description, required capabilities, configuration fields, dependencies, and the files and endpoints it creates on the printer.
Plugin cards show a channel pill for non-stable releases (RC, Testing, Experiment). Which channels appear in the catalog is controlled in Settings → Repositories → Release Channels.
All plugins listed here are confirmed working on the Snapmaker U1.
Hardware-accelerated camera streaming for MIPI and USB cameras. Taps the SoC's video pipeline instead of CPU-encoding every frame, delivering smooth MJPEG and WebRTC streams even with two cameras attached.
- Category: Camera
-
Endpoints:
/webcam/,/webcam2/,/webrtc/ - Publisher: Bespok3d (Project tier)
Mirrors the printer's on-device touchscreen to a browser tab using framebuffer capture, with full touch control — tap, drag, and type from your phone, tablet, or desktop. Useful for monitoring and operating the printer remotely without standing at the machine.
- Category: Screen
-
Endpoints:
/screen/ - Publisher: Bespok3d (Project tier)
- Installs as a PWA and updates itself. After the plugin is updated, the open page reloads on its own — no cache-clearing or hard refresh needed.
- Self-healing screen freezes. The printer's stock UI can occasionally lock up on its own (a firmware quirk that also affects other custom firmwares for this printer), most often when opening a very large job/file list. Remote Screen detects this and restarts the UI automatically within a second or two — no reboot required. You may see the screen blink briefly as it recovers.
Reads OpenSpool-encoded NTAG215 RFID cards from the U1's built-in SPI reader. On every card tap, it writes the filament metadata to a shared file that other plugins and Moonraker components can read.
- Category: Filament
-
Writes:
/oem/printer_data/config/bespok3d/data/rfid_data.json - Compatible with: OpenSpool-encoded NTAG215 tags
- Publisher: Bespok3d (Project tier)
Connects your printer to a Spoolman spool-tracking server. Reads the RFID data file on startup and on every card tap, keeping the active spool and length-used figures in sync automatically.
- Category: Filament
- Requires: RFID Spool Reader (for automatic spool detection)
- Configuration: Spoolman server address (IP or hostname)
- Publisher: Bespok3d (Project tier)
With a managed printer selected, open any plugin's detail panel and press Install. The app transfers the plugin package to the printer over the daemon connection and shows live progress. When the installation finishes, the plugin appears in your installed list immediately — no app restart or page refresh needed.
To remove a plugin, open its panel and press Uninstall.
Some plugins require a configuration field before install (for example, the Spoolman Bridge asks for your Spoolman server address). The field appears in the panel when the printer is managed. The value is normalised automatically — you can paste a full URL or just the hostname.
Once a plugin with browser-accessible endpoints is installed, the printer selector in the header gains a › zone on the right side of the managed printer row. Hovering it opens a flyout listing every openable endpoint — Fluidd, Moonraker API, camera streams, and any endpoints declared by installed plugins. Clicking an entry opens it in your default browser.
You do not have to wait for a plugin to be published to try it. You can add a .b3 package straight from your computer.
-
Drag a
.b3file onto the Bespok3d window, or double-click a.b3in Finder or Explorer. Bespok3d validates it, adds it to your local library, and (if a printer is selected) asks whether to install it right away. - The file is checked only for the essentials: it has to be installable and have a clear identity (name and version). If something is wrong, you get a plain-language error explaining what; one bad file never blocks the others in the same drop.
- A sideloaded plugin appears next to any bundled or online copy of the same plugin. It is badged local so you can tell yours apart.
- Dropping a newer build replaces your previous local copy — there is only ever one local copy of a given plugin.
When a plugin is available from more than one place (your local copy, the bundled copy, an online list), the detail panel gains a Versions tab listing each one with its source and version. Pressing Install opens that tab first so you pick the exact version you want, then installs it. You can switch an already-installed plugin to a different version the same way.
Open the Versions tab and use the trash button on your local copy.
- If it is not on any printer, it is simply removed from your library.
- If it is installed on a printer, Bespok3d explains your choices before doing anything: remove it from Bespok3d and from the printer, or keep it on the printer. If you keep it, you are told what that means — you can switch it to a bundled or online version if one exists, otherwise it can only be uninstalled later.
- A plugin that stays on a printer after its only source is gone still shows in the store as "installed, no source", so you can always uninstall it from there.
Plugins survive Snapmaker OTA firmware updates. All plugin files live in /userdata/bespok3d/ — the persistent partition that OTA never wipes. What OTA does wipe is /home/lava/ (Klipper source, Moonraker source) and the overlay write layer.
Bespok3d detects that the daemon was lost and shows a recovery banner the next time you open the app. Recovery is one click. After re-enrollment, all installed plugins are re-applied automatically in dependency order. See Printers — OTA recovery for the full flow.
The daemon itself is stored in /userdata/bespok3d/ and survives OTA. Recovery re-installs it as part of re-enrollment.
Some plugins contain patches that must match the exact content of the file they target. When a firmware update changes that file, the patch context lines no longer match.
Plugins handle this through conflict_resolutions in their manifest: a condition (e.g. fw_max: "1.4.0.244") selects an alternate patch file for printers running an older firmware version. The daemon reports its firmware version via the capabilities endpoint, and the app selects the right patch automatically at install time.
- USB airgap install: drop a signed
.b3pbundle on a USB stick; auto-installs on the printer - Third-party plugin sources: subscribe to community-curated catalogs
- A Create tool to author your own plugins in-app (it will use the same local library as sideloading)
Bespok3d - open source under AGPL-3.0. Look mom, custom printer and no SSH.
Get started
Reference
Advanced