skills$openclaw/snapmaker
lucakaufmann28

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".

28 stars8.2k forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026devops

Skill Snapshot

namesnapmaker
descriptionMonitor 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.
ownerlucakaufmann
repositorylucakaufmann/snapmaker
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @lucakaufmann/snapmaker
last updatedFeb 7, 2026

Maintainer

lucakaufmann

lucakaufmann

Maintains snapmaker in the OpenClaw Skills directory.

View GitHub profile
File Explorer
4 files
.
scripts
snapmaker.py
15.1 KB
_meta.json
279 B
SKILL.md
3.2 KB
SKILL.md

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:

  1. SNAPMAKER_IP environment variable (highest priority)
  2. ~/clawd/config/snapmaker.json
  3. ~/.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.

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:

EndpointDescription
/server/infoServer status
/printer/infoPrinter info
/printer/objects/query?heater_bed&extruder&print_statsStatus
/printer/print/pausePause print
/printer/print/resumeResume print
/printer/print/cancelCancel print

Status Response Fields

  • print_stats.state: standby, printing, paused, complete, error
  • print_stats.filename: Current file
  • print_stats.print_duration: Seconds elapsed
  • virtual_sdcard.progress: 0.0 to 1.0
  • heater_bed.temperature / heater_bed.target: Bed temps
  • extruder.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):

FieldDescription
VENDOR"Snapmaker" or "NONE" if no RFID
MANUFACTURERe.g. "Polymaker"
MAIN_TYPEMaterial: "PLA", "PETG", "ABS", etc.
SUB_TYPEVariant: "SnapSpeed", "generic", etc.
RGB_1Color as decimal int (convert: #${(rgb>>16&0xFF).toString(16)}...)
ARGB_COLORColor with alpha (decimal)
WEIGHTSpool weight in grams
HOTEND_MIN_TEMP / HOTEND_MAX_TEMPNozzle temp range
BED_TEMPRecommended bed temp
OFFICIALtrue if official Snapmaker filament

filament_motion_sensor e{0-3}_filament

FieldDescription
filament_detectedBoolean - filament present in slot
enabledBoolean - sensor active

Note: Slots can have filament_detected: true but VENDOR: NONE — this means third-party filament without RFID tag.

README.md

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.