Snapmaker U1

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

MIT-0 · Free to use, modify, and redistribute. No attribution required.
1 · 1.7k · 4 current installs · 4 all-time installs
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
The name/description (Snapmaker U1 control via Moonraker) matches the included Python CLI and the SKILL.md. There are no unexpected cloud credentials, unrelated binaries, or requests for unrelated services.
Instruction Scope
Runtime instructions and the script confine activity to reading the config at ~/clawd/config/snapmaker.json or ~/.config/clawdbot/snapmaker.json or SNAPMAKER_IP/SNAPMAKER_PORT env vars and then making HTTP calls to the configured printer IP/port. Note: the skill will read files from the user's home directory (the config paths) — this is expected for configuration but worth awareness.
Install Mechanism
No install spec or external downloads; the skill is instruction + a contained Python script, so nothing is fetched or written during install.
Credentials
No required environment variables or credentials are declared. The optional SNAPMAKER_IP and SNAPMAKER_PORT are proportional and documented in SKILL.md.
Persistence & Privilege
always is false and the skill is user-invocable. It does not request persistent elevated privileges or modify other skills/configs.
Assessment
This skill appears to do what it says: it will read a small JSON config from your home directory or honor SNAPMAKER_IP/SNAPMAKER_PORT and then open a TCP connection to that IP/port to talk to Moonraker. Before installing/using: (1) verify the printer IP points to a printer you control on your local network, (2) inspect the provided scripts (scripts/snapmaker.py) yourself if you are worried, (3) don't point it at unknown remote hosts, and (4) if you allow autonomous invocation, remember the skill can open connections to whatever IP you configure — restrict that to trusted local devices.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.0.0
Download zip
latestvk979tvqfey4paqjnfg3kbmcwd1801nvs

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

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.

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:

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.

Files

2 total
Select a file
Select a file to preview.

Comments

Loading comments…