28★by lucakaufmann
snapmaker – OpenClaw Skill
snapmaker is an OpenClaw Skills integration for devops workflows. Monitor and control Snapmaker 3D printers (U1 with Moonraker/Klipper). Use when checking print status, temperatures, progress, or controlling prints (pause/resume/cancel). Triggers on "printer", "3D print", "Snapmaker", "print status", "nozzle temp", "bed temp".
Skill Snapshot
| name | snapmaker |
| description | Monitor and control Snapmaker 3D printers (U1 with Moonraker/Klipper). Use when checking print status, temperatures, progress, or controlling prints (pause/resume/cancel). Triggers on "printer", "3D print", "Snapmaker", "print status", "nozzle temp", "bed temp". OpenClaw Skills integration. |
| owner | lucakaufmann |
| repository | lucakaufmann/snapmaker |
| language | Markdown |
| license | MIT |
| topics | |
| security | L1 |
| install | openclaw add @lucakaufmann/snapmaker |
| last updated | Feb 7, 2026 |
Maintainer

name: snapmaker version: 1.0.0 description: Monitor and control Snapmaker 3D printers (U1 with Moonraker/Klipper). Use when checking print status, temperatures, progress, or controlling prints (pause/resume/cancel). Triggers on "printer", "3D print", "Snapmaker", "print status", "nozzle temp", "bed temp". license: MIT
Snapmaker Printer Control
Control Snapmaker U1 printers via the Moonraker API.
Configuration
Create a config file at ~/clawd/config/snapmaker.json:
{
"ip": "192.168.x.x",
"port": 80
}
Or use environment variables:
export SNAPMAKER_IP=192.168.x.x
export SNAPMAKER_PORT=80 # optional, defaults to 80
Config search order:
SNAPMAKER_IPenvironment variable (highest priority)~/clawd/config/snapmaker.json~/.config/clawdbot/snapmaker.json
Quick Commands
Check Status
scripts/snapmaker.py status
Filament Info
scripts/snapmaker.py filament
Shows RFID tag data for each slot: material type, color (hex), temp ranges, and sensor status.
Monitor Print (Live)
scripts/snapmaker.py monitor
Print Control
scripts/snapmaker.py pause
scripts/snapmaker.py resume
scripts/snapmaker.py cancel
Temperature
scripts/snapmaker.py temps
API Reference
The U1 uses Moonraker REST API on port 80:
| Endpoint | Description |
|---|---|
/server/info | Server status |
/printer/info | Printer info |
/printer/objects/query?heater_bed&extruder&print_stats | Status |
/printer/print/pause | Pause print |
/printer/print/resume | Resume print |
/printer/print/cancel | Cancel print |
Status Response Fields
print_stats.state:standby,printing,paused,complete,errorprint_stats.filename: Current fileprint_stats.print_duration: Seconds elapsedvirtual_sdcard.progress: 0.0 to 1.0heater_bed.temperature/heater_bed.target: Bed tempsextruder.temperature/extruder.target: Nozzle temps
Filament & Sensor Data
Query filament RFID and sensors:
/printer/objects/query?filament_detect&filament_motion_sensor%20e0_filament&filament_motion_sensor%20e1_filament&filament_motion_sensor%20e2_filament&filament_motion_sensor%20e3_filament
filament_detect.info[]
Array of 4 slots with RFID tag data (or defaults if no tag):
| Field | Description |
|---|---|
VENDOR | "Snapmaker" or "NONE" if no RFID |
MANUFACTURER | e.g. "Polymaker" |
MAIN_TYPE | Material: "PLA", "PETG", "ABS", etc. |
SUB_TYPE | Variant: "SnapSpeed", "generic", etc. |
RGB_1 | Color as decimal int (convert: #${(rgb>>16&0xFF).toString(16)}...) |
ARGB_COLOR | Color with alpha (decimal) |
WEIGHT | Spool weight in grams |
HOTEND_MIN_TEMP / HOTEND_MAX_TEMP | Nozzle temp range |
BED_TEMP | Recommended bed temp |
OFFICIAL | true if official Snapmaker filament |
filament_motion_sensor e{0-3}_filament
| Field | Description |
|---|---|
filament_detected | Boolean - filament present in slot |
enabled | Boolean - sensor active |
Note: Slots can have filament_detected: true but VENDOR: NONE — this means third-party filament without RFID tag.
No README available.
Permissions & Security
Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.
Requirements
- OpenClaw CLI installed and configured.
- Language: Markdown
- License: MIT
- Topics:
Configuration
Create a config file at `~/clawd/config/snapmaker.json`: ```json { "ip": "192.168.x.x", "port": 80 } ``` Or use environment variables: ```bash export SNAPMAKER_IP=192.168.x.x export SNAPMAKER_PORT=80 # optional, defaults to 80 ``` **Config search order:** 1. `SNAPMAKER_IP` environment variable (highest priority) 2. `~/clawd/config/snapmaker.json` 3. `~/.config/clawdbot/snapmaker.json`
FAQ
How do I install snapmaker?
Run openclaw add @lucakaufmann/snapmaker in your terminal. This installs snapmaker into your OpenClaw Skills catalog.
Does this skill run locally or in the cloud?
OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.
Where can I verify the source code?
The source repository is available at https://github.com/openclaw/skills/tree/main/skills/lucakaufmann/snapmaker. Review commits and README documentation before installing.
